summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Stephenson <pws@zsh.org>2016-06-02 10:59:51 +0100
committerPeter Stephenson <pws@zsh.org>2016-06-02 11:01:39 +0100
commit8cf68f05ab1b13f147521ad64df34dae256e09fb (patch)
tree2cff97abdfed6f01df2777b71768ef45006e031f
parent770500d69db0cf9dcee6ed62455aa79a38ed182e (diff)
downloadzsh-8cf68f05ab1b13f147521ad64df34dae256e09fb.tar.gz
zsh-8cf68f05ab1b13f147521ad64df34dae256e09fb.zip
21603: Make read_poll more interruptible.
If we interrupted the first read we still did the fallback read. This is wrong.
-rw-r--r--ChangeLog5
-rw-r--r--Src/utils.c2
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 98dd0c617..9f1220d49 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2016-06-02 Peter Stephenson <p.stephenson@samsung.com>
+
+ * users/21603: Src/utils.c: Don't do second attempt at read/poll
+ from terminal if interrupted.
+
2016-05-22 Peter Stephenson <p.w.stephenson@ntlworld.com>
* 38515: Matthew Martin: Completion/Zsh/Context/_subscript:
diff --git a/Src/utils.c b/Src/utils.c
index 12911d3f4..95be1fb98 100644
--- a/Src/utils.c
+++ b/Src/utils.c
@@ -2534,7 +2534,7 @@ read_poll(int fd, int *readchar, int polltty, zlong microseconds)
#endif
#endif
- if (fd >= 0 && ret < 0) {
+ if (fd >= 0 && ret < 0 && !errflag) {
/*
* Final attempt: set non-blocking read and try to read a character.
* Praise Bill, this works under Cygwin (nothing else seems to).