diff options
-rw-r--r-- | ChangeLog | 13 | ||||
-rw-r--r-- | Src/exec.c | 2 |
2 files changed, 13 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog index 3ef64879e..8022bc2b4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2011-05-24 Barton E. Schaefer <schaefer@brasslantern.com> + + * 29368: Src/exec.c: do not restore xtrerr to stderr before + running simple commands; restore xtrerr to stderr just before + running a function body, but after printing the trace of + the function call itself. + + * 29367: Test/E02xtrace.ztst: update tests to fix mistaken + assumptions introduced by 25154 and add check of redirection + inside a function body. + 2011-05-24 Mikael Magnusson <mikachu@gmail.com> * 29364: Completion/Unix/Command/_make: Partial fix for @@ -14803,5 +14814,5 @@ ***************************************************** * This is used by the shell to define $ZSH_PATCHLEVEL -* $Revision: 1.5325 $ +* $Revision: 1.5326 $ ***************************************************** diff --git a/Src/exec.c b/Src/exec.c index 0e1a6c81f..2558185c8 100644 --- a/Src/exec.c +++ b/Src/exec.c @@ -3079,7 +3079,6 @@ execcmd(Estate state, int input, int output, int how, int last1) if (mfds[i] && mfds[i]->ct >= 2) closemn(mfds, i); - xtrerr = stderr; if (nullexec) { if (nullexec == 1) { /* @@ -4260,6 +4259,7 @@ execshfunc(Shfunc shf, LinkList args) cmdsp = 0; if ((osfc = sfcontext) == SFC_NONE) sfcontext = SFC_DIRECT; + xtrerr = stderr; doshfunc(shf, args, 0); sfcontext = osfc; free(cmdstack); |