summaryrefslogtreecommitdiffstats
path: root/lib/libedit/read.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libedit/read.c')
-rw-r--r--lib/libedit/read.c17
1 files changed, 3 insertions, 14 deletions
diff --git a/lib/libedit/read.c b/lib/libedit/read.c
index ed2b609..f0b5ef3 100644
--- a/lib/libedit/read.c
+++ b/lib/libedit/read.c
@@ -49,7 +49,7 @@ __FBSDID("$FreeBSD$");
#include <stdlib.h>
#include "el.h"
-#define OKCMD -1 /* must be -1! */
+#define OKCMD -1
private int read__fixio(int, int);
private int read_preread(EditLine *);
@@ -170,7 +170,7 @@ read__fixio(int fd __unused, int e)
return (e ? 0 : -1);
case EINTR:
- return (-1);
+ return (0);
default:
return (-1);
@@ -440,11 +440,8 @@ el_gets(EditLine *el, int *nread)
if (cp[-1] == '\r' || cp[-1] == '\n')
break;
}
- if (num == -1) {
- if (errno == EINTR)
- cp = el->el_line.buffer;
+ if (num == -1)
el->el_errno = errno;
- }
el->el_line.cursor = el->el_line.lastchar = cp;
*cp = '\0';
@@ -499,8 +496,6 @@ el_gets(EditLine *el, int *nread)
}
if (num == -1) {
- if (errno == EINTR)
- cp = el->el_line.buffer;
el->el_errno = errno;
}
@@ -522,12 +517,6 @@ el_gets(EditLine *el, int *nread)
#endif /* DEBUG_READ */
break;
}
- if (el->el_errno == EINTR) {
- el->el_line.buffer[0] = '\0';
- el->el_line.lastchar =
- el->el_line.cursor = el->el_line.buffer;
- break;
- }
if ((unsigned int)cmdnum >= (unsigned int)el->el_map.nfunc) { /* BUG CHECK command */
#ifdef DEBUG_EDIT
(void) fprintf(el->el_errfile,
OpenPOWER on IntegriCloud