From 04b486882d9a1534d6824d994f434d72179ec4ad Mon Sep 17 00:00:00 2001 From: Martijn Dekker Date: Thu, 29 Feb 2024 04:59:45 +0000 Subject: [PATCH] Rename char *nvenv to void *nvmeta (re: 4d688150) The previous commit removed the redundant use of the nvenv pointer of struct Namval to point directly to values in environ[]. That was its original purpose, but there are many remaining additional uses. So far, I've discovered: - help string for type commands (typeset -T -h) (typeset.c, nvtype.c) - pointer to dimension 2+ array (array.c and loads of other places) - compound variable (NV_COMVAR, NV_TABLE) (arith.c, nvdisc.c, name.c) - struct slnod: linked list of stacks (for functions; see also sh_funstaks()) (xec.c, name.c) name.c:2375 - flaggery for builtins (purpose to be worked out): (nvdisc.c, path.c) So, this follow-up commit has no actual code changes; it is for code legibility. It: - Removes the now-unused NV_IMPORT attribute. It shared a bit value with NV_MINIMAL, so the few remaining uses of it in the code has been changed to NV_MIMIMAL to avoid potential bugs. - Renames nvenv to nvmeta, in recognition of the fact that it is used for many kinds of purposes. - Makes nvmeta a void pointer instead of a char pointer. - Accordingly removes now-redundant explicit typecasts. --- src/cmd/ksh93/bltins/read.c | 6 +++--- src/cmd/ksh93/bltins/typeset.c | 6 +++--- src/cmd/ksh93/include/name.h | 8 ++++---- src/cmd/ksh93/include/nval.h | 3 +-- src/cmd/ksh93/sh/arith.c | 2 +- src/cmd/ksh93/sh/array.c | 16 ++++++++-------- src/cmd/ksh93/sh/init.c | 8 ++++---- src/cmd/ksh93/sh/name.c | 33 +++++++++++++++++---------------- src/cmd/ksh93/sh/nvdisc.c | 24 ++++++++++++------------ src/cmd/ksh93/sh/nvtype.c | 24 ++++++++++++------------ src/cmd/ksh93/sh/path.c | 2 +- src/cmd/ksh93/sh/subshell.c | 2 +- src/cmd/ksh93/sh/xec.c | 28 ++++++++++++++-------------- 13 files changed, 81 insertions(+), 81 deletions(-) diff --git a/src/cmd/ksh93/bltins/read.c b/src/cmd/ksh93/bltins/read.c index ba4229ec3d6c..e1039038ad99 100644 --- a/src/cmd/ksh93/bltins/read.c +++ b/src/cmd/ksh93/bltins/read.c @@ -277,11 +277,11 @@ int sh_readline(char **names, volatile int fd, int flags, ssize_t size, Sflong_t } else if(flags&C_FLAG) { - char *sp = np->nvenv; + void *sp = np->nvmeta; delim = -1; nv_unset(np); if(!nv_isattr(np,NV_MINIMAL)) - np->nvenv = sp; + np->nvmeta = sp; nv_setvtree(np); } else @@ -499,7 +499,7 @@ int sh_readline(char **names, volatile int fd, int flags, ssize_t size, Sflong_t var = sh_memdup(var,c+1); nv_putval(np,var,NV_RAW); nv_setsize(np,c); - if(!nv_isattr(np,NV_IMPORT|NV_EXPORT) && (mp=(Namval_t*)np->nvenv)) + if(!nv_isattr(np,NV_MINIMAL|NV_EXPORT) && (mp = np->nvmeta)) nv_setsize(mp,c); } } diff --git a/src/cmd/ksh93/bltins/typeset.c b/src/cmd/ksh93/bltins/typeset.c index e821933b69a5..26d8c287bd46 100644 --- a/src/cmd/ksh93/bltins/typeset.c +++ b/src/cmd/ksh93/bltins/typeset.c @@ -549,7 +549,7 @@ int b_typeset(int argc,char *argv[],Shbltin_t *context) } else if(nv_isnull(tdata.tp) && sh.envlist) /* only create a type command if there were assignment(s) */ nv_newtype(tdata.tp); - tdata.tp->nvenv = tdata.help; + tdata.tp->nvmeta = tdata.help; flag &= ~NV_TYPE; if(nv_isattr(tdata.tp,NV_TAGGED)) { @@ -790,7 +790,7 @@ static int setall(char **argv,int flag,Dt_t *troot,struct tdata *tp) } if(nv_isnull(np) && !nv_isarray(np) && nv_isattr(np,NV_NOFREE)) nv_offattr(np,NV_NOFREE); - else if(tp->tp && !nv_isattr(np,NV_MINIMAL|NV_EXPORT) && (mp=(Namval_t*)np->nvenv) && (ap=nv_arrayptr(mp)) && (ap->nelem&ARRAY_TREE)) + else if(tp->tp && !nv_isattr(np,NV_MINIMAL|NV_EXPORT) && (mp = np->nvmeta) && (ap = nv_arrayptr(mp)) && (ap->nelem & ARRAY_TREE)) { errormsg(SH_DICT,ERROR_exit(1),e_typecompat,nv_name(np)); UNREACHABLE(); @@ -958,7 +958,7 @@ static int setall(char **argv,int flag,Dt_t *troot,struct tdata *tp) } if(tp->help && !nv_isattr(np,NV_MINIMAL|NV_EXPORT)) { - np->nvenv = tp->help; + np->nvmeta = tp->help; nv_onattr(np,NV_EXPORT); } if(last) diff --git a/src/cmd/ksh93/include/name.h b/src/cmd/ksh93/include/name.h index aa0136bfc937..1f1e16fd82df 100644 --- a/src/cmd/ksh93/include/name.h +++ b/src/cmd/ksh93/include/name.h @@ -24,7 +24,7 @@ #define _NV_PRIVATE \ Namfun_t *nvfun; /* pointer to trap functions */ \ union Value nvalue; /* value field */ \ - char *nvenv; /* pointer to environment name */ + void *nvmeta; /* pointer to any of various kinds of type-dependent data */ #include #include @@ -116,7 +116,7 @@ struct Ufunction /* attributes of Namval_t items */ /* The following attributes are for internal use */ -#define NV_NOCHANGE (NV_EXPORT|NV_IMPORT|NV_RDONLY|NV_TAGGED|NV_NOFREE|NV_ARRAY) +#define NV_NOCHANGE (NV_EXPORT|NV_MINIMAL|NV_RDONLY|NV_TAGGED|NV_NOFREE|NV_ARRAY) #define NV_ATTRIBUTES (~(NV_NOSCOPE|NV_ARRAY|NV_NOARRAY|NV_IDENT|NV_ASSIGN|NV_REF|NV_VARNAME|NV_STATIC)) #define NV_PARAM NV_NODISC /* expansion use positional params */ @@ -130,7 +130,7 @@ struct Ufunction #define NV_STATICF NV_INTEGER /* static class function */ #define NV_NOPRINT (NV_LTOU|NV_UTOL) /* do not print */ -#define NV_NOALIAS (NV_NOPRINT|NV_IMPORT) +#define NV_NOALIAS (NV_NOPRINT|NV_MINIMAL) #define NV_NOEXPAND NV_RJUST /* do not expand alias */ #define NV_BLTIN (NV_NOPRINT|NV_EXPORT) #define BLT_ENV (NV_RDONLY) /* non-stoppable, @@ -138,7 +138,7 @@ struct Ufunction #define BLT_SPC (NV_LJUST) /* special built-ins */ #define BLT_EXIT (NV_RJUST) /* exit value can be > 255 or < 0 */ #define BLT_DCL (NV_TAGGED) /* declaration command */ -#define BLT_NOSFIO (NV_IMPORT) /* doesn't use sfio */ +#define BLT_NOSFIO (NV_MINIMAL) /* doesn't use sfio */ #define NV_OPTGET (NV_BINARY) /* function calls getopts */ #define nv_isref(n) (nv_isattr((n),NV_REF|NV_TAGGED|NV_FUNCT)==NV_REF) #define is_abuiltin(n) (nv_isattr(n,NV_BLTIN|NV_INTEGER)==NV_BLTIN) diff --git a/src/cmd/ksh93/include/nval.h b/src/cmd/ksh93/include/nval.h index 969163ff137e..17b9ba2bacd2 100644 --- a/src/cmd/ksh93/include/nval.h +++ b/src/cmd/ksh93/include/nval.h @@ -137,8 +137,7 @@ struct Namval #define NV_ARRAY 0x400 /* node is an array */ #define NV_REF 0x4000 /* reference bit */ #define NV_TABLE 0x800 /* node is a dictionary table */ -#define NV_IMPORT 0x1000 /* value imported from environment */ -#define NV_MINIMAL NV_IMPORT /* node does not contain all fields */ +#define NV_MINIMAL 0x1000 /* node does not contain all fields */ #if SHOPT_OPTIMIZE #define NV_NOOPTIMIZE NV_TABLE /* disable loop invariants optimizer */ #else diff --git a/src/cmd/ksh93/sh/arith.c b/src/cmd/ksh93/sh/arith.c index ba017647ba4d..a54443834b55 100644 --- a/src/cmd/ksh93/sh/arith.c +++ b/src/cmd/ksh93/sh/arith.c @@ -182,7 +182,7 @@ static Namval_t *scope(Namval_t *np,struct lval *lvalue,int assign) if(ap && !ap->table) ap->table = dtopen(&_Nvdisc,Dtoset); if(ap && ap->table && (nq=nv_search(nv_getsub(np),ap->table,NV_ADD))) - nq->nvenv = (char*)np; + nq->nvmeta = np; if(nq && nv_isnull(nq)) np = nv_arraychild(np,nq,0); } diff --git a/src/cmd/ksh93/sh/array.c b/src/cmd/ksh93/sh/array.c index e7dde7f9cf60..156db4994c1e 100644 --- a/src/cmd/ksh93/sh/array.c +++ b/src/cmd/ksh93/sh/array.c @@ -378,7 +378,7 @@ static Namval_t *array_find(Namval_t *np,Namarr_t *arp, int flag) sfprintf(sh.strbuf,"%d",ap->cur); cp = sfstruse(sh.strbuf); mp = nv_search(cp, ap->header.table, NV_ADD); - mp->nvenv = (char*)np; + mp->nvmeta = np; nv_arraychild(np,mp,0); } if(up->np && array_isbit(ap->bits,ap->cur,ARRAY_CHILD)) @@ -446,7 +446,7 @@ static Namfun_t *array_clone(Namval_t *np, Namval_t *mp, int flags, Namfun_t *fp do { if(nq=nv_opensub(np)) - nq->nvenv = (void*)mp; + nq->nvmeta = mp; } while(nv_nextsub(np)); } @@ -790,7 +790,7 @@ static void array_copytree(Namval_t *np, Namval_t *mp) nv_disc(np,(Namfun_t*)fp, NV_FIRST); fp->nofree |= 1; nv_onattr(np,NV_ARRAY); - mp->nvenv = (char*)np; + mp->nvmeta = np; } /* @@ -1028,7 +1028,7 @@ Namval_t *nv_arraychild(Namval_t *np, Namval_t *nq, int c) if((tp=nv_type(np)) || c) { ap->nelem |= ARRAY_NOCLONE; - nq->nvenv = (char*)np; + nq->nvmeta = np; if(c=='t') nv_clone(tp,nq, 0); else @@ -1036,7 +1036,7 @@ Namval_t *nv_arraychild(Namval_t *np, Namval_t *nq, int c) nv_offattr(nq,NV_ARRAY); ap->nelem &= ~ARRAY_NOCLONE; } - nq->nvenv = (char*)np; + nq->nvmeta = np; if((fp=nq->nvfun) && fp->disc && fp->disc->setdisc && (fp = nv_disc(nq,fp,NV_POP))) free(fp); if(!ap->fun) @@ -1237,7 +1237,7 @@ Namval_t *nv_putsub(Namval_t *np,char *sp,long mode) sfprintf(sh.strbuf,"%d",ap->cur); cp = sfstruse(sh.strbuf); mp = nv_search(cp, ap->header.table, NV_ADD); - mp->nvenv = (char*)np; + mp->nvmeta = np; nv_arraychild(np,mp,0); nv_setvtree(mp); } @@ -1720,7 +1720,7 @@ void *nv_associative(Namval_t *np,const char *sp,int mode) return ap->cur; case NV_ACURRENT: if(ap->cur) - ap->cur->nvenv = (char*)np; + ap->cur->nvmeta = np; return ap->cur; case NV_ANAME: if(ap->cur) @@ -1749,7 +1749,7 @@ void *nv_associative(Namval_t *np,const char *sp,int mode) if((mp || (mp=nv_search(sp,ap->header.table,mode))) && nv_isnull(mp) && (mode&NV_ADD)) { nv_onattr(mp,type); - mp->nvenv = (char*)np; + mp->nvmeta = np; if((mode&NV_ADD) && nv_type(np)) nv_arraychild(np,mp,0); if(sh.subshell) diff --git a/src/cmd/ksh93/sh/init.c b/src/cmd/ksh93/sh/init.c index e8c7ce7dee71..2cfc78880231 100644 --- a/src/cmd/ksh93/sh/init.c +++ b/src/cmd/ksh93/sh/init.c @@ -789,7 +789,7 @@ static void put_lastarg(Namval_t* np,const char *val,int flags,Namfun_t *fp) nv_offattr(np,NV_NOFREE); sh.lastarg = (char*)val; nv_offattr(np,NV_EXPORT); - np->nvenv = 0; + np->nvmeta = NULL; } static void match2d(struct match *mp) @@ -1950,7 +1950,7 @@ Dt_t *sh_inittree(const struct shtable2 *name_vals) np->nvname = (char*)tp->sh_name; treep = base_treep; } - np->nvenv = 0; + np->nvmeta = NULL; if(name_vals==(const struct shtable2*)shtab_builtins) np->nvalue.bfp = (void*)((struct shtable3*)tp)->sh_value; else @@ -2032,7 +2032,7 @@ static void env_import_attributes(char *next) if(next = strchr(++cp,'=')) *next = 0; np = nv_search(cp+2,sh.var_tree,NV_ADD); - if(np!=SHLVL && nv_isattr(np,NV_IMPORT|NV_EXPORT)) + if(np!=SHLVL && nv_isattr(np,NV_EXPORT)) { int flag = *(unsigned char*)cp-' '; int size = *(unsigned char*)(cp+1)-' '; @@ -2064,7 +2064,7 @@ static void env_import_attributes(char *next) flag &= ~NV_RDONLY; /* refuse to import readonly attribute */ if(!flag) continue; - nv_newattr(np,flag|NV_IMPORT|NV_EXPORT,size); + nv_newattr(np,flag|NV_EXPORT,size); } } return; diff --git a/src/cmd/ksh93/sh/name.c b/src/cmd/ksh93/sh/name.c index 9c52f83783e3..0b3241f20bee 100644 --- a/src/cmd/ksh93/sh/name.c +++ b/src/cmd/ksh93/sh/name.c @@ -1181,7 +1181,7 @@ Namval_t *nv_create(const char *name, Dt_t *root, int flags, Namfun_t *dp) if(n && ap && !ap->table) ap->table = dtopen(&_Nvdisc,Dtoset); if(ap && ap->table && (nq=nv_search(sub,ap->table,n))) - nq->nvenv = (char*)np; + nq->nvmeta = np; if(nq && nv_isnull(nq)) nq = nv_arraychild(np,nq,c); } @@ -2404,7 +2404,7 @@ static void table_unset(Dt_t *root, int flags, Dt_t *oroot) * will retain its attributes. * can contain NV_RDONLY to override the readonly attribute * being cleared. - * can contain NV_EXPORT to override preserve nvenv + * can contain NV_EXPORT to preserve nvmeta. */ void _nv_unset(Namval_t *np,int flags) { @@ -2421,7 +2421,7 @@ void _nv_unset(Namval_t *np,int flags) } if(is_afunction(np) && np->nvalue.ip) { - struct slnod *slp = (struct slnod*)(np->nvenv); + struct slnod *slp = np->nvmeta; if(np->nvalue.rp->running) { np->nvalue.rp->running |= 1; @@ -2531,7 +2531,7 @@ void _nv_unset(Namval_t *np,int flags) if(nv_isattr(np,NV_EXPORT) && !strchr(np->nvname,'[')) env_change(); if(!(flags&NV_EXPORT) || nv_isattr(np,NV_EXPORT)) - np->nvenv = 0; + np->nvmeta = NULL; nv_setattr(np,0); } else @@ -3156,7 +3156,8 @@ int nv_rename(Namval_t *np, int flags) Namval_t *last_table = sh.last_table; Dt_t *last_root = sh.last_root; Dt_t *hp = 0; - char *nvenv=0,*prefix=sh.prefix; + void *nvmeta = NULL; + char *prefix = sh.prefix; Namarr_t *ap; if(nv_isattr(np,NV_PARAM) && sh.st.prevst) { @@ -3164,8 +3165,8 @@ int nv_rename(Namval_t *np, int flags) hp = dtvnext(sh.var_tree); } if(!nv_isattr(np,NV_MINIMAL)) - nvenv = np->nvenv; - if(nvenv || (cp = nv_name(np)) && nv_isarray(np) && cp[strlen(cp)-1] == ']') + nvmeta = np->nvmeta; + if(nvmeta || (cp = nv_name(np)) && nv_isarray(np) && cp[strlen(cp)-1] == ']') arraynp = 1; if(!(cp=nv_getval(np))) { @@ -3215,12 +3216,12 @@ int nv_rename(Namval_t *np, int flags) { if(ap = nv_arrayptr(np)) ap->nelem++; - mp->nvenv = nvenv = (void*)np; + mp->nvmeta = nvmeta = np; } } if(mp) { - nvenv = (char*)np; + nvmeta = np; np = mp; } if(nr==np) @@ -3244,7 +3245,7 @@ int nv_rename(Namval_t *np, int flags) sh.last_root = last_root; if(flags&NV_MOVE) { - if(arraynp && !nv_isattr(np,NV_MINIMAL) && (mp=(Namval_t*)np->nvenv) && (ap=nv_arrayptr(mp)) && !ap->fun) + if(arraynp && !nv_isattr(np,NV_MINIMAL) && (mp = np->nvmeta) && (ap = nv_arrayptr(mp)) && !ap->fun) ap->nelem++; } if((nv_arrayptr(nr) && !arraynr) || nv_isvtree(nr)) @@ -3256,7 +3257,7 @@ int nv_rename(Namval_t *np, int flags) if(ap->table) mp = nv_search(nv_getsub(np),ap->table,NV_ADD); nv_arraychild(np,mp,0); - nvenv = (void*)np; + nvmeta = np; } else mp = np; @@ -3282,10 +3283,10 @@ int nv_rename(Namval_t *np, int flags) } else nv_clone(nr,mp,(flags&NV_MOVE)|NV_COMVAR); - mp->nvenv = nvenv; + mp->nvmeta = nvmeta; if(flags&NV_MOVE) { - if(arraynr && !nv_isattr(nr,NV_MINIMAL) && (mp=(Namval_t*)nr->nvenv) && (ap=nv_arrayptr(mp))) + if(arraynr && !nv_isattr(nr,NV_MINIMAL) && (mp = nr->nvmeta) && (ap = nv_arrayptr(mp))) { nv_putsub(mp,nr->nvname,0); _nv_unset(mp,0); @@ -3298,7 +3299,7 @@ int nv_rename(Namval_t *np, int flags) nv_putval(np,nv_getval(nr),0); if(flags&NV_MOVE) { - if(!nv_isattr(nr,NV_MINIMAL) && (mp=(Namval_t*)(nr->nvenv)) && (ap=nv_arrayptr(mp))) + if(!nv_isattr(nr,NV_MINIMAL) && (mp = nr->nvmeta) && (ap = nv_arrayptr(mp))) ap->nelem--; _nv_unset(nr,0); } @@ -3552,9 +3553,9 @@ char *nv_name(Namval_t *np) #if SHOPT_FIXEDARRAY ap = nv_arrayptr(np); #endif /* SHOPT_FIXEDARRAY */ - if(!nv_isattr(np,NV_MINIMAL|NV_EXPORT) && np->nvenv) + if(!nv_isattr(np,NV_MINIMAL|NV_EXPORT) && np->nvmeta) { - Namval_t *nq= sh.last_table, *mp= (Namval_t*)np->nvenv; + Namval_t *nq = sh.last_table, *mp = np->nvmeta; if(np==sh.last_table) sh.last_table = 0; if(nv_isarray(mp)) diff --git a/src/cmd/ksh93/sh/nvdisc.c b/src/cmd/ksh93/sh/nvdisc.c index 66916e1216a3..e220696a1709 100644 --- a/src/cmd/ksh93/sh/nvdisc.c +++ b/src/cmd/ksh93/sh/nvdisc.c @@ -339,7 +339,7 @@ static void assign(Namval_t *np,const char* val,int flags,Namfun_t *handle) block(bp,type); nv_disc(np,handle,NV_POP); if(!nv_isattr(np,NV_MINIMAL)) - pp = (Namval_t*)np->nvenv; + pp = np->nvmeta; nv_putv(np, val, flags, handle); if(sh.subshell) goto done; @@ -909,11 +909,11 @@ int nv_clone(Namval_t *np, Namval_t *mp, int flags) { if(nv_isattr(mp,NV_EXPORT|NV_MINIMAL) == (NV_EXPORT|NV_MINIMAL)) { - mp->nvenv = 0; + mp->nvmeta = NULL; nv_offattr(mp,NV_MINIMAL); } - if(!(flags&NV_COMVAR) && !nv_isattr(np,NV_MINIMAL) && np->nvenv && !(nv_isattr(mp,NV_MINIMAL))) - mp->nvenv = np->nvenv; + if(!(flags&NV_COMVAR) && !nv_isattr(np,NV_MINIMAL) && np->nvmeta && !(nv_isattr(mp,NV_MINIMAL))) + mp->nvmeta = np->nvmeta; mp->nvflag &= NV_MINIMAL; mp->nvflag |= np->nvflag&~(NV_ARRAY|NV_MINIMAL|NV_NOFREE); flag = mp->nvflag; @@ -948,10 +948,10 @@ int nv_clone(Namval_t *np, Namval_t *mp, int flags) np->nvalue.cp = 0; if(!nv_isattr(np,NV_MINIMAL) || nv_isattr(mp,NV_EXPORT)) { - mp->nvenv = np->nvenv; + mp->nvmeta = np->nvmeta; if(nv_isattr(np,NV_MINIMAL)) { - np->nvenv = 0; + np->nvmeta = NULL; np->nvflag = NV_EXPORT; } else @@ -963,7 +963,7 @@ int nv_clone(Namval_t *np, Namval_t *mp, int flags) return 1; } else if((flags&NV_ARRAY) && !nv_isattr(np,NV_MINIMAL)) - mp->nvenv = np->nvenv; + mp->nvmeta = np->nvmeta; if(nv_isattr(np,NV_INTEGER) && !nv_isarray(np) && mp->nvalue.ip!=np->nvalue.ip && np->nvalue.cp!=Empty) { mp->nvalue.ip = (int*)num_clone(np,np->nvalue.ip); @@ -1102,8 +1102,8 @@ Namval_t *nv_bfsearch(const char *name, Dt_t *root, Namval_t **var, char **last) return np; } #endif /* SHOPT_NAMESPACE */ - while(nv_isarray(nq) && !nv_isattr(nq,NV_MINIMAL|NV_EXPORT) && nq->nvenv && nv_isarray((Namval_t*)nq->nvenv)) - nq = (Namval_t*)nq->nvenv; + while(nv_isarray(nq) && !nv_isattr(nq,NV_MINIMAL|NV_EXPORT) && nq->nvmeta && nv_isarray((Namval_t*)nq->nvmeta)) + nq = nq->nvmeta; return (Namval_t*)nv_setdisc(nq,dname,nq,(Namfun_t*)nq); done: stkseek(sh.stk,offset); @@ -1166,7 +1166,7 @@ Namval_t *sh_addbuiltin(const char *path, Shbltin_f bltin, void *extra) return np; if(!bltin) bltin = funptr(np); - if(np->nvenv) + if(np->nvmeta) dtdelete(sh.bltin_tree,np); if(extra == (void*)1) return NULL; @@ -1183,8 +1183,8 @@ Namval_t *sh_addbuiltin(const char *path, Shbltin_f bltin, void *extra) np->nvfun = (Namfun_t*)extra; return np; } - np->nvenv = 0; - np->nvfun = 0; + np->nvmeta = NULL; + np->nvfun = NULL; if(bltin) { np->nvalue.bfp = bltin; diff --git a/src/cmd/ksh93/sh/nvtype.c b/src/cmd/ksh93/sh/nvtype.c index f3dc64579037..ae38430a4e56 100644 --- a/src/cmd/ksh93/sh/nvtype.c +++ b/src/cmd/ksh93/sh/nvtype.c @@ -527,7 +527,7 @@ static void put_type(Namval_t* np, const char* val, int flag, Namfun_t* fp) Namfun_t *pp; if((pp=nv_hasdisc(nq,fp->disc)) && pp->type==fp->type) { - if(!nq->nvenv) + if(!nq->nvmeta) flag |= NV_EXPORT; _nv_unset(np, flag); nv_clone(nq,np,NV_IARRAY); @@ -582,7 +582,7 @@ static Namfun_t *clone_inttype(Namval_t* np, Namval_t *mp, int flags, Namfun_t * else mp->nvalue.cp = (char*)(fp+1); if(!nv_isattr(mp,NV_MINIMAL)) - mp->nvenv = 0; + mp->nvmeta = NULL; nv_offattr(mp,NV_RDONLY); return pp; } @@ -616,8 +616,8 @@ static int typeinfo(Opt_t* op, Sfio_t *out, const char *str, Optdisc_t *fp) tp = fp->type; nv_offattr(np,NV_RDONLY); fp->type = 0; - if(np->nvenv) - sfprintf(out,"[+?\b%s\b is a %s.]\n", tp->nvname, np->nvenv); + if(np->nvmeta) + sfprintf(out,"[+?\b%s\b is a %s.]\n", tp->nvname, (char*)np->nvmeta); cp = (char*)out->_next; sfprintf(out,"[+?\b%s\b is a %n ", tp->nvname, &i); nv_attribute(np,out,NULL, 1); @@ -844,8 +844,8 @@ Namval_t *nv_mktype(Namval_t **nodes, int numnodes) } if(nv_isattr(np,NV_REF)) iref++; - if(np->nvenv) - size += strlen((char*)np->nvenv)+1; + if(np->nvmeta) + size += strlen(np->nvmeta) + 1; if(strcmp(&np->nvname[m],NV_DATA)==0 && !nv_type(np)) continue; if(qp) @@ -971,7 +971,7 @@ Namval_t *nv_mktype(Namval_t **nodes, int numnodes) char *val=nv_getval(np); nq = nv_namptr(pp->nodes,0); nq->nvfun = 0; - nv_putval(nq,(val?val:0),nv_isattr(np,~(NV_IMPORT|NV_EXPORT|NV_ARRAY))); + nv_putval(nq,(val?val:0),nv_isattr(np,~(NV_MINIMAL|NV_EXPORT|NV_ARRAY))); nq->nvflag = np->nvflag|NV_NOFREE|NV_MINIMAL; goto skip; } @@ -1015,17 +1015,17 @@ Namval_t *nv_mktype(Namval_t **nodes, int numnodes) goto skip; } nq = nv_namptr(pp->nodes,k); - if(np->nvenv) + if(np->nvmeta) { /* need to save the string pointer */ nv_offattr(np,NV_EXPORT); help[k] = cp; - cp = strcopy(cp,np->nvenv); + cp = strcopy(cp,np->nvmeta); j = *help[k]; if(islower(j)) *help[k] = toupper(j); *cp++ = 0; - np->nvenv = 0; + np->nvmeta = NULL; } nq->nvname = cp; if(name && strncmp(name,&np->nvname[m],n)==0 && np->nvname[m+n]=='.') @@ -1035,7 +1035,7 @@ Namval_t *nv_mktype(Namval_t **nodes, int numnodes) n = cp-name; *cp++ = 0; nq->nvsize = np->nvsize; - nq->nvflag = (np->nvflag&~(NV_IMPORT|NV_EXPORT))|NV_NOFREE|NV_MINIMAL; + nq->nvflag = (np->nvflag&~NV_EXPORT)|NV_NOFREE|NV_MINIMAL; if(dp = (Namtype_t*)nv_hasdisc(np, &type_disc)) { int r,kfirst=k; @@ -1196,7 +1196,7 @@ Namval_t *nv_mkinttype(char *name, size_t size, int sign, const char *help, Namd fp->disc = dp; mp->nvalue.cp = (char*)(fp+1) + sizeof(Namdisc_t); nv_setsize(mp,10); - mp->nvenv = (char*)help; + mp->nvmeta = (void*)help; nv_onattr(mp,NV_NOFREE|NV_RDONLY|NV_INTEGER|NV_EXPORT); if(size==16) nv_onattr(mp,NV_INT16P); diff --git a/src/cmd/ksh93/sh/path.c b/src/cmd/ksh93/sh/path.c index 46d45d050b2d..f721c21f059e 100644 --- a/src/cmd/ksh93/sh/path.c +++ b/src/cmd/ksh93/sh/path.c @@ -797,7 +797,7 @@ Pathcomp_t *path_absolute(const char *name, Pathcomp_t *pp, int flag) (!(np = sh_addbuiltin(stkptr(sh.stk,PATH_OFFSET),NULL,NULL)) || funptr(np)!=addr) && (np = sh_addbuiltin(stkptr(sh.stk,PATH_OFFSET),addr,NULL))) { - np->nvenv = dll; + np->nvmeta = dll; goto found; } if(*stkptr(sh.stk,PATH_OFFSET)=='/' && nv_search(stkptr(sh.stk,PATH_OFFSET),sh.bltin_tree,0)) diff --git a/src/cmd/ksh93/sh/subshell.c b/src/cmd/ksh93/sh/subshell.c index 2702dd6b51fa..42a92b2a8ed9 100644 --- a/src/cmd/ksh93/sh/subshell.c +++ b/src/cmd/ksh93/sh/subshell.c @@ -348,7 +348,7 @@ static void nv_restore(struct subshell *sp) } nv_setsize(mp,nv_size(np)); if(!(flags&NV_MINIMAL)) - mp->nvenv = np->nvenv; + mp->nvmeta = np->nvmeta; mp->nvfun = np->nvfun; if(np->nvfun && nofree) np->nvfun->nofree = nofree; diff --git a/src/cmd/ksh93/sh/xec.c b/src/cmd/ksh93/sh/xec.c index 924acf266d02..a791c21bffaf 100644 --- a/src/cmd/ksh93/sh/xec.c +++ b/src/cmd/ksh93/sh/xec.c @@ -702,7 +702,7 @@ static long set_instance(Namval_t *nq, Namval_t *node, struct Namref *nr) char *sp=0,*cp; Namarr_t *ap; Namval_t *np; - if(!nv_isattr(nq,NV_MINIMAL|NV_EXPORT|NV_ARRAY) && (np=(Namval_t*)nq->nvenv) && nv_isarray(np)) + if(!nv_isattr(nq,NV_MINIMAL|NV_EXPORT|NV_ARRAY) && (np = nq->nvmeta) && nv_isarray(np)) nq = np; cp = nv_name(nq); memset(nr,0,sizeof(*nr)); @@ -729,8 +729,8 @@ static long set_instance(Namval_t *nq, Namval_t *node, struct Namref *nr) memcpy(node,L_ARGNOD,sizeof(*node)); L_ARGNOD->nvalue.nrp = nr; L_ARGNOD->nvflag = NV_REF|NV_NOFREE; - L_ARGNOD->nvfun = 0; - L_ARGNOD->nvenv = 0; + L_ARGNOD->nvfun = NULL; + L_ARGNOD->nvmeta = NULL; if(sp) { nv_putval(SH_SUBSCRNOD,nr->sub=sp,NV_NOFREE); @@ -1330,7 +1330,7 @@ int sh_exec(const Shnode_t *t, int flags) } } /* increase refcnt for unset */ - slp = (struct slnod*)np->nvenv; + slp = np->nvmeta; sh_funstaks(slp->slchild,1); if(slp->slptr) stklink(slp->slptr); @@ -2426,7 +2426,7 @@ int sh_exec(const Shnode_t *t, int flags) if(np->nvalue.rp) { struct Ufunction *rp = np->nvalue.rp; - slp = (struct slnod*)np->nvenv; + slp = np->nvmeta; sh_funstaks(slp->slchild,-1); if(slp->slptr) { @@ -2471,7 +2471,7 @@ int sh_exec(const Shnode_t *t, int flags) sh_funstaks(slp->slchild,1); if(slp->slptr) stklink(slp->slptr); - np->nvenv = (char*)slp; + np->nvmeta = slp; nv_funtree(np) = (int*)(t->funct.functtre); np->nvalue.rp->hoffset = t->funct.functloc; np->nvalue.rp->lineno = t->funct.functline; @@ -2913,12 +2913,12 @@ Sfdouble_t sh_mathfun(void *fp, int nargs, Sfdouble_t *arg) np = (Namval_t*)fp; funenv.node = np; funenv.nref = nref; - funenv.env = 0; + funenv.env = NULL; memcpy(&node,SH_VALNOD,sizeof(node)); - SH_VALNOD->nvfun = 0; - SH_VALNOD->nvenv = 0; + SH_VALNOD->nvfun = NULL; + SH_VALNOD->nvmeta = NULL; SH_VALNOD->nvflag = NV_LDOUBLE|NV_NOFREE; - SH_VALNOD->nvalue.ldp = 0; + SH_VALNOD->nvalue.ldp = NULL; for(i=0; i < nargs; i++) { *nr++ = mp = nv_namptr(sh.mathnodes,i); @@ -2926,14 +2926,14 @@ Sfdouble_t sh_mathfun(void *fp, int nargs, Sfdouble_t *arg) } *nr = 0; SH_VALNOD->nvalue.ldp = &d; - argv[0] = np->nvname; - argv[1] = 0; + argv[0] = np->nvname; + argv[1] = NULL; sh_funscope(1,argv,0,&funenv,0); while(mp= *nr++) - mp->nvalue.ldp = 0; + mp->nvalue.ldp = NULL; SH_VALNOD->nvfun = node.nvfun; SH_VALNOD->nvflag = node.nvflag; - SH_VALNOD->nvenv = node.nvenv; + SH_VALNOD->nvmeta = node.nvmeta; SH_VALNOD->nvalue.ldp = node.nvalue.ldp; return d; }