From 5e11082349bf72897f93f3a4493a97a2caf15984 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Wed, 27 Mar 2019 18:57:40 +0000 Subject: 44168 (tweaked to remove change to errflag): Fix interrupt handling of zle -F. If interrupted by irrelevant interrupt (EINTR only is set), don't set the local error flag, just retry. --- Src/Zle/zle_main.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'Src') diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c index d54e928a6..d3b9aeab8 100644 --- a/Src/Zle/zle_main.c +++ b/Src/Zle/zle_main.c @@ -632,7 +632,11 @@ raw_getbyte(long do_keytmout, char *cptr, int full) * with all fds, then try unsetting the special ones. */ if (selret < 0 && !errtry) { - errtry = 1; + /* Continue after irrelevant interrupt */ + if (errno != EINTR) { + /* Don't trust special FDs */ + errtry = 1; + } continue; } if (selret == 0) { -- cgit 1.4.1