From ea04c1dbb04f66a42f92e698850f831d1e65676b Mon Sep 17 00:00:00 2001 From: Paul Ackersviller Date: Tue, 1 May 2007 03:26:45 +0000 Subject: Merge of 21296: Add ERR alias for ZERR where possible. --- Src/builtin.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'Src') diff --git a/Src/builtin.c b/Src/builtin.c index 1d9f458e6..20a6d5045 100644 --- a/Src/builtin.c +++ b/Src/builtin.c @@ -4983,13 +4983,14 @@ bin_trap(char *name, char **argv, UNUSED(Options ops), UNUSED(int func)) shfunctab->printnode(hn, 0); DPUTS(!hn, "BUG: I did not find any trap functions!"); } else if (sigtrapped[sig]) { - if (!sigfuncs[sig]) - printf("trap -- '' %s\n", sigs[sig]); + char *name = getsigname(sig); + if (!siglists[sig]) + printf("trap -- '' %s\n", name); else { s = getpermtext(sigfuncs[sig], NULL); printf("trap -- "); quotedzputs(s, stdout); - printf(" %s\n", sigs[sig]); + printf(" %s\n", name); zsfree(s); } } @@ -5022,14 +5023,25 @@ bin_trap(char *name, char **argv, UNUSED(Options ops), UNUSED(int func)) /* set traps */ for (; *argv; argv++) { Eprog t; + int flags; sig = getsignum(*argv); if (sig == -1) { zwarnnam(name, "undefined signal: %s", *argv, 0); break; } + if (!strcmp(sigs[sig], *argv)) + flags = 0; + else { + /* + * Record that the signal is used under an assumed name. + * If we ever have more than one alias per signal this + * will need improving. + */ + flags = ZSIG_ALIAS; + } t = dupeprog(prog, 0); - if (settrap(sig, t)) + if (settrap(sig, t, flags)) freeeprog(t); } return *argv != NULL; -- cgit 1.4.1