aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/system/readline/readline.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/apps/system/readline/readline.c b/apps/system/readline/readline.c
index bac7eee8c..a8240a62a 100644
--- a/apps/system/readline/readline.c
+++ b/apps/system/readline/readline.c
@@ -126,7 +126,7 @@ static inline int readline_rawgetc(int infd)
* error occurs).
*/
- do
+ for (;;)
{
/* Read one character from the incoming stream */
@@ -154,13 +154,21 @@ static inline int readline_rawgetc(int infd)
{
return -errcode;
}
+
+ continue;
}
- }
- while (nread < 1);
- /* On success, return the character that was read */
+ else if (buffer == '\0')
+ {
+ /* Ignore NUL characters, since they look like EOF to our caller */
- return (int)buffer;
+ continue;
+ }
+
+ /* Success, return the character that was read */
+
+ return (int)buffer;
+ }
}
/****************************************************************************