From 16e45d7e29a35c57fc31484e72f1294144e4899c Mon Sep 17 00:00:00 2001 From: Glenn L McGrath Date: Wed, 4 Feb 2004 08:24:39 +0000 Subject: Vodz last_patch_125_2, this patch have: - synced with dash 0.4.21 - better handle trap "cmds..." SIGINT (strange, i make bad hack for ash and cmdedit, but this work only with this...) - may be haven`t problem with Ctrl-D --- shell/cmdedit.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'shell/cmdedit.c') diff --git a/shell/cmdedit.c b/shell/cmdedit.c index f54d5d587..c0fa1b255 100644 --- a/shell/cmdedit.c +++ b/shell/cmdedit.c @@ -1283,10 +1283,15 @@ int cmdedit_read_input(char *prompt, char command[BUFSIZ]) case 3: /* Control-c -- stop gathering input */ goto_new_line(); +#ifndef CONFIG_ASH command[0] = 0; len = 0; lastWasTab = FALSE; put_prompt(); +#else + len = 0; + break_out = -1; /* for control traps */ +#endif break; case 4: /* Control-d -- Delete one character, or exit @@ -1299,7 +1304,7 @@ prepare_to_die: /* cmdedit_reset_term() called in atexit */ exit(EXIT_SUCCESS); #else - break_out = -1; /* for control stoped jobs */ + len = break_out = -1; /* for control stoped jobs */ break; #endif } else { @@ -1493,7 +1498,7 @@ rewrite_line: /* cleanup may be saved current command line */ free(history[MAX_HISTORY]); history[MAX_HISTORY] = 0; - if (len) { /* no put empty line */ + if (len> 0) { /* no put empty line */ int i = n_history; /* After max history, remove the oldest command */ if (i >= MAX_HISTORY) { @@ -1510,7 +1515,7 @@ rewrite_line: } #else /* MAX_HISTORY < 1 */ #if defined(CONFIG_FEATURE_SH_FANCY_PROMPT) - if (len) { /* no put empty line */ + if (len > 0) { /* no put empty line */ num_ok_lines++; } #endif -- cgit v1.2.3