From: Pete Wyckoff <pw@padd.com>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: Luke Diamand <luke@diamand.org>, git@vger.kernel.org
Subject: Re: [PATCHv2 02/11] git-p4: test debug macro
Date: Sun, 18 Dec 2011 08:50:47 -0500 [thread overview]
Message-ID: <20111218135047.GA16487@padd.com> (raw)
In-Reply-To: <20111218032238.GA6368@elie.hsd1.il.comcast.net>
jrnieder@gmail.com 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
next prev parent reply other threads:[~2011-12-18 13:50 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-17 18:52 [PATCH 00/11] git-p4: asciidoc documentation and fixes Pete Wyckoff
2011-12-17 18:52 ` [PATCH 01/11] git-p4: introduce asciidoc documentation Pete Wyckoff
2011-12-17 18:52 ` [PATCH 02/11] git-p4: test debug macro Pete Wyckoff
2011-12-17 22:43 ` Luke Diamand
2011-12-18 1:36 ` [PATCHv2 " Pete Wyckoff
2011-12-18 3:26 ` Jonathan Nieder
2011-12-18 13:50 ` Pete Wyckoff [this message]
2011-12-18 14:06 ` [PATCHv3 " Pete Wyckoff
2011-12-18 17:10 ` Luke Diamand
2011-12-18 21:48 ` Junio C Hamano
2011-12-20 1:35 ` Pete Wyckoff
2011-12-17 18:52 ` [PATCH 03/11] git-p4: clone does not use --git-dir Pete Wyckoff
2011-12-17 18:52 ` [PATCH 04/11] git-p4: test cloning with two dirs, clarify doc Pete Wyckoff
2011-12-17 18:52 ` [PATCH 05/11] git-p4: document and test clone --branch Pete Wyckoff
2011-12-17 18:52 ` [PATCH 06/11] git-p4: honor --changesfile option and test Pete Wyckoff
2011-12-17 18:52 ` [PATCH 07/11] git-p4: document and test --import-local Pete Wyckoff
2011-12-17 18:52 ` [PATCH 08/11] git-p4: test --max-changes Pete Wyckoff
2011-12-17 18:52 ` [PATCH 09/11] git-p4: test --keep-path Pete Wyckoff
2011-12-17 18:52 ` [PATCH 10/11] git-p4: test and document --use-client-spec Pete Wyckoff
2011-12-17 18:52 ` [PATCH 11/11] git-p4: document and test submit options Pete Wyckoff
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20111218135047.GA16487@padd.com \
--to=pw@padd.com \
--cc=git@vger.kernel.org \
--cc=jrnieder@gmail.com \
--cc=luke@diamand.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.