mirror of
https://salsa.debian.org/srivasta/make-dfsg.git
synced 2025-01-18 11:27:37 +00:00
* function.c (shell_completed): [SV 51014] Add signal to .SHELLSTATUS
* tests/scripts/functions/shell: Verify that .SHELLSTATUS contains a non-0 value when the shell exits due to a signal.
This commit is contained in:
parent
66a9b5c3ba
commit
75b5268faf
2 changed files with 10 additions and 0 deletions
|
@ -1469,6 +1469,9 @@ shell_completed (int exit_code, int exit_sig)
|
|||
else
|
||||
shell_function_completed = 1;
|
||||
|
||||
if (exit_code == 0 && exit_sig > 0)
|
||||
exit_code = 128 + exit_sig;
|
||||
|
||||
sprintf (buf, "%d", exit_code);
|
||||
define_variable_cname (".SHELLSTATUS", buf, o_override, 0);
|
||||
}
|
||||
|
|
|
@ -22,9 +22,16 @@ $(shell exit 0)
|
|||
OK := $(.SHELLSTATUS)
|
||||
$(shell exit 1)
|
||||
BAD := $(.SHELLSTATUS)
|
||||
$(shell kill -2 $$$$)
|
||||
SIG := $(.SHELLSTATUS)
|
||||
all: ; @echo PRE=$(PRE) OK=$(OK) BAD=$(BAD)
|
||||
','','PRE= OK=0 BAD=1');
|
||||
|
||||
run_make_test('.PHONY: all
|
||||
$(shell kill -2 $$$$)
|
||||
SIG := $(.SHELLSTATUS)
|
||||
all: ; @echo SIG=$(SIG)
|
||||
','','SIG=130');
|
||||
|
||||
# Test unescaped comment characters in shells. Savannah bug #20513
|
||||
run_make_test(q!
|
||||
|
|
Loading…
Reference in a new issue