From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1259 invoked by alias); 20 Jun 2018 09:13:20 -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: List-Unsubscribe: X-Seq: 43077 Received: (qmail 22837 invoked by uid 1010); 20 Jun 2018 09:13:20 -0000 X-Qmail-Scanner-Diagnostics: from mailout1.w1.samsung.com by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(210.118.77.11):SA:0(-6.9/5.0):. Processed in 3.55323 secs); 20 Jun 2018 09:13:20 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, SPF_HELO_PASS,SPF_PASS,T_DKIMWL_WL_HIGH,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: p.stephenson@samsung.com X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20180620091311euoutp01942166b050cf7136dfc58f5a84246052~502fVfN3L1930019300euoutp01s DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1529485991; bh=BNAD8OZtQeAPFLDWn0ssH0RtaTDPgRJ0yjNl1zJ3LKM=; h=Date:From:To:Subject:In-Reply-To:References:From; b=pTYCjB2yiLGIRYoQT/y+96hlVfahIGGvcDu9VmmHWiyBJZrVrsmzDTPbXddTcUdJO aWW8TbdhBYEnQ3ENsxJQSVmsGM6lCfdjAzvFGKcO2knjWc7eponsrSxQ1mp1Pqj8w+ n+ylmcWfj9irge9IXluZ9tggXkiR7ZhO/ow+el9U= X-AuditID: cbfec7f2-5ffe19c000011644-2c-5b2a1a9e8ab2 Date: Wed, 20 Jun 2018 10:12:54 +0100 From: Peter Stephenson To: Zsh hackers list Subject: Re: [bug] shift: shell exits with status 0 on bad math expression In-Reply-To: Organization: SCSC X-Mailer: Claws Mail 3.13.2 (GTK+ 2.24.30; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFnrPIsWRmVeSWpSXmKPExsWy7djPc7rzpLSiDb7PM7I42PyQyYHRY9XB D0wBjFFcNimpOZllqUX6dglcGbPXHGAsWMJW0XJ/GlMD4wuWLkZODgkBE4ntu54A2VwcQgIr GCU+/fjNCuH0MUlc+v6RDcLpZZL4PvMPXMvuLW+hEssZJeY9eMoKV3WhrRFq2BlGid6XK5kg nAuMEtdvfmIF6WcRUJW4+XY6I4jNJmAoMXXTbDBbREBLYsfJk0ANHBzCAl4S9xYHgYQ5BWwk epZeZQQJ8wsISVxotoW4wl7i6B6Qak4OXgFBiZMzn4BdxywgL7H97RxmkLUSAp/ZJKZvOskM UVQm8W3ZG1aIZheJvl/XGSFsYYlXx7ewQ9gyEqcn97BANLczSqyZ9JodwulhlNh09A5Uh7VE 3+2LYBcxC2hKrN+lDxF2lPg7ZT8rSFhCgE/ixltBiIP4JCZtm84MEeaV6GgTgqhWk9jRtJVx AqPyLCQvzELywiyE+QsYmVcxiqeWFuempxYb5qWW6xUn5haX5qXrJefnbmIEJoPT/45/2sH4 9VLSIUYBDkYlHl4GZs1oIdbEsuLK3EOMEhzMSiK8DKc0ooV4UxIrq1KL8uOLSnNSiw8xSnOw KInzxmnURQkJpCeWpGanphakFsFkmTg4pRoYE2K+MG6/HqcXvOnvrMd2G/+VHnmocP6G9bGr izey95f0Ht5R/9xpk9lVruQlN/3ubHE57GuvPzVfqIx1ZgZnlvwDd/E3lboy4mZdC5/c7vXx WZH17NLdHZoftaX9mOu52T59LWSczdZxO22+l9OcO1tSbvk5cYv5LhH315j/TVJjYtzGijvp SizFGYmGWsxFxYkAr5B3uwIDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupmkeLIzCtJLcpLzFFi42I5/e/4Pd2ZUlrRBuseqVscbH7I5MDoserg B6YAxig9m6L80pJUhYz84hJbpWhDCyM9Q0sLPSMTSz1DY/NYKyNTJX07m5TUnMyy1CJ9uwS9 jNlrDjAWLGGraLk/jamB8QVLFyMnh4SAicTuLW/ZQGwhgaWMEvfmlkDEZSQ+XfnIDmELS/y5 1gVUwwVU080k0fNlExOEc4ZR4vjEh0wQ3RcYJf59jAGxWQRUJW6+nc4IYrMJGEpM3TQbzBYR 0JLYcfIkUD0Hh7CAl8S9xUEgYV4BZ4nmqS+ZQWxOARuJnqVXGSHm9zNKtN1eyAxSzy8gJHGh 2RbiIHuJo3tOMkH0CkqcnPkE7BlmAR2JE6uOMUPY8hLb385hnsAoPAtJ2SwkZbOQlC1gZF7F KJJaWpybnltspFecmFtcmpeul5yfu4kRGBHbjv3csoOx613wIUYBDkYlHl4GZs1oIdbEsuLK 3EOMEhzMSiK8DKc0ooV4UxIrq1KL8uOLSnNSiw8xmgLDYiKzlGhyPjBa80riDU0NzS0sDc2N zY3NLJTEec8bVEYJCaQnlqRmp6YWpBbB9DFxcEo1MNoFvzzc7PTwZ8pWjsL6Te/mNv+YrLIs V3tyGeOcl5MjsqRf6rLOM3ETtBfbf19uViRvh+eitSabNtVenW68SaRap8xY/JJ+7YaWXWrP Ji+S2fpJ903jDN/Swwf/H5piqSj26dfr+wJ+tQbm8sc2V3xeHy9kv/WDvLbE9Mnn/CbrnVNf Hl87QVyJpTgj0VCLuag4EQA7oJkUngIAAA== Message-Id: <20180620091300eucas1p2211ee4b522ce901e37a5287431ffdb0c~502U8aqP-3109831098eucas1p2y@eucas1p2.samsung.com> X-CMS-MailID: 20180620091300eucas1p2211ee4b522ce901e37a5287431ffdb0c X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20180620090022epcas1p4700aca92f8b52c669c5ac10165a6ce80 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20180620090022epcas1p4700aca92f8b52c669c5ac10165a6ce80 References: On Wed, 20 Jun 2018 09:45:36 +0100 Martijn Dekker wrote: > When an argument is given to 'shift' that constitutes a bad math > expression, the (sub)shell prints an error and exits, but the exit > status is zero (= success) under most conditions. diff --git a/Src/builtin.c b/Src/builtin.c index 1cba97d..93fa911 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -5318,8 +5318,13 @@ bin_shift(char *name, char **argv, Options ops, UNUSED(int func)) /* optional argument can be either numeric or an array */ queue_signals(); - if (*argv && !getaparam(*argv)) + if (*argv && !getaparam(*argv)) { num = mathevali(*argv++); + if (errflag) { + unqueue_signals(); + return 1; + } + } if (num < 0) { unqueue_signals();