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;
> 

Reply via email to