diff options
author | Teubel György <tgyurci@gmail.com> | 2016-09-03 23:06:30 +0200 |
---|---|---|
committer | Peter Stephenson <p.w.stephenson@ntlworld.com> | 2016-09-05 21:03:12 +0100 |
commit | fde365ea8ba91a4e7daa27dfd63fdadb55a882f5 (patch) | |
tree | 2fcced596ce2e94c0e2ede4fb9bff5f16b6ed2f9 | |
parent | 02bb3de2575aca2b0e823b96d8281c89a77eba42 (diff) | |
download | zsh-fde365ea8ba91a4e7daa27dfd63fdadb55a882f5.tar.gz zsh-fde365ea8ba91a4e7daa27dfd63fdadb55a882f5.tar.xz zsh-fde365ea8ba91a4e7daa27dfd63fdadb55a882f5.zip |
39167: Make $ENV handling more like POSIX
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Doc/Zsh/params.yo | 3 | ||||
-rw-r--r-- | Src/init.c | 25 |
3 files changed, 21 insertions, 12 deletions
diff --git a/ChangeLog b/ChangeLog index b6f4836d7..f5d18990a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2016-09-05 Peter Stephenson <p.w.stephenson@ntlworld.com> + + * Teubel György: 39167: Src/init.c, Doc/Zsh/params.yo: Make $ENV + more like POSIX. + 2016-09-04 Daniel Shahaf <d.s@daniel.shahaf.name> * unposted: Src/Zle/comp.h, Src/Zle/complete.c: internals: diff --git a/Doc/Zsh/params.yo b/Doc/Zsh/params.yo index 55930ed7b..03625ce24 100644 --- a/Doc/Zsh/params.yo +++ b/Doc/Zsh/params.yo @@ -1059,7 +1059,8 @@ If the tt(ENV) environment variable is set when zsh is invoked as tt(sh) or tt(ksh), tt($ENV) is sourced after the profile scripts. The value of tt(ENV) is subjected to parameter expansion, command substitution, and arithmetic expansion before being interpreted as a pathname. Note that -tt(ENV) is em(not) used unless zsh is emulating bf(sh) or bf(ksh). +tt(ENV) is em(not) used unless the shell is interactive and zsh is +emulating bf(sh) or bf(ksh). ) vindex(FCEDIT) item(tt(FCEDIT))( diff --git a/Src/init.c b/Src/init.c index 20a07eb0a..3dea179b9 100644 --- a/Src/init.c +++ b/Src/init.c @@ -712,7 +712,7 @@ init_term(void) if (tgetent(termbuf, term) != TGETENT_SUCCESS) #endif { - if (isset(INTERACTIVE)) + if (interact) zerr("can't find terminal definition for %s", term); errflag &= ~ERRFLAG_ERROR; termflags |= TERM_BAD; @@ -1205,19 +1205,22 @@ run_init_scripts(void) if (islogin) source("/etc/profile"); if (unset(PRIVILEGED)) { - char *s = getsparam("ENV"); if (islogin) sourcehome(".profile"); - noerrs = 2; - if (s) { - s = dupstring(s); - if (!parsestr(&s)) { - singsub(&s); - noerrs = 0; - source(s); + + if (interact) { + noerrs = 2; + char *s = getsparam("ENV"); + if (s) { + s = dupstring(s); + if (!parsestr(&s)) { + singsub(&s); + noerrs = 0; + source(s); + } } + noerrs = 0; } - noerrs = 0; } else source("/etc/suid_profile"); } else { @@ -1227,7 +1230,7 @@ run_init_scripts(void) if (isset(RCS) && unset(PRIVILEGED)) { - if (isset(INTERACTIVE)) { + if (interact) { /* * Always attempt to load the newuser module to perform * checks for new zsh users. Don't care if we can't load it. |