zsh-workers
 help / color / mirror / code / Atom feed
* [PATCH] [RFC] Reset pipestatus in zleread
@ 2018-01-11 15:22 Daniel Hahler
  2018-01-11 17:16 ` Eric Cook
  2018-01-12 18:44 ` Bart Schaefer
  0 siblings, 2 replies; 3+ messages in thread
From: Daniel Hahler @ 2018-01-11 15:22 UTC (permalink / raw)
  To: zsh-workers

From: Daniel Hahler <git@thequod.de>

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


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2018-01-12 18:44 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-11 15:22 [PATCH] [RFC] Reset pipestatus in zleread Daniel Hahler
2018-01-11 17:16 ` Eric Cook
2018-01-12 18:44 ` Bart Schaefer

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).