From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 18103 invoked by alias); 6 Aug 2015 20:43:12 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 36008 Received: (qmail 15567 invoked from network); 6 Aug 2015 20:43:08 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,RCVD_IN_DNSWL_LOW autolearn=ham autolearn_force=no version=3.4.0 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= daniel.shahaf.name; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=mesmtp; bh=nwJdIhNusRBhN0blJq5eF46ORl8=; b=nDR3U+ G4pIkTfMVkU3Ocw97evxv0RtU8bpuj/ZC47HuB/muqlStgHk9KoXqAuZU6ZeO+0a wQn/XdVOy2albfgsZlTa3+maAfoSSb0oabdZAf80Y9JV5szAH+m4CYgLUgKTatmo Oxzn7vb5EUTFJB58YtQrY9lVg5muEbWG10ke0= DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-sasl-enc :x-sasl-enc; s=smtpout; bh=nwJdIhNusRBhN0blJq5eF46ORl8=; b=LG6WD Ev5ci0g5QBnSyoKvVPCS17aBTO3sx3x+gAdQIWTWN6p3c/tNDxTizIpIkfCXpCuw DVOf+yAeejaeWLA3aA1RCYosz6Gb7TlN6yZZmnWEa0du4enEX0EEgynoA1MidP0E tNmNTYmJHrWxvw+mFlrSwtlWtmP+rwQ85I1D9s= X-Sasl-enc: UNFu6vmIRxtumB2t9re0oi3KzEUAR8XCQN4EwswxLTf4 1438893096 Date: Thu, 6 Aug 2015 20:31:34 +0000 From: Daniel Shahaf To: Mikael Magnusson Cc: zsh workers Subject: Re: traps specified in certain ways are output incorrectly Message-ID: <20150806203134.GD2018@tarsus.local2> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Mikael Magnusson wrote on Wed, Aug 05, 2015 at 22:51:51 +0200: > % trap a TERM; trap b SIGKILL; trap c 14; trap > Bad alias flag for signal > Bad alias flag for signal > trap -- b > trap -- c > trap -- a TERM > > (The alias flag message is only printed with --enable-zsh-debug). This makes it DTRT: diff --git a/Src/builtin.c b/Src/builtin.c index a08a7d4..34bad03 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -6565,8 +6565,14 @@ bin_trap(char *name, char **argv, UNUSED(Options ops), UNUSED(int func)) zwarnnam(name, "undefined signal: %s", *argv); break; } - if (!strcmp(sigs[sig], *argv)) + if (idigit(**argv) || + !strcmp(sigs[sig], *argv) || + (!strncmp("SIG", *argv, 3) && !strcmp(sigs[sig], *argv+3))) { + /* The signal was specified by number or by canonical name (with + * or without SIG prefix). + */ flags = 0; + } else { /* * Record that the signal is used under an assumed name.