summaryrefslogtreecommitdiff
path: root/libbb/lineedit.c
diff options
context:
space:
mode:
Diffstat (limited to 'libbb/lineedit.c')
-rw-r--r--libbb/lineedit.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/libbb/lineedit.c b/libbb/lineedit.c
index f65e852b1..4253054c5 100644
--- a/libbb/lineedit.c
+++ b/libbb/lineedit.c
@@ -1211,7 +1211,7 @@ static void parse_prompt(const char *prmt_ptr)
1211#endif 1211#endif
1212 1212
1213#define setTermSettings(fd, argp) tcsetattr(fd, TCSANOW, argp) 1213#define setTermSettings(fd, argp) tcsetattr(fd, TCSANOW, argp)
1214#define getTermSettings(fd, argp) tcgetattr(fd, argp); 1214#define getTermSettings(fd, argp) tcgetattr(fd, argp)
1215 1215
1216static sighandler_t previous_SIGWINCH_handler; 1216static sighandler_t previous_SIGWINCH_handler;
1217 1217
@@ -1270,9 +1270,10 @@ int read_line_input(const char *prompt, char *command, int maxsize, line_input_t
1270 smalluint prevc; 1270 smalluint prevc;
1271#endif 1271#endif
1272 1272
1273 getTermSettings(0, (void *) &initial_settings); 1273 if (getTermSettings(0, (void *) &initial_settings) < 0
1274 /* Happens when e.g. stty -echo was run before */ 1274 /* Happens when e.g. stty -echo was run before */
1275 if (!(initial_settings.c_lflag & ECHO)) { 1275 || !(initial_settings.c_lflag & ECHO)
1276 ) {
1276 parse_prompt(prompt); 1277 parse_prompt(prompt);
1277 fflush(stdout); 1278 fflush(stdout);
1278 fgets(command, maxsize, stdin); 1279 fgets(command, maxsize, stdin);