Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: Weird exit caused in a trap DEBUG which sources a file.



Looks like the crucial change that makes zsh 4.3.5-dev and current SVN
sources fail is an extra source after the trap DEBUG:


#!/bin/zsh-beta -f
function debug_trap_handler {
   print $functrace[1]
  . ./bug-file
}

trap 'echo EXIT hit' EXIT
trap 'debug_trap_handler' DEBUG
. ./testing.sh

Put in ./testing.sh and bug-file some executable code. You probably
want to have several statements in testing.sh so you can see exiting
after the first statement.



On Thu, Jul 31, 2008 at 6:05 AM, Rocky Bernstein
<rocky.bernstein@xxxxxxxxx> wrote:
> I don't get different results by adding -f. However I do get different
> results depending on the zsh version.
>
> The buggy output was run using the stock zsh for Ubunty Hardy Heron:
> zsh 4.3.4 (i686-pc-linux-gnu)
>
> I don't get it for the "zsh-beta" package which is
> zsh 4.3.5-dev-0+ (i686-pc-linux-gnu)
>
> Life would be good were that were the end of the story.
>
> This is this is whittled down from a larger set of files, and in that
> larger set, I still have the problem no matter which of the above two
> zsh's is used or a third or the one I built from recent CVS with the
> patches I posted applied. So it looks like I'll have to go back and
> start again from the larger program and whittle it down again.
>
> If anyone is aware of what bug was fixed between 4.3.4 and 4.3.5-dev-0
> that addresses this, it might help understand the nature of the
> problem better. (I will also at some point scour ChangeLogs to try to
> figure this out too.)
>
> Thanks for double checking and the suggestions.
>
>
> On Thu, Jul 31, 2008 at 5:01 AM, Peter Stephenson <pws@xxxxxxx> wrote:
>> "Rocky Bernstein" wrote:
>>> Below is a small program whittled down from a larger one. It has
>>> behavior I can't figure out.
>>>
>>> It seems to show that when a function is called via trap DEBUG and you
>>> then source a file and it has a statement in it, on return from the
>>> TRAP an exit will be taken.  Here is the program:
>>>
>>> #!/usr/bin/zsh
>>> function debug_trap_handler {
>>>     print $functrace[1]
>>>     do_bug
>>> }
>>>
>>> function do_bug {
>>>    . ./bug-file
>>> }
>>>
>>> trap 'echo EXIT hit' EXIT
>>> trap 'debug_trap_handler' DEBUG
>>> a=1
>>> b=2
>>> d=3
>>>
>>> In "bug-file" put any command. ":" will do. Or a print statement.
>>> Let's say it contains the line:
>>> print bug file here
>>>
>>> When I run the above I get:
>>>
>>> $ ./zshtrace.sh
>>>
>>> ./zshtrace.sh:12
>>> bug file here
>>> EXIT hit
>>
>> That certainly looks like a bug, but it didn't happen for me.  What
>> version of the shell do you have, and does it happen with the -f option
>> after /usr/bin/zsh?
>>
>> --
>> Peter Stephenson <pws@xxxxxxx>                  Software Engineer
>> CSR PLC, Churchill House, Cambridge Business Park, Cowley Road
>> Cambridge, CB4 0WZ, UK                          Tel: +44 (0)1223 692070
>>
>



Messages sorted by: Reverse Date, Date, Thread, Author