diff options
| author | christos <christos@NetBSD.org> | 2010-07-19 17:18:13 +0000 |
|---|---|---|
| committer | christos <christos@NetBSD.org> | 2010-07-19 17:18:13 +0000 |
| commit | c157529bebe74b4ff9ff194483efb3dbdec4c343 (patch) | |
| tree | bb6356b2695ec086e62c9a4507c191436f410096 /lib/libedit | |
| parent | 7d8af8c74173a77f05cc2a0e6a9ebeef56082f57 (diff) | |
retry the read after sigwinch too, from Edward Sheldrake
Diffstat (limited to 'lib/libedit')
| -rw-r--r-- | lib/libedit/read.c | 10 |
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; |
