static char *sccsid
= "@(#)var.c 3.3 84/01/12";
/* do this first, easier to recover */
if (val
.v_type
== V_STR
&& (val
.v_str
= str_cpy(val
.v_str
)) == 0)
if (*(p
= var_lookup1(name
)) == 0) {
r
= (struct var
*) malloc(sizeof (struct var
));
if ((r
->r_name
= str_cpy(name
)) == 0) {
r
->r_left
= r
->r_right
= 0;
return var_set(name
, &v
);
return var_set(name
, &v
);
if (*(p
= var_lookup1(name
)) == 0)
for (p
= &var_head
; *p
!= 0;) {
if ((cmp
= strcmp(name
, (*p
)->r_name
)) < 0)
var_walk1(r
->r_left
, func
);
var_walk1(r
->r_right
, func
);