From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2723 invoked by alias); 11 Jan 2018 15:28:29 -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: 42256 Received: (qmail 3527 invoked by uid 1010); 11 Jan 2018 15:28:29 -0000 X-Qmail-Scanner-Diagnostics: from hahler.de 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(188.40.33.212):SA:0(-1.7/5.0):. Processed in 3.944017 secs); 11 Jan 2018 15:28:29 -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=-1.7 required=5.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,SPF_PASS,T_DKIM_INVALID,T_RP_MATCHES_RCVD autolearn=no autolearn_force=no version=3.4.1 X-Envelope-From: daniel@hahler.de X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=thequod.de; h= x-mailer:message-id:date:date:subject:subject:from:from:received :received:received; s=postfix2; t=1515684138; bh=9604i/52OdTIY4B aiZK29Ru/UoXq0OMOadjJ/aOWbFI=; b=mi8/QOGgOtoqsIVu/gGnExCZi6S4eDX qJBQIOE7WWVye0YQkKoM3Nm9hL0k43zvgXkr2iqUiKPEpz9KWJT9fN5BJxijupLJ jlVVKuhnC4RgQLlUvwauB7PgOq/BxQ4IOxDVe8B9QMkNrTWneHFl15yrIyG1P4j4 xewebucME524= From: Daniel Hahler To: zsh-workers@zsh.org Subject: [PATCH] [RFC] Reset pipestatus in zleread Date: Thu, 11 Jan 2018 16:22:11 +0100 Message-Id: <20180111152211.18116-1-genml+zsh-workers@thequod.de> X-Mailer: git-send-email 2.15.1 From: Daniel Hahler What do you think about this? I am looking at $pipestatus in my prompt precmd function, so that with "false | true" I would still get an indicator that (something in) the command failed (since $? (status) is 0 in this case). However, with e.g. "foo=bar" (executed via execsimple) $pipestatus gets not reset. This patch resets it in zleread always. --- Src/Zle/zle_main.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c index be2b062b0..522cf7a1a 100644 --- a/Src/Zle/zle_main.c +++ b/Src/Zle/zle_main.c @@ -1196,6 +1196,12 @@ zleread(char **lp, char **rp, int flags, int context, char *init, char *finish) int old_errno = errno; int tmout = getiparam("TMOUT"); + /* Reset pipestatus. + * This is useful to have status and pipestatus in line in precmd + * functions. + */ + numpipestats = 0; + #if defined(HAVE_POLL) || defined(HAVE_SELECT) /* may not be set, but that's OK since getiparam() returns 0 == off */ baud = getiparam("BAUD"); -- 2.15.1