version 1.24, 2010/07/01 20:24:19 |
version 1.25, 2010/07/01 21:28:01 |
|
|
|
|
/* Read environment variables. */ |
/* Read environment variables. */ |
if (cp = getenv("HOME")) |
if (cp = getenv("HOME")) |
value(HOME) = cp; |
vsetstr(HOME, cp); |
if (cp = getenv("SHELL")) |
if (cp = getenv("SHELL")) |
value(SHELL) = cp; |
vsetstr(SHELL, cp); |
|
|
/* Read the .tiprc file in the HOME directory. */ |
/* Read the .tiprc file in the HOME directory. */ |
written = snprintf(file, sizeof(file), "%s/.tiprc", value(HOME)); |
written = snprintf(file, sizeof(file), "%s/.tiprc", vgetstr(HOME)); |
if (written < 0 || written >= sizeof(file)) { |
if (written < 0 || written >= sizeof(file)) { |
(void)fprintf(stderr, "Home directory path too long: %s\n", |
(void)fprintf(stderr, "Home directory path too long: %s\n", |
value(HOME)); |
vgetstr(HOME)); |
} else { |
} else { |
if ((fp = fopen(file, "r")) != NULL) { |
if ((fp = fopen(file, "r")) != NULL) { |
char *tp; |
char *tp; |
|
|
p->v_flags &= ~V_INIT; |
p->v_flags &= ~V_INIT; |
break; |
break; |
case V_NUMBER: |
case V_NUMBER: |
if (number(p->v_value) == number(v)) |
if (p->v_value == v) |
return; |
return; |
setnumber(p->v_value, number(v)); |
p->v_value = v; |
break; |
break; |
case V_BOOL: |
case V_BOOL: |
if (boolean(p->v_value) == (*v != '!')) |
if ((long)p->v_value == (*v != '!')) |
return; |
return; |
setboolean(p->v_value, (*v != '!')); |
p->v_value = (char *)(long)(*v != '!'); |
break; |
break; |
case V_CHAR: |
case V_CHAR: |
if (character(p->v_value) == *v) |
if ((char)(long)p->v_value == *v) |
return; |
return; |
setcharacter(p->v_value, *v); |
p->v_value = (char *)(long)*v; |
} |
} |
p->v_flags |= V_CHANGED; |
p->v_flags |= V_CHANGED; |
} |
} |
|
|
if ((p = vlookup(s))) { |
if ((p = vlookup(s))) { |
cp++; |
cp++; |
if ((p->v_flags & V_TYPEMASK) == V_NUMBER) |
if ((p->v_flags & V_TYPEMASK) == V_NUMBER) |
vassign(p, (char *)atoi(cp)); |
vassign(p, (char *)(long)atoi(cp)); |
else { |
else { |
if (strcmp(s, "record") == 0) |
if (strcmp(s, "record") == 0) |
cp = expand(cp); |
cp = expand(cp); |
|
|
switch (p->v_flags & V_TYPEMASK) { |
switch (p->v_flags & V_TYPEMASK) { |
|
|
case V_BOOL: |
case V_BOOL: |
if (!boolean(p->v_value)) { |
if (!p->v_value) { |
col++; |
col++; |
putchar('!'); |
putchar('!'); |
} |
} |
|
|
|
|
case V_NUMBER: |
case V_NUMBER: |
col += 6; |
col += 6; |
printf("%s=%-5ld", p->v_name, number(p->v_value)); |
printf("%s=%-5ld", p->v_name, (long)p->v_value); |
break; |
break; |
|
|
case V_CHAR: |
case V_CHAR: |
printf("%s=", p->v_name); |
printf("%s=", p->v_name); |
col++; |
col++; |
if (p->v_value) { |
if (p->v_value) { |
cp = ctrl(character(p->v_value)); |
cp = ctrl((char)(long)p->v_value); |
col += size(cp); |
col += size(cp); |
printf("%s", cp); |
printf("%s", cp); |
} |
} |
|
|
if (p == 0) |
if (p == 0) |
return (1); |
return (1); |
if ((p->v_flags & V_TYPEMASK) == V_NUMBER) |
if ((p->v_flags & V_TYPEMASK) == V_NUMBER) |
vassign(p, (char *)atoi(v)); |
vassign(p, (char *)(long)atoi(v)); |
else { |
else { |
if (strcmp(s, "record") == 0) |
if (strcmp(s, "record") == 0) |
v = expand(v); |
v = expand(v); |