hush: make SIGINT handling visually less confusing
$ echo $$ 18448 $ echo $? <wait here, run "kill -INT 18448" in other shell><press enter> <=== NOTHING?? $ That empty line does not look right. After this patch: $ echo $$ 18448 $ echo $? <wait here, run "kill -INT 18448" in other shell><press enter> ^C $ function old new delta fgetc_interactive 245 246 +1 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
7c40ddd950
commit
dd4b446f76
@ -2415,14 +2415,14 @@ static int get_user_input(struct in_str *i)
|
||||
/*timeout*/ -1
|
||||
);
|
||||
/* read_line_input intercepts ^C, "convert" it to SIGINT */
|
||||
if (r == 0) {
|
||||
write(STDOUT_FILENO, "^C", 2);
|
||||
if (r == 0)
|
||||
raise(SIGINT);
|
||||
}
|
||||
check_and_run_traps();
|
||||
if (r != 0 && !G.flag_SIGINT)
|
||||
break;
|
||||
/* ^C or SIGINT: repeat */
|
||||
/* bash prints ^C even on real SIGINT (non-kbd generated) */
|
||||
write(STDOUT_FILENO, "^C", 2);
|
||||
G.last_exitcode = 128 + SIGINT;
|
||||
}
|
||||
if (r < 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user