Var_Set_interval(n->s, n->e, v->lbuffer, VAR_GLOBAL);
Var_Seti(n->s, n->e, v->lbuffer, VAR_GLOBAL);
do_assign(s, n, arg)    const char *s;    const struct Name *n;    void *arg;{    VarPattern *v = (VarPattern *)arg;    char *msg;    char *result;    switch (v->flags) {    case VAR_EQUAL:    	Var_Set_interval(n->s, n->e, v->lbuffer, VAR_GLOBAL);	break;    case VAR_MAY_EQUAL:    	if (s == NULL)	    Var_Set_interval(n->s, n->e, v->lbuffer, VAR_GLOBAL);	break;    case VAR_ADD_EQUAL:    	if (s == NULL)	    Var_Set_interval(n->s, n->e, v->lbuffer, VAR_GLOBAL);	else	    Var_Append_interval(n->s, n->e, v->lbuffer, VAR_GLOBAL);	break;    case VAR_BANG_EQUAL:    	result = Cmd_Exec(v->lbuffer, &msg);	if (result != NULL) {		Var_Set_interval(n->s, n->e, result, VAR_GLOBAL);		free(result);	} else		Error(msg, v->lbuffer);	break;    }    return NULL;}