yes please, ok nicm
On Tue, Dec 29, 2015 at 12:15:25PM -0500, Ted Unangst wrote:
> I'm slowly trimming down some of the -Wshadow warnings in bin and one big
> offender is ksh. Namely, it has a local variable e that shadows a global e.
>
> -struct env *e;
> +struct env *genv;
>
> Normally I rename the local, but in this case I think the global deserves a
> better name. Note that this variable is also used as part of a macro ATEMP.
> Accidentally using this macro with a local of the same in scope would be
> ungood.
>
>
> Index: c_ksh.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/c_ksh.c,v
> retrieving revision 1.47
> diff -u -p -r1.47 c_ksh.c
> --- c_ksh.c 14 Dec 2015 13:59:42 -0000 1.47
> +++ c_ksh.c 29 Dec 2015 14:58:28 -0000
> @@ -710,7 +710,7 @@ c_typeset(char **wp)
> /* list variables and attributes */
> flag = fset | fclr; /* no difference at this point.. */
> if (func) {
> - for (l = e->loc; l; l = l->next) {
> + for (l = genv->loc; l; l = l->next) {
> for (p = ktsort(&l->funs); (vp = *p++); ) {
> if (flag && (vp->flag & flag) == 0)
> continue;
> @@ -723,7 +723,7 @@ c_typeset(char **wp)
> }
> }
> } else {
> - for (l = e->loc; l; l = l->next) {
> + for (l = genv->loc; l; l = l->next) {
> for (p = ktsort(&l->vars); (vp = *p++); ) {
> struct tbl *tvp;
> int any_set = 0;
> @@ -1271,15 +1271,15 @@ c_getopts(char **wp)
> return 1;
> }
>
> - if (e->loc->next == NULL) {
> + if (genv->loc->next == NULL) {
> internal_errorf(0, "c_getopts: no argv");
> return 1;
> }
> /* Which arguments are we parsing... */
> if (*wp == NULL)
> - wp = e->loc->next->argv;
> + wp = genv->loc->next->argv;
> else
> - *--wp = e->loc->next->argv[0];
> + *--wp = genv->loc->next->argv[0];
>
> /* Check that our saved state won't cause a core dump... */
> for (argc = 0; wp[argc]; argc++)
> Index: c_sh.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/c_sh.c,v
> retrieving revision 1.57
> diff -u -p -r1.57 c_sh.c
> --- c_sh.c 14 Dec 2015 13:59:42 -0000 1.57
> +++ c_sh.c 29 Dec 2015 15:01:42 -0000
> @@ -30,7 +30,7 @@ c_label(char **wp)
> int
> c_shift(char **wp)
> {
> - struct block *l = e->loc;
> + struct block *l = genv->loc;
> int n;
> long val;
> char *arg;
> @@ -208,7 +208,7 @@ c_dot(char **wp)
> /* Set positional parameters? */
> if (wp[builtin_opt.optind + 1]) {
> argv = wp + builtin_opt.optind;
> - argv[0] = e->loc->argv[0]; /* preserve $0 */
> + argv[0] = genv->loc->argv[0]; /* preserve $0 */
> for (argc = 0; argv[argc + 1]; argc++)
> ;
> } else {
> @@ -529,7 +529,7 @@ c_exitreturn(char **wp)
> /* need to tell if this is exit or return so trap exit will
> * work right (POSIX)
> */
> - for (ep = e; ep; ep = ep->oenv)
> + for (ep = genv; ep; ep = ep->oenv)
> if (STOP_RETURN(ep->type)) {
> how = LRETURN;
> break;
> @@ -570,7 +570,7 @@ c_brkcont(char **wp)
> }
>
> /* Stop at E_NONE, E_PARSE, E_FUNC, or E_INCL */
> - for (ep = e; ep && !STOP_BRKCONT(ep->type); ep = ep->oenv)
> + for (ep = genv; ep && !STOP_BRKCONT(ep->type); ep = ep->oenv)
> if (ep->type == E_LOOP) {
> if (--quit == 0)
> break;
> @@ -605,7 +605,7 @@ int
> c_set(char **wp)
> {
> int argi, setargs;
> - struct block *l = e->loc;
> + struct block *l = genv->loc;
> char **owp = wp;
>
> if (wp[1] == NULL) {
> @@ -808,20 +808,20 @@ c_exec(char **wp)
> int i;
>
> /* make sure redirects stay in place */
> - if (e->savefd != NULL) {
> + if (genv->savefd != NULL) {
> for (i = 0; i < NUFILE; i++) {
> - if (e->savefd[i] > 0)
> - close(e->savefd[i]);
> + if (genv->savefd[i] > 0)
> + close(genv->savefd[i]);
> /*
> * For ksh keep anything > 2 private,
> * for sh, let them be (POSIX says what
> * happens is unspecified and the bourne shell
> * keeps them open).
> */
> - if (!Flag(FSH) && i > 2 && e->savefd[i])
> + if (!Flag(FSH) && i > 2 && genv->savefd[i])
> fcntl(i, F_SETFD, FD_CLOEXEC);
> }
> - e->savefd = NULL;
> + genv->savefd = NULL;
> }
> return 0;
> }
> Index: edit.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/edit.c,v
> retrieving revision 1.51
> diff -u -p -r1.51 edit.c
> --- edit.c 14 Dec 2015 13:59:42 -0000 1.51
> +++ edit.c 29 Dec 2015 15:01:55 -0000
> @@ -454,7 +454,7 @@ x_command_glob(int flags, const char *st
> glob_table(pat, &w, &keywords);
> glob_table(pat, &w, &aliases);
> glob_table(pat, &w, &builtins);
> - for (l = e->loc; l; l = l->next)
> + for (l = genv->loc; l; l = l->next)
> glob_table(pat, &w, &l->funs);
>
> glob_path(flags, pat, &w, path);
> Index: emacs.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/emacs.c,v
> retrieving revision 1.62
> diff -u -p -r1.62 emacs.c
> --- emacs.c 14 Dec 2015 13:59:42 -0000 1.62
> +++ emacs.c 29 Dec 2015 10:41:45 -0000
> @@ -1576,6 +1576,8 @@ x_init_emacs(void)
> kb_add(x_mv_end, NULL, CTRL('['), '[', 'F', 0); /* end */
> kb_add(x_mv_begin, NULL, CTRL('['), 'O', 'H', 0); /* home
> */
> kb_add(x_mv_end, NULL, CTRL('['), 'O', 'F', 0); /* end */
> + kb_add(x_mv_begin, NULL, CTRL('['), '[', '1', '~', 0); /*
> home */
> + kb_add(x_mv_end, NULL, CTRL('['), '[', '4', '~', 0); /*
> end */
>
> /* can't be bound */
> kb_add(x_set_arg, NULL, CTRL('['), '0', 0);
> Index: eval.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/eval.c,v
> retrieving revision 1.48
> diff -u -p -r1.48 eval.c
> --- eval.c 14 Dec 2015 13:59:42 -0000 1.48
> +++ eval.c 29 Dec 2015 15:02:28 -0000
> @@ -733,7 +733,7 @@ varsub(Expand *xp, char *sp, char *word,
> n++;
> c = n; /* ksh88/ksh93 go for number, not max index */
> } else if (c == '*' || c == '@')
> - c = e->loc->argc;
> + c = genv->loc->argc;
> else {
> p = str_val(global(sp));
> zero_ok = p != null;
> @@ -779,12 +779,12 @@ varsub(Expand *xp, char *sp, char *word,
> case '#':
> return -1;
> }
> - if (e->loc->argc == 0) {
> + if (genv->loc->argc == 0) {
> xp->str = null;
> xp->var = global(sp);
> state = c == '@' ? XNULLSUB : XSUB;
> } else {
> - xp->u.strv = (const char **) e->loc->argv + 1;
> + xp->u.strv = (const char **) genv->loc->argv + 1;
> xp->str = *xp->u.strv++;
> xp->split = c == '@'; /* $@ */
> state = XARG;
> Index: exec.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/exec.c,v
> retrieving revision 1.63
> diff -u -p -r1.63 exec.c
> --- exec.c 14 Dec 2015 13:59:42 -0000 1.63
> +++ exec.c 29 Dec 2015 16:06:52 -0000
> @@ -101,9 +101,9 @@ execute(struct op *volatile t,
> flags &= ~XTIME;
>
> if (t->ioact != NULL || t->type == TPIPE || t->type == TCOPROC) {
> - e->savefd = areallocarray(NULL, NUFILE, sizeof(short), ATEMP);
> + genv->savefd = areallocarray(NULL, NUFILE, sizeof(short),
> ATEMP);
> /* initialize to not redirected */
> - memset(e->savefd, 0, NUFILE * sizeof(short));
> + memset(genv->savefd, 0, NUFILE * sizeof(short));
> }
>
> /* do redirection, to be restored in quitenv() */
> @@ -134,8 +134,8 @@ execute(struct op *volatile t,
> case TPIPE:
> flags |= XFORK;
> flags &= ~XEXEC;
> - e->savefd[0] = savefd(0);
> - e->savefd[1] = savefd(1);
> + genv->savefd[0] = savefd(0);
> + genv->savefd[1] = savefd(1);
> while (t->type == TPIPE) {
> openpipe(pv);
> (void) ksh_dup2(pv[1], 1, false); /* stdout of curr */
> @@ -150,8 +150,8 @@ execute(struct op *volatile t,
> flags |= XPIPEI;
> t = t->right;
> }
> - restfd(1, e->savefd[1]); /* stdout of last */
> - e->savefd[1] = 0; /* no need to re-restore this */
> + restfd(1, genv->savefd[1]); /* stdout of last */
> + genv->savefd[1] = 0; /* no need to re-restore this */
> /* Let exchild() close 0 in parent, after fork, before wait */
> i = exchild(t, flags|XPCLOSE, xerrok, 0);
> if (!(flags&XBGND) && !(flags&XXCOM))
> @@ -174,8 +174,8 @@ execute(struct op *volatile t,
> * signal handler
> */
> sigprocmask(SIG_BLOCK, &sm_sigchld, &omask);
> - e->type = E_ERRH;
> - i = sigsetjmp(e->jbuf, 0);
> + genv->type = E_ERRH;
> + i = sigsetjmp(genv->jbuf, 0);
> if (i) {
> sigprocmask(SIG_SETMASK, &omask, NULL);
> quitenv(NULL);
> @@ -190,8 +190,8 @@ execute(struct op *volatile t,
> coproc_cleanup(true);
>
> /* do this before opening pipes, in case these fail */
> - e->savefd[0] = savefd(0);
> - e->savefd[1] = savefd(1);
> + genv->savefd[0] = savefd(0);
> + genv->savefd[1] = savefd(1);
>
> openpipe(pv);
> if (pv[0] != 0) {
> @@ -213,7 +213,7 @@ execute(struct op *volatile t,
> ++coproc.id;
> }
> sigprocmask(SIG_SETMASK, &omask, NULL);
> - e->type = E_EXEC; /* no more need for error handler */
> + genv->type = E_EXEC; /* no more need for error handler */
>
> /* exchild() closes coproc.* in child after fork,
> * will also increment coproc.njobs when the
> @@ -272,13 +272,13 @@ execute(struct op *volatile t,
> {
> volatile bool is_first = true;
> ap = (t->vars != NULL) ? eval(t->vars, DOBLANK|DOGLOB|DOTILDE) :
> - e->loc->argv + 1;
> - e->type = E_LOOP;
> + genv->loc->argv + 1;
> + genv->type = E_LOOP;
> while (1) {
> - i = sigsetjmp(e->jbuf, 0);
> + i = sigsetjmp(genv->jbuf, 0);
> if (!i)
> break;
> - if ((e->flags&EF_BRKCONT_PASS) ||
> + if ((genv->flags&EF_BRKCONT_PASS) ||
> (i != LBREAK && i != LCONTIN)) {
> quitenv(NULL);
> unwind(i);
> @@ -309,12 +309,12 @@ execute(struct op *volatile t,
>
> case TWHILE:
> case TUNTIL:
> - e->type = E_LOOP;
> + genv->type = E_LOOP;
> while (1) {
> - i = sigsetjmp(e->jbuf, 0);
> + i = sigsetjmp(genv->jbuf, 0);
> if (!i)
> break;
> - if ((e->flags&EF_BRKCONT_PASS) ||
> + if ((genv->flags&EF_BRKCONT_PASS) ||
> (i != LBREAK && i != LCONTIN)) {
> quitenv(NULL);
> unwind(i);
> @@ -583,16 +583,16 @@ comexec(struct op *t, struct tbl *volati
> kshname = ap[0];
> else
> ap[0] = (char *) kshname;
> - e->loc->argv = ap;
> + genv->loc->argv = ap;
> for (i = 0; *ap++ != NULL; i++)
> ;
> - e->loc->argc = i - 1;
> + genv->loc->argc = i - 1;
> /* ksh-style functions handle getopts sanely,
> * bourne/posix functions are insane...
> */
> if (tp->flag & FKSH) {
> - e->loc->flags |= BF_DOGETOPTS;
> - e->loc->getopts_state = user_opt;
> + genv->loc->flags |= BF_DOGETOPTS;
> + genv->loc->getopts_state = user_opt;
> getopts_reset(1);
> }
>
> @@ -602,8 +602,8 @@ comexec(struct op *t, struct tbl *volati
> old_inuse = tp->flag & FINUSE;
> tp->flag |= FINUSE;
>
> - e->type = E_FUNC;
> - i = sigsetjmp(e->jbuf, 0);
> + genv->type = E_FUNC;
> + i = sigsetjmp(genv->jbuf, 0);
> if (i == 0) {
> /* seems odd to pass XERROK here, but at&t ksh does */
> exstat = execute(tp->val.t, flags & XERROK, xerrok);
> @@ -733,7 +733,7 @@ findfunc(const char *name, unsigned int
> struct block *l;
> struct tbl *tp = NULL;
>
> - for (l = e->loc; l; l = l->next) {
> + for (l = genv->loc; l; l = l->next) {
> tp = ktsearch(&l->funs, name, h);
> if (tp)
> break;
> @@ -1123,10 +1123,10 @@ iosetup(struct ioword *iop, struct tbl *
> return -1;
> }
> /* Do not save if it has already been redirected (i.e. "cat >x >y"). */
> - if (e->savefd[iop->unit] == 0) {
> + if (genv->savefd[iop->unit] == 0) {
> /* If these are the same, it means unit was previously closed */
> if (u == iop->unit)
> - e->savefd[iop->unit] = -1;
> + genv->savefd[iop->unit] = -1;
> else
> /* c_exec() assumes e->savefd[fd] set for any
> * redirections. Ask savefd() not to close iop->unit;
> @@ -1134,7 +1134,7 @@ iosetup(struct ioword *iop, struct tbl *
> * is 2; also means we can't lose the fd (eg, both
> * dup2 below and dup2 in restfd() failing).
> */
> - e->savefd[iop->unit] = savefd(iop->unit);
> + genv->savefd[iop->unit] = savefd(iop->unit);
> }
>
> if (do_close)
> @@ -1188,7 +1188,7 @@ herein(const char *content, int sub)
> /* Create temp file to hold content (done before newenv so temp
> * doesn't get removed too soon).
> */
> - h = maketemp(ATEMP, TT_HEREDOC_EXP, &e->temps);
> + h = maketemp(ATEMP, TT_HEREDOC_EXP, &genv->temps);
> if (!(shf = h->shf) || (fd = open(h->name, O_RDONLY, 0)) < 0) {
> warningf(true, "can't %s temporary file %s: %s",
> !shf ? "create" : "open",
> @@ -1200,7 +1200,7 @@ herein(const char *content, int sub)
>
> osource = source;
> newenv(E_ERRH);
> - i = sigsetjmp(e->jbuf, 0);
> + i = sigsetjmp(genv->jbuf, 0);
> if (i) {
> source = osource;
> quitenv(shf);
> Index: expr.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/expr.c,v
> retrieving revision 1.31
> diff -u -p -r1.31 expr.c
> --- expr.c 19 Oct 2015 14:42:16 -0000 1.31
> +++ expr.c 29 Dec 2015 16:07:06 -0000
> @@ -180,7 +180,7 @@ v_evaluate(struct tbl *vp, const char *e
> curstate.val = NULL;
>
> newenv(E_ERRH);
> - i = sigsetjmp(e->jbuf, 0);
> + i = sigsetjmp(genv->jbuf, 0);
> if (i) {
> /* Clear EXPRINEVAL in of any variables we were playing with */
> if (curstate.evaling)
> Index: history.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/history.c,v
> retrieving revision 1.55
> diff -u -p -r1.55 history.c
> --- history.c 14 Dec 2015 13:59:42 -0000 1.55
> +++ history.c 29 Dec 2015 16:07:21 -0000
> @@ -209,7 +209,7 @@ c_fc(char **wp)
>
> /* Run editor on selected lines, then run resulting commands */
>
> - tf = maketemp(ATEMP, TT_HIST_EDIT, &e->temps);
> + tf = maketemp(ATEMP, TT_HIST_EDIT, &genv->temps);
> if (!(shf = tf->shf)) {
> bi_errorf("cannot create temp file %s - %s",
> tf->name, strerror(errno));
> Index: jobs.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/jobs.c,v
> retrieving revision 1.53
> diff -u -p -r1.53 jobs.c
> --- jobs.c 14 Dec 2015 13:59:42 -0000 1.53
> +++ jobs.c 29 Dec 2015 16:07:46 -0000
> @@ -1293,7 +1293,7 @@ check_job(Job *j)
> struct env *ep;
> int fd = 2;
>
> - for (ep = e; ep; ep = ep->oenv)
> + for (ep = genv; ep; ep = ep->oenv)
> if (ep->savefd && ep->savefd[2])
> fd = ep->savefd[2];
> shf_reopen(fd, SHF_WR, shl_j);
> Index: lex.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/lex.c,v
> retrieving revision 1.66
> diff -u -p -r1.66 lex.c
> --- lex.c 14 Dec 2015 13:59:42 -0000 1.66
> +++ lex.c 29 Dec 2015 16:07:56 -0000
> @@ -1201,7 +1201,7 @@ set_prompt(int to, Source *s)
> ps1 = str_save(str_val(global("PS1")), ATEMP);
> saved_atemp = ATEMP; /* ps1 is freed by substitute() */
> newenv(E_ERRH);
> - if (sigsetjmp(e->jbuf, 0)) {
> + if (sigsetjmp(genv->jbuf, 0)) {
> prompt = safe_prompt;
> /* Don't print an error - assume it has already
> * been printed. Reason is we may have forked
> Index: main.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/main.c,v
> retrieving revision 1.75
> diff -u -p -r1.75 main.c
> --- main.c 14 Dec 2015 13:59:42 -0000 1.75
> +++ main.c 29 Dec 2015 16:09:26 -0000
> @@ -38,7 +38,7 @@ const char *safe_prompt;
>
> Area aperm;
>
> -struct env *e;
> +struct env *genv;
>
> char shell_flags[FNFLAGS];
>
> @@ -168,7 +168,7 @@ main(int argc, char *argv[])
> memset(&env, 0, sizeof(env));
> env.type = E_NONE;
> ainit(&env.area);
> - e = &env;
> + genv = &env;
> newblock(); /* set up global l->vars and l->funs */
>
> /* Do this first so output routines (eg, errorf, shellf) can work */
> @@ -384,7 +384,7 @@ main(int argc, char *argv[])
> x_init();
> #endif
>
> - l = e->loc;
> + l = genv->loc;
> l->argv = make_argv(argc - (argi - 1), &argv[argi - 1]);
> l->argc = argc - argi;
> getopts_reset(1);
> @@ -478,19 +478,19 @@ include(const char *name, int argc, char
> return -1;
>
> if (argv) {
> - old_argv = e->loc->argv;
> - old_argc = e->loc->argc;
> + old_argv = genv->loc->argv;
> + old_argc = genv->loc->argc;
> } else {
> old_argv = NULL;
> old_argc = 0;
> }
> newenv(E_INCL);
> - i = sigsetjmp(e->jbuf, 0);
> + i = sigsetjmp(genv->jbuf, 0);
> if (i) {
> quitenv(s ? s->u.shf : NULL);
> if (old_argv) {
> - e->loc->argv = old_argv;
> - e->loc->argc = old_argc;
> + genv->loc->argv = old_argv;
> + genv->loc->argc = old_argc;
> }
> switch (i) {
> case LRETURN:
> @@ -514,8 +514,8 @@ include(const char *name, int argc, char
> }
> }
> if (argv) {
> - e->loc->argv = argv;
> - e->loc->argc = argc;
> + genv->loc->argv = argv;
> + genv->loc->argc = argc;
> }
> s = pushs(SFILE, ATEMP);
> s->u.shf = shf;
> @@ -523,8 +523,8 @@ include(const char *name, int argc, char
> i = shell(s, false);
> quitenv(s->u.shf);
> if (old_argv) {
> - e->loc->argv = old_argv;
> - e->loc->argc = old_argc;
> + genv->loc->argv = old_argv;
> + genv->loc->argc = old_argc;
> }
> return i & 0xff; /* & 0xff to ensure value not -1 */
> }
> @@ -560,7 +560,7 @@ shell(Source *volatile s, volatile int t
> newenv(E_PARSE);
> if (interactive)
> really_exit = 0;
> - i = sigsetjmp(e->jbuf, 0);
> + i = sigsetjmp(genv->jbuf, 0);
> if (i) {
> switch (i) {
> case LINTR: /* we get here if SIGINT not caught or ignored */
> @@ -671,18 +671,18 @@ unwind(int i)
> i = LLEAVE;
> }
> while (1) {
> - switch (e->type) {
> + switch (genv->type) {
> case E_PARSE:
> case E_FUNC:
> case E_INCL:
> case E_LOOP:
> case E_ERRH:
> - siglongjmp(e->jbuf, i);
> + siglongjmp(genv->jbuf, i);
> /* NOTREACHED */
>
> case E_NONE:
> if (i == LINTR)
> - e->flags |= EF_FAKE_SIGDIE;
> + genv->flags |= EF_FAKE_SIGDIE;
> /* FALLTHROUGH */
>
> default:
> @@ -707,17 +707,17 @@ newenv(int type)
> ep->type = type;
> ep->flags = 0;
> ainit(&ep->area);
> - ep->loc = e->loc;
> + ep->loc = genv->loc;
> ep->savefd = NULL;
> - ep->oenv = e;
> + ep->oenv = genv;
> ep->temps = NULL;
> - e = ep;
> + genv = ep;
> }
>
> void
> quitenv(struct shf *shf)
> {
> - struct env *ep = e;
> + struct env *ep = genv;
> int fd;
>
> if (ep->oenv && ep->oenv->loc != ep->loc)
> @@ -764,7 +764,7 @@ quitenv(struct shf *shf)
> shf_close(shf);
> reclaim();
>
> - e = e->oenv;
> + genv = genv->oenv;
> afree(ep, ATEMP);
> }
>
> @@ -781,7 +781,7 @@ cleanup_parents_env(void)
> */
>
> /* close all file descriptors hiding in savefd */
> - for (ep = e; ep; ep = ep->oenv) {
> + for (ep = genv; ep; ep = ep->oenv) {
> if (ep->savefd) {
> for (fd = 0; fd < NUFILE; fd++)
> if (ep->savefd[fd] > 0)
> @@ -790,7 +790,7 @@ cleanup_parents_env(void)
> ep->savefd = NULL;
> }
> }
> - e->oenv = NULL;
> + genv->oenv = NULL;
> }
>
> /* Called just before an execve cleanup stuff temporary files */
> @@ -799,7 +799,7 @@ cleanup_proc_env(void)
> {
> struct env *ep;
>
> - for (ep = e; ep; ep = ep->oenv)
> + for (ep = genv; ep; ep = ep->oenv)
> remove_temps(ep->temps);
> }
>
> @@ -807,9 +807,9 @@ cleanup_proc_env(void)
> static void
> reclaim(void)
> {
> - remove_temps(e->temps);
> - e->temps = NULL;
> - afreeall(&e->area);
> + remove_temps(genv->temps);
> + genv->temps = NULL;
> + afreeall(&genv->area);
> }
>
> static void
> Index: sh.h
> ===================================================================
> RCS file: /cvs/src/bin/ksh/sh.h,v
> retrieving revision 1.55
> diff -u -p -r1.55 sh.h
> --- sh.h 14 Dec 2015 13:59:42 -0000 1.55
> +++ sh.h 29 Dec 2015 14:57:16 -0000
> @@ -53,7 +53,7 @@ typedef struct Area {
>
> extern Area aperm; /* permanent object space */
> #define APERM &aperm
> -#define ATEMP &e->area
> +#define ATEMP &genv->area
>
> #ifdef KSH_DEBUG
> # define kshdebug_init() kshdebug_init_()
> @@ -78,7 +78,7 @@ struct env {
> sigjmp_buf jbuf; /* long jump back to env creator */
> struct temp *temps; /* temp files */
> };
> -extern struct env *e;
> +extern struct env *genv;
>
> /* struct env.type values */
> #define E_NONE 0 /* dummy environment */
> Index: syn.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/syn.c,v
> retrieving revision 1.37
> diff -u -p -r1.37 syn.c
> --- syn.c 1 Nov 2015 15:38:53 -0000 1.37
> +++ syn.c 29 Dec 2015 16:09:45 -0000
> @@ -555,8 +555,8 @@ function_body(char *name,
> reject = true;
> }
>
> - old_func_parse = e->flags & EF_FUNC_PARSE;
> - e->flags |= EF_FUNC_PARSE;
> + old_func_parse = genv->flags & EF_FUNC_PARSE;
> + genv->flags |= EF_FUNC_PARSE;
> if ((t->left = get_command(CONTIN)) == NULL) {
> /*
> * Probably something like foo() followed by eof or ;.
> @@ -576,7 +576,7 @@ function_body(char *name,
> t->left->lineno = 1;
> }
> if (!old_func_parse)
> - e->flags &= ~EF_FUNC_PARSE;
> + genv->flags &= ~EF_FUNC_PARSE;
>
> return t;
> }
> Index: var.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/var.c,v
> retrieving revision 1.54
> diff -u -p -r1.54 var.c
> --- var.c 14 Dec 2015 13:59:42 -0000 1.54
> +++ var.c 29 Dec 2015 16:14:36 -0000
> @@ -34,7 +34,7 @@ static struct tbl *arraysearch(struct tb
>
> /*
> * create a new block for function calls and simple commands
> - * assume caller has allocated and set up e->loc
> + * assume caller has allocated and set up genv->loc
> */
> void
> newblock(void)
> @@ -44,19 +44,19 @@ newblock(void)
>
> l = alloc(sizeof(struct block), ATEMP);
> l->flags = 0;
> - ainit(&l->area); /* todo: could use e->area (l->area => l->areap) */
> - if (!e->loc) {
> + ainit(&l->area); /* todo: could use genv->area (l->area => l->areap) */
> + if (!genv->loc) {
> l->argc = 0;
> l->argv = (char **) empty;
> } else {
> - l->argc = e->loc->argc;
> - l->argv = e->loc->argv;
> + l->argc = genv->loc->argc;
> + l->argv = genv->loc->argv;
> }
> l->exit = l->error = NULL;
> ktinit(&l->vars, &l->area, 0);
> ktinit(&l->funs, &l->area, 0);
> - l->next = e->loc;
> - e->loc = l;
> + l->next = genv->loc;
> + genv->loc = l;
> }
>
> /*
> @@ -65,11 +65,11 @@ newblock(void)
> void
> popblock(void)
> {
> - struct block *l = e->loc;
> + struct block *l = genv->loc;
> struct tbl *vp, **vpp = l->vars.tbls, *vq;
> int i;
>
> - e->loc = l->next; /* pop block */
> + genv->loc = l->next; /* pop block */
> for (i = l->vars.size; --i >= 0; )
> if ((vp = *vpp++) != NULL && (vp->flag&SPECIAL)) {
> if ((vq = global(vp->name))->flag & ISSET)
> @@ -162,7 +162,7 @@ array_index_calc(const char *n, bool *ar
> struct tbl *
> global(const char *n)
> {
> - struct block *l = e->loc;
> + struct block *l = genv->loc;
> struct tbl *vp;
> long num;
> int c;
> @@ -219,7 +219,7 @@ global(const char *n)
> }
> return vp;
> }
> - for (l = e->loc; ; l = l->next) {
> + for (l = genv->loc; ; l = l->next) {
> vp = ktsearch(&l->vars, n, h);
> if (vp != NULL) {
> if (array)
> @@ -245,7 +245,7 @@ global(const char *n)
> struct tbl *
> local(const char *n, bool copy)
> {
> - struct block *l = e->loc;
> + struct block *l = genv->loc;
> struct tbl *vp;
> unsigned int h;
> bool array;
> @@ -841,7 +841,7 @@ makenv(void)
> int i;
>
> XPinit(env, 64);
> - for (l = e->loc; l != NULL; l = l->next)
> + for (l = genv->loc; l != NULL; l = l->next)
> for (vpp = l->vars.tbls, i = l->vars.size; --i >= 0; )
> if ((vp = *vpp++) != NULL &&
> (vp->flag&(ISSET|EXPORT)) == (ISSET|EXPORT)) {
> Index: vi.c
> ===================================================================
> RCS file: /cvs/src/bin/ksh/vi.c,v
> retrieving revision 1.39
> diff -u -p -r1.39 vi.c
> --- vi.c 22 Dec 2015 08:39:26 -0000 1.39
> +++ vi.c 29 Dec 2015 14:52:29 -0000
> @@ -1896,7 +1896,7 @@ ed_mov_opt(int col, char *wb)
>
> /* replace word with all expansions (ie, expand word*) */
> static int
> -expand_word(int command)
> +expand_word(int cmd)
> {
> static struct edstate *buf;
> int rval = 0;
> @@ -1906,7 +1906,7 @@ expand_word(int command)
> int i;
>
> /* Undo previous expansion */
> - if (command == 0 && expanded == EXPAND && buf) {
> + if (cmd == 0 && expanded == EXPAND && buf) {
> restore_edstate(es, buf);
> buf = NULL;
> expanded = NONE;
> @@ -1950,7 +1950,7 @@ expand_word(int command)
> }
>
> static int
> -complete_word(int command, int count)
> +complete_word(int cmd, int count)
> {
> static struct edstate *buf;
> int rval = 0;
> @@ -1963,12 +1963,12 @@ complete_word(int command, int count)
> int is_command;
>
> /* Undo previous completion */
> - if (command == 0 && expanded == COMPLETE && buf) {
> + if (cmd == 0 && expanded == COMPLETE && buf) {
> print_expansions(buf, 0);
> expanded = PRINT;
> return 0;
> }
> - if (command == 0 && expanded == PRINT && buf) {
> + if (cmd == 0 && expanded == PRINT && buf) {
> restore_edstate(es, buf);
> buf = NULL;
> expanded = NONE;
> @@ -2055,7 +2055,7 @@ complete_word(int command, int count)
> }
>
> static int
> -print_expansions(struct edstate *e, int command)
> +print_expansions(struct edstate *e, int cmd)
> {
> int nwords;
> int start, end;
>