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
|
/*timeout*/ -1
|
||||||
);
|
);
|
||||||
/* read_line_input intercepts ^C, "convert" it to SIGINT */
|
/* read_line_input intercepts ^C, "convert" it to SIGINT */
|
||||||
if (r == 0) {
|
if (r == 0)
|
||||||
write(STDOUT_FILENO, "^C", 2);
|
|
||||||
raise(SIGINT);
|
raise(SIGINT);
|
||||||
}
|
|
||||||
check_and_run_traps();
|
check_and_run_traps();
|
||||||
if (r != 0 && !G.flag_SIGINT)
|
if (r != 0 && !G.flag_SIGINT)
|
||||||
break;
|
break;
|
||||||
/* ^C or SIGINT: repeat */
|
/* ^C or SIGINT: repeat */
|
||||||
|
/* bash prints ^C even on real SIGINT (non-kbd generated) */
|
||||||
|
write(STDOUT_FILENO, "^C", 2);
|
||||||
G.last_exitcode = 128 + SIGINT;
|
G.last_exitcode = 128 + SIGINT;
|
||||||
}
|
}
|
||||||
if (r < 0) {
|
if (r < 0) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user