From 9cb220be9dea5417c1ad0091bb7eeb1371891f89 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Sun, 9 Dec 2007 10:03:28 +0000 Subject: [PATCH] lineedit: don't violate API if we do simple fgets ash: cosmetic style fixes, no code changes --- libbb/lineedit.c | 6 ++++-- 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;