aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Denis Vlasenko <vda.linux@googlemail.com>2007-12-09 10:03:28 +0000
committerGravatar Denis Vlasenko <vda.linux@googlemail.com>2007-12-09 10:03:28 +0000
commit9cb220be9dea5417c1ad0091bb7eeb1371891f89 (patch)
tree33e6f2cb5996d5cbf73b1d8fbdbfe955c847cbad
parenta96425fe827c603b9c576c95f12b885af68eb219 (diff)
downloadbusybox-9cb220be9dea5417c1ad0091bb7eeb1371891f89.tar.gz
busybox-9cb220be9dea5417c1ad0091bb7eeb1371891f89.tar.bz2
lineedit: don't violate API if we do simple fgets
ash: cosmetic style fixes, no code changes
-rw-r--r--libbb/lineedit.c6
-rw-r--r--shell/ash.c6
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;