aboutsummaryrefslogtreecommitdiff
path: root/shell
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2009-09-27 02:05:45 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2009-09-27 02:05:45 +0200
commite74aaf93854b9453b9949954aec77710b257d8b6 (patch)
tree0be4c4457b9567427706871bfb62fafa296eca19 /shell
parent6c750f15180ba51ef37c6cfa381b52e6b05d55aa (diff)
downloadbusybox-w32-e74aaf93854b9453b9949954aec77710b257d8b6.tar.gz
busybox-w32-e74aaf93854b9453b9949954aec77710b257d8b6.tar.bz2
busybox-w32-e74aaf93854b9453b9949954aec77710b257d8b6.zip
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>
Diffstat (limited to 'shell')
-rw-r--r--shell/ash.c9
-rw-r--r--shell/ash_test/ash-signals/savetrap.right6
-rw-r--r--shell/ash_test/ash-signals/signal1.right10
-rw-r--r--shell/hush.c7
-rw-r--r--shell/hush_test/hush-trap/savetrap.right6
-rw-r--r--shell/hush_test/hush-trap/usage.right12
6 files changed, 28 insertions, 22 deletions
diff --git a/shell/ash.c b/shell/ash.c
index c909cae2b..d7355ce81 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -12267,13 +12267,16 @@ trapcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
12267 for (signo = 0; signo < NSIG; signo++) { 12267 for (signo = 0; signo < NSIG; signo++) {
12268 char *tr = trap_ptr[signo]; 12268 char *tr = trap_ptr[signo];
12269 if (tr) { 12269 if (tr) {
12270 out1fmt("trap -- %s %s%s\n", 12270 /* note: bash adds "SIG", but only if invoked
12271 * as "bash". If called as "sh", or if set -o posix,
12272 * then it prints short signal names.
12273 * We are printing short names: */
12274 out1fmt("trap -- %s %s\n",
12271 single_quote(tr), 12275 single_quote(tr),
12272 (signo == 0 ? "" : "SIG"),
12273 get_signame(signo)); 12276 get_signame(signo));
12274 /* trap_ptr != trap only if we are in special-cased `trap` code. 12277 /* trap_ptr != trap only if we are in special-cased `trap` code.
12275 * In this case, we will exit very soon, no need to free(). */ 12278 * In this case, we will exit very soon, no need to free(). */
12276 /* if (trap_ptr != trap) */ 12279 /* if (trap_ptr != trap && tp[0]) */
12277 /* free(tr); */ 12280 /* free(tr); */
12278 } 12281 }
12279 } 12282 }
diff --git a/shell/ash_test/ash-signals/savetrap.right b/shell/ash_test/ash-signals/savetrap.right
index 9cfd7a56c..a59225be3 100644
--- a/shell/ash_test/ash-signals/savetrap.right
+++ b/shell/ash_test/ash-signals/savetrap.right
@@ -1,8 +1,8 @@
1trap -- 'echo Exiting' EXIT 1trap -- 'echo Exiting' EXIT
2trap -- 'echo WINCH!' SIGWINCH 2trap -- 'echo WINCH!' WINCH
3trap -- 'echo Exiting' EXIT 3trap -- 'echo Exiting' EXIT
4trap -- 'echo WINCH!' SIGWINCH 4trap -- 'echo WINCH!' WINCH
5trap -- 'echo Exiting' EXIT 5trap -- 'echo Exiting' EXIT
6trap -- 'echo WINCH!' SIGWINCH 6trap -- 'echo WINCH!' WINCH
7Done 7Done
8Exiting 8Exiting
diff --git a/shell/ash_test/ash-signals/signal1.right b/shell/ash_test/ash-signals/signal1.right
index beb0a988e..cf403ac62 100644
--- a/shell/ash_test/ash-signals/signal1.right
+++ b/shell/ash_test/ash-signals/signal1.right
@@ -1,20 +1,20 @@
1got signal 1got signal
2trap -- 'echo got signal' SIGUSR1 2trap -- 'echo got signal' USR1
3sent 1 signal 3sent 1 signal
4got signal 4got signal
5wait interrupted 5wait interrupted
6trap -- 'echo got signal' SIGUSR1 6trap -- 'echo got signal' USR1
7sent 2 signal 7sent 2 signal
8got signal 8got signal
9wait interrupted 9wait interrupted
10trap -- 'echo got signal' SIGUSR1 10trap -- 'echo got signal' USR1
11sent 3 signal 11sent 3 signal
12got signal 12got signal
13wait interrupted 13wait interrupted
14trap -- 'echo got signal' SIGUSR1 14trap -- 'echo got signal' USR1
15sent 4 signal 15sent 4 signal
16got signal 16got signal
17wait interrupted 17wait interrupted
18trap -- 'echo got signal' SIGUSR1 18trap -- 'echo got signal' USR1
19sent 5 signal 19sent 5 signal
20sleep completed 20sleep completed
diff --git a/shell/hush.c b/shell/hush.c
index d75b0da7e..b515eabd2 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -7111,8 +7111,11 @@ static int FAST_FUNC builtin_trap(char **argv)
7111 if (G.traps[i]) { 7111 if (G.traps[i]) {
7112 printf("trap -- "); 7112 printf("trap -- ");
7113 print_escaped(G.traps[i]); 7113 print_escaped(G.traps[i]);
7114 /* bash compat: it says SIGxxx, not just xxx */ 7114 /* note: bash adds "SIG", but only if invoked
7115 printf(" %s%s\n", i == 0 ? "" : "SIG", get_signame(i)); 7115 * as "bash". If called as "sh", or if set -o posix,
7116 * then it prints short signal names.
7117 * We are printing short names: */
7118 printf(" %s\n", get_signame(i));
7116 } 7119 }
7117 } 7120 }
7118 /*fflush(stdout); - done after each builtin anyway */ 7121 /*fflush(stdout); - done after each builtin anyway */
diff --git a/shell/hush_test/hush-trap/savetrap.right b/shell/hush_test/hush-trap/savetrap.right
index 9cfd7a56c..a59225be3 100644
--- a/shell/hush_test/hush-trap/savetrap.right
+++ b/shell/hush_test/hush-trap/savetrap.right
@@ -1,8 +1,8 @@
1trap -- 'echo Exiting' EXIT 1trap -- 'echo Exiting' EXIT
2trap -- 'echo WINCH!' SIGWINCH 2trap -- 'echo WINCH!' WINCH
3trap -- 'echo Exiting' EXIT 3trap -- 'echo Exiting' EXIT
4trap -- 'echo WINCH!' SIGWINCH 4trap -- 'echo WINCH!' WINCH
5trap -- 'echo Exiting' EXIT 5trap -- 'echo Exiting' EXIT
6trap -- 'echo WINCH!' SIGWINCH 6trap -- 'echo WINCH!' WINCH
7Done 7Done
8Exiting 8Exiting
diff --git a/shell/hush_test/hush-trap/usage.right b/shell/hush_test/hush-trap/usage.right
index 5b90222f8..c0dbd6c3c 100644
--- a/shell/hush_test/hush-trap/usage.right
+++ b/shell/hush_test/hush-trap/usage.right
@@ -2,13 +2,13 @@ ___
2___ 2___
3___ 3___
4trap -- 'a' EXIT 4trap -- 'a' EXIT
5trap -- 'a' SIGINT 5trap -- 'a' INT
6trap -- 'a' SIGUSR1 6trap -- 'a' USR1
7trap -- 'a' SIGUSR2 7trap -- 'a' USR2
8___ 8___
9___ 9___
10trap -- 'a' SIGUSR1 10trap -- 'a' USR1
11trap -- 'a' SIGUSR2 11trap -- 'a' USR2
12___ 12___
13___ 13___
14trap -- 'a' SIGUSR2 14trap -- 'a' USR2