Re: [PATCHv2 02/11] git-p4: test debug macro

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



jrnieder@xxxxxxxxx wrote on Sat, 17 Dec 2011 21:26 -0600:
> Pete Wyckoff wrote:
> 
> > +	# 2 is SIGINT, ash/dash does not know symbolic names
> > +	trap echo 2
> 
> 'trap "$cmd" INT' works, and it's even in POSIX. ;)
> http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#trap

Nice!  But ash/dash handle subshell INT differently.  With ash,
the entire test exits after the ctrl-C, even if caught by a trap in a
subshell.  Not so nice.  Here's a demonstration.

-----------8<-------------
# shell top.sh
echo top.sh
$SHELL trap.sh
echo top.sh: exit status from trap.sh: $?
echo top.sh: exiting
exit 0
-----------8<-------------

-----------8<-------------
# shell trap.sh
echo trap.sh
trap "echo trap.sh caught INT" INT
sleep 3600
trap - INT
echo trap.sh: exiting
exit 0
-----------8<-------------

Run "bash top.sh".  Hit ctrl-c, you'll see:

    $ bash top.sh
    top.sh
    trap.sh
    ^Ctrap.sh caught INT
    trap.sh: exiting
    top.sh: exit status from trap.sh: 0
    top.sh: exiting

Similarly with "ash top.sh":

    $ ash top.sh
    top.sh
    trap.sh
    ^Ctrap.sh caught INT
    trap.sh: exiting

The top-level script also gets the ctrl-c, but exits on the INT
anyway, after reaping its child.  I can't find where POSIX says
if this is correct or not.  It isn't how I want it to work here.

I'll add a comment above debug() to explain that it works in bash
but not ash.  At least it prints out the P4 environment
information needed to debug.

		-- Pete
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]