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:
parent
45c4101a52
commit
ea04c1dbb0
1 changed files with 16 additions and 4 deletions
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue