summaryrefslogtreecommitdiff
path: root/Src/Zle/zle_main.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Zle/zle_main.c')
-rw-r--r--Src/Zle/zle_main.c6
1 files changed, 5 insertions, 1 deletions
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) {