summaryrefslogtreecommitdiff
path: root/lib/libedit
diff options
context:
space:
mode:
authorchristos <christos@NetBSD.org>2010-07-19 17:18:13 +0000
committerchristos <christos@NetBSD.org>2010-07-19 17:18:13 +0000
commitc157529bebe74b4ff9ff194483efb3dbdec4c343 (patch)
treebb6356b2695ec086e62c9a4507c191436f410096 /lib/libedit
parent7d8af8c74173a77f05cc2a0e6a9ebeef56082f57 (diff)
retry the read after sigwinch too, from Edward Sheldrake
Diffstat (limited to 'lib/libedit')
-rw-r--r--lib/libedit/read.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/lib/libedit/read.c b/lib/libedit/read.c
index 1a59fcdad70..393262ad841 100644
--- a/lib/libedit/read.c
+++ b/lib/libedit/read.c
@@ -1,4 +1,4 @@
-/* $NetBSD: read.c,v 1.55 2010/03/22 22:59:06 christos Exp $ */
+/* $NetBSD: read.c,v 1.56 2010/07/19 17:18:13 christos Exp $ */
/*-
* Copyright (c) 1992, 1993
@@ -37,7 +37,7 @@
#if 0
static char sccsid[] = "@(#)read.c 8.1 (Berkeley) 6/4/93";
#else
-__RCSID("$NetBSD: read.c,v 1.55 2010/03/22 22:59:06 christos Exp $");
+__RCSID("$NetBSD: read.c,v 1.56 2010/07/19 17:18:13 christos Exp $");
#endif
#endif /* not lint && not SCCSID */
@@ -321,10 +321,14 @@ read_char(EditLine *el, Char *cp)
again:
el->el_signal->sig_no = 0;
while ((num_read = read(el->el_infd, cbuf + cbp, 1)) == -1) {
- if (el->el_signal->sig_no == SIGCONT) {
+ switch (el->el_signal->sig_no) {
+ case SIGCONT:
+ case SIGWINCH:
sig_set(el);
el_set(el, EL_REFRESH);
goto again;
+ default:
+ break;
}
if (!tried && read__fixio(el->el_infd, errno) == 0)
tried = 1;