diff options
author | px4dev <px4@purgatory.org> | 2013-02-24 10:54:22 -0800 |
---|---|---|
committer | px4dev <px4@purgatory.org> | 2013-02-24 10:54:22 -0800 |
commit | 641bfd88b6f7a9d9ebced795f0566248e6f48602 (patch) | |
tree | a04a910080079795fc90c43ae8400e3ddceb2bc0 /apps | |
parent | 2e321f273ca66642f5cae415c069ca4cc3c073ba (diff) | |
download | px4-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.c | 18 |
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; + } } /**************************************************************************** |