ash,hush: make trap output short signal names, without SIG prefix
function old new delta evalvar 1373 1371 -2 builtin_trap 457 441 -16 trapcmd 260 236 -24 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
parent
6c750f1518
commit
e74aaf9385
@ -12267,13 +12267,16 @@ trapcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
|
|||||||
for (signo = 0; signo < NSIG; signo++) {
|
for (signo = 0; signo < NSIG; signo++) {
|
||||||
char *tr = trap_ptr[signo];
|
char *tr = trap_ptr[signo];
|
||||||
if (tr) {
|
if (tr) {
|
||||||
out1fmt("trap -- %s %s%s\n",
|
/* note: bash adds "SIG", but only if invoked
|
||||||
|
* as "bash". If called as "sh", or if set -o posix,
|
||||||
|
* then it prints short signal names.
|
||||||
|
* We are printing short names: */
|
||||||
|
out1fmt("trap -- %s %s\n",
|
||||||
single_quote(tr),
|
single_quote(tr),
|
||||||
(signo == 0 ? "" : "SIG"),
|
|
||||||
get_signame(signo));
|
get_signame(signo));
|
||||||
/* trap_ptr != trap only if we are in special-cased `trap` code.
|
/* trap_ptr != trap only if we are in special-cased `trap` code.
|
||||||
* In this case, we will exit very soon, no need to free(). */
|
* In this case, we will exit very soon, no need to free(). */
|
||||||
/* if (trap_ptr != trap) */
|
/* if (trap_ptr != trap && tp[0]) */
|
||||||
/* free(tr); */
|
/* free(tr); */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
trap -- 'echo Exiting' EXIT
|
trap -- 'echo Exiting' EXIT
|
||||||
trap -- 'echo WINCH!' SIGWINCH
|
trap -- 'echo WINCH!' WINCH
|
||||||
trap -- 'echo Exiting' EXIT
|
trap -- 'echo Exiting' EXIT
|
||||||
trap -- 'echo WINCH!' SIGWINCH
|
trap -- 'echo WINCH!' WINCH
|
||||||
trap -- 'echo Exiting' EXIT
|
trap -- 'echo Exiting' EXIT
|
||||||
trap -- 'echo WINCH!' SIGWINCH
|
trap -- 'echo WINCH!' WINCH
|
||||||
Done
|
Done
|
||||||
Exiting
|
Exiting
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
got signal
|
got signal
|
||||||
trap -- 'echo got signal' SIGUSR1
|
trap -- 'echo got signal' USR1
|
||||||
sent 1 signal
|
sent 1 signal
|
||||||
got signal
|
got signal
|
||||||
wait interrupted
|
wait interrupted
|
||||||
trap -- 'echo got signal' SIGUSR1
|
trap -- 'echo got signal' USR1
|
||||||
sent 2 signal
|
sent 2 signal
|
||||||
got signal
|
got signal
|
||||||
wait interrupted
|
wait interrupted
|
||||||
trap -- 'echo got signal' SIGUSR1
|
trap -- 'echo got signal' USR1
|
||||||
sent 3 signal
|
sent 3 signal
|
||||||
got signal
|
got signal
|
||||||
wait interrupted
|
wait interrupted
|
||||||
trap -- 'echo got signal' SIGUSR1
|
trap -- 'echo got signal' USR1
|
||||||
sent 4 signal
|
sent 4 signal
|
||||||
got signal
|
got signal
|
||||||
wait interrupted
|
wait interrupted
|
||||||
trap -- 'echo got signal' SIGUSR1
|
trap -- 'echo got signal' USR1
|
||||||
sent 5 signal
|
sent 5 signal
|
||||||
sleep completed
|
sleep completed
|
||||||
|
@ -7111,8 +7111,11 @@ static int FAST_FUNC builtin_trap(char **argv)
|
|||||||
if (G.traps[i]) {
|
if (G.traps[i]) {
|
||||||
printf("trap -- ");
|
printf("trap -- ");
|
||||||
print_escaped(G.traps[i]);
|
print_escaped(G.traps[i]);
|
||||||
/* bash compat: it says SIGxxx, not just xxx */
|
/* note: bash adds "SIG", but only if invoked
|
||||||
printf(" %s%s\n", i == 0 ? "" : "SIG", get_signame(i));
|
* as "bash". If called as "sh", or if set -o posix,
|
||||||
|
* then it prints short signal names.
|
||||||
|
* We are printing short names: */
|
||||||
|
printf(" %s\n", get_signame(i));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*fflush(stdout); - done after each builtin anyway */
|
/*fflush(stdout); - done after each builtin anyway */
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
trap -- 'echo Exiting' EXIT
|
trap -- 'echo Exiting' EXIT
|
||||||
trap -- 'echo WINCH!' SIGWINCH
|
trap -- 'echo WINCH!' WINCH
|
||||||
trap -- 'echo Exiting' EXIT
|
trap -- 'echo Exiting' EXIT
|
||||||
trap -- 'echo WINCH!' SIGWINCH
|
trap -- 'echo WINCH!' WINCH
|
||||||
trap -- 'echo Exiting' EXIT
|
trap -- 'echo Exiting' EXIT
|
||||||
trap -- 'echo WINCH!' SIGWINCH
|
trap -- 'echo WINCH!' WINCH
|
||||||
Done
|
Done
|
||||||
Exiting
|
Exiting
|
||||||
|
@ -2,13 +2,13 @@ ___
|
|||||||
___
|
___
|
||||||
___
|
___
|
||||||
trap -- 'a' EXIT
|
trap -- 'a' EXIT
|
||||||
trap -- 'a' SIGINT
|
trap -- 'a' INT
|
||||||
trap -- 'a' SIGUSR1
|
trap -- 'a' USR1
|
||||||
trap -- 'a' SIGUSR2
|
trap -- 'a' USR2
|
||||||
___
|
___
|
||||||
___
|
___
|
||||||
trap -- 'a' SIGUSR1
|
trap -- 'a' USR1
|
||||||
trap -- 'a' SIGUSR2
|
trap -- 'a' USR2
|
||||||
___
|
___
|
||||||
___
|
___
|
||||||
trap -- 'a' SIGUSR2
|
trap -- 'a' USR2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user