1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-23 04:51:12 +02:00

Merge of 21296: Add ERR alias for ZERR where possible.

This commit is contained in:
Paul Ackersviller 2007-05-01 03:26:45 +00:00
parent 45c4101a52
commit ea04c1dbb0

View file

@ -4983,13 +4983,14 @@ bin_trap(char *name, char **argv, UNUSED(Options ops), UNUSED(int func))
shfunctab->printnode(hn, 0); shfunctab->printnode(hn, 0);
DPUTS(!hn, "BUG: I did not find any trap functions!"); DPUTS(!hn, "BUG: I did not find any trap functions!");
} else if (sigtrapped[sig]) { } else if (sigtrapped[sig]) {
if (!sigfuncs[sig]) char *name = getsigname(sig);
printf("trap -- '' %s\n", sigs[sig]); if (!siglists[sig])
printf("trap -- '' %s\n", name);
else { else {
s = getpermtext(sigfuncs[sig], NULL); s = getpermtext(sigfuncs[sig], NULL);
printf("trap -- "); printf("trap -- ");
quotedzputs(s, stdout); quotedzputs(s, stdout);
printf(" %s\n", sigs[sig]); printf(" %s\n", name);
zsfree(s); zsfree(s);
} }
} }
@ -5022,14 +5023,25 @@ bin_trap(char *name, char **argv, UNUSED(Options ops), UNUSED(int func))
/* set traps */ /* set traps */
for (; *argv; argv++) { for (; *argv; argv++) {
Eprog t; Eprog t;
int flags;
sig = getsignum(*argv); sig = getsignum(*argv);
if (sig == -1) { if (sig == -1) {
zwarnnam(name, "undefined signal: %s", *argv, 0); zwarnnam(name, "undefined signal: %s", *argv, 0);
break; 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); t = dupeprog(prog, 0);
if (settrap(sig, t)) if (settrap(sig, t, flags))
freeeprog(t); freeeprog(t);
} }
return *argv != NULL; return *argv != NULL;