diff --git a/linenoise.c b/linenoise.c index ac27f06..b40bbbe 100644 --- a/linenoise.c +++ b/linenoise.c @@ -935,7 +935,8 @@ char *linenoiseEditFeed(struct linenoiseState *l) { char seq[3]; nread = read(l->ifd,&c,1); - if (nread <= 0) return NULL; + if (nread < 0) return ((EAGAIN == errno) || (EWOULDBLOCK == errno)) ? linenoiseEditMore : NULL; + if (0 == nread) return NULL; /* Only autocomplete when the callback is set. It returns < 0 when * there was an error reading from fd. Otherwise it will return the