← Commit list

9cb220be9

Denis Vlasenko
Denis Vlasenko
2007-12-09
FAILED Duration: 20s

Subject

lineedit: don't violate API if we do simple fgets ash: cosmetic style fixes, no code changes

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

libbb/lineedit.c+4 -2
@@ -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;
}
shell/ash.c+3 -3
@@ -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;