diff --git a/src/cmd/ksh93/bltins/misc.c b/src/cmd/ksh93/bltins/misc.c index f6659cdf9..42e958538 100644 --- a/src/cmd/ksh93/bltins/misc.c +++ b/src/cmd/ksh93/bltins/misc.c @@ -136,7 +136,7 @@ int b_exec(int argc,char *argv[], Shbltin_t *context) (*cp=0,np=nv_search(arg->argval,sh.var_tree,0))) { nv_onattr(np,NV_EXPORT); - sh_envput(sh.env,np); + env_change(); } if(cp) *cp = '='; diff --git a/src/cmd/ksh93/include/defs.h b/src/cmd/ksh93/include/defs.h index 56c0be183..8a3854788 100644 --- a/src/cmd/ksh93/include/defs.h +++ b/src/cmd/ksh93/include/defs.h @@ -62,8 +62,6 @@ #define Empty ((char*)(e_sptbnl+3)) #define env_change() (++ast.env_serial) -#define sh_envput(e,p) env_change() -#define env_delete(e,p) env_change() extern char* sh_getenv(const char*); extern char* sh_setenviron(const char*); diff --git a/src/cmd/ksh93/include/shell.h b/src/cmd/ksh93/include/shell.h index 8fce3d9c9..5a1a2c841 100644 --- a/src/cmd/ksh93/include/shell.h +++ b/src/cmd/ksh93/include/shell.h @@ -343,7 +343,6 @@ struct Shell_s int xargexit; int nenv; mode_t mask; - void *env; /* environment */ void *init_context; void *mac_context; void *lex_context; diff --git a/src/cmd/ksh93/sh/name.c b/src/cmd/ksh93/sh/name.c index 5445605c4..3419f07f0 100644 --- a/src/cmd/ksh93/sh/name.c +++ b/src/cmd/ksh93/sh/name.c @@ -1604,7 +1604,7 @@ void nv_putval(register Namval_t *np, const char *string, int flags) nv_local=1; nv_putv(np,sp,flags,np->nvfun); if(sp && ((flags&NV_EXPORT) || nv_isattr(np,NV_EXPORT))) - sh_envput(sh.env,np); + env_change(); return; } /* called from disc, assign the actual value */ @@ -2012,7 +2012,7 @@ void nv_putval(register Namval_t *np, const char *string, int flags) free((void*)tofree); } if(!was_local && ((flags&NV_EXPORT) || nv_isattr(np,NV_EXPORT))) - sh_envput(sh.env,np); + env_change(); return; } @@ -2409,7 +2409,7 @@ static void table_unset(register Dt_t *root, int flags, Dt_t *oroot) np->nvfun = 0; } if(nv_isattr(nq,NV_EXPORT)) - sh_envput(sh.env,nq); + env_change(); } sh.last_root = root; sh.last_table = 0; @@ -2556,7 +2556,7 @@ done: if(!nv_isattr(np,NV_MINIMAL) || nv_isattr(np,NV_EXPORT)) { if(nv_isattr(np,NV_EXPORT) && !strchr(np->nvname,'[')) - env_delete(sh.env,nv_name(np)); + env_change(); if(!(flags&NV_EXPORT) || nv_isattr(np,NV_EXPORT)) np->nvenv = 0; nv_setattr(np,0); @@ -2942,13 +2942,13 @@ void nv_newattr (register Namval_t *np, unsigned newatts, int size) { /* EXPORT exists on old attributes therefore not on new */ nv_offattr(np,NV_EXPORT); - env_delete(sh.env,nv_name(np)); + env_change(); } else { /* EXPORT is now turned on for new attributes */ nv_onattr(np,NV_EXPORT); - sh_envput(sh.env,np); + env_change(); } if((n^newatts)==NV_EXPORT && !trans) /* Only EXPORT attribute has changed and thus all work has been done. */ diff --git a/src/cmd/ksh93/sh/subshell.c b/src/cmd/ksh93/sh/subshell.c index 3bec200fd..49bba2365 100644 --- a/src/cmd/ksh93/sh/subshell.c +++ b/src/cmd/ksh93/sh/subshell.c @@ -381,12 +381,12 @@ static void nv_restore(struct subshell *sp) if(nv_isattr(mp,NV_EXPORT)) { char *name = nv_name(mp); - sh_envput(sh.env,mp); + env_change(); if(*name=='_' && strcmp(name,"_AST_FEATURES")==0) astconf(NiL, NiL, NiL); } else if(nv_isattr(np,NV_EXPORT)) - env_delete(sh.env,nv_name(mp)); + env_change(); nv_onattr(mp,flags); skip: for(mp=lp->child; mp; mp=mpnext)