diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2007-12-09 13:03:28 +0300 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2007-12-09 13:03:28 +0300 |
commit | 9cb220be9dea5417c1ad0091bb7eeb1371891f89 (patch) | |
tree | 33e6f2cb5996d5cbf73b1d8fbdbfe955c847cbad | |
parent | a96425fe827c603b9c576c95f12b885af68eb219 (diff) |
lineedit: don't violate API if we do simple fgets
ash: cosmetic style fixes, no code changes
-rw-r--r-- | libbb/lineedit.c | 6 | ||||
-rw-r--r-- | shell/ash.c | 6 |
2 files changed, 7 insertions, 5 deletions
diff --git a/libbb/lineedit.c b/libbb/lineedit.c index 1397409cc..a0f190fd4 100644 --- a/libbb/lineedit.c +++ b/libbb/lineedit.c @@ -1343,8 +1343,10 @@ int read_line_input(const char *prompt, char *command, int maxsize, line_input_t int len; parse_and_put_prompt(prompt); fflush(stdout); - fgets(command, maxsize, stdin); - len = strlen(command); + if (fgets(command, maxsize, stdin) == NULL) + len = -1; /* EOF or error */ + else + len = strlen(command); DEINIT_S(); return len; } diff --git a/shell/ash.c b/shell/ash.c index 9b9fe5b6d..4c8a28911 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -8553,7 +8553,7 @@ preadfd(void) goto retry; } if (nr < 0 && errno == 0) { - /* Ctrl+D presend */ + /* Ctrl+D pressed */ nr = 0; } } @@ -8564,8 +8564,8 @@ preadfd(void) if (nr < 0) { if (parsefile->fd == 0 && errno == EWOULDBLOCK) { int flags = fcntl(0, F_GETFL); - if (flags >= 0 && flags & O_NONBLOCK) { - flags &=~ O_NONBLOCK; + if (flags >= 0 && (flags & O_NONBLOCK)) { + flags &= ~O_NONBLOCK; if (fcntl(0, F_SETFL, flags) >= 0) { out2str("sh: turning off NDELAY mode\n"); goto retry; |