aboutsummaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorpx4dev <px4@purgatory.org>2013-02-24 10:54:22 -0800
committerpx4dev <px4@purgatory.org>2013-02-24 10:54:22 -0800
commit641bfd88b6f7a9d9ebced795f0566248e6f48602 (patch)
treea04a910080079795fc90c43ae8400e3ddceb2bc0 /apps
parent2e321f273ca66642f5cae415c069ca4cc3c073ba (diff)
downloadpx4-firmware-641bfd88b6f7a9d9ebced795f0566248e6f48602.tar.gz
px4-firmware-641bfd88b6f7a9d9ebced795f0566248e6f48602.tar.bz2
px4-firmware-641bfd88b6f7a9d9ebced795f0566248e6f48602.zip
Hotfix: discard NUL characters in readline, rather than faking EOF on the console.
Diffstat (limited to 'apps')
-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;
+ }
}
/****************************************************************************