1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-23 16:40:24 +02:00

28253: document -h argument to atribute commands

This commit is contained in:
Peter Stephenson 2010-09-12 18:56:40 +00:00
parent 154b7351f4
commit ade705cf5b
7 changed files with 50 additions and 9 deletions

View file

@ -204,6 +204,7 @@ static struct optname optns[] = {
{{NULL, "posixcd", OPT_EMULATE|OPT_BOURNE}, POSIXCD},
{{NULL, "posixidentifiers", OPT_EMULATE|OPT_BOURNE}, POSIXIDENTIFIERS},
{{NULL, "posixjobs", OPT_EMULATE|OPT_BOURNE}, POSIXJOBS},
{{NULL, "posixtraps", OPT_EMULATE|OPT_BOURNE}, POSIXTRAPS},
{{NULL, "printeightbit", 0}, PRINTEIGHTBIT},
{{NULL, "printexitvalue", 0}, PRINTEXITVALUE},
{{NULL, "privileged", OPT_SPECIAL}, PRIVILEGED},

View file

@ -864,7 +864,8 @@ removetrap(int sig)
* one, to aid in removing this one. However, if there's
* already one at the current locallevel we just overwrite it.
*/
if (!dontsavetrap && (isset(LOCALTRAPS) || sig == SIGEXIT) &&
if (!dontsavetrap &&
(sig == SIGEXIT ? !isset(POSIXTRAPS) : isset(LOCALTRAPS)) &&
locallevel &&
(!trapped || locallevel > (sigtrapped[sig] >> ZSIG_SHIFT)))
dosavetrap(sig, locallevel);
@ -932,7 +933,7 @@ starttrapscope(void)
* so give it the next higher one. dosavetrap() is called
* automatically where necessary.
*/
if (sigtrapped[SIGEXIT]) {
if (sigtrapped[SIGEXIT] && !isset(POSIXTRAPS)) {
locallevel++;
unsettrap(SIGEXIT);
locallevel--;
@ -960,7 +961,7 @@ endtrapscope(void)
*/
if (intrap)
exittr = 0;
else if ((exittr = sigtrapped[SIGEXIT])) {
else if (!isset(POSIXTRAPS) && (exittr = sigtrapped[SIGEXIT])) {
if (exittr & ZSIG_FUNC) {
exitfn = removehashnode(shfunctab, "TRAPEXIT");
} else {
@ -1005,7 +1006,8 @@ endtrapscope(void)
}
if (exittr) {
dotrapargs(SIGEXIT, &exittr, exitfn);
if (!isset(POSIXTRAPS))
dotrapargs(SIGEXIT, &exittr, exitfn);
if (exittr & ZSIG_FUNC)
shfunctab->freenode((HashNode)exitfn);
else

View file

@ -1987,6 +1987,7 @@ enum {
POSIXCD,
POSIXIDENTIFIERS,
POSIXJOBS,
POSIXTRAPS,
PRINTEIGHTBIT,
PRINTEXITVALUE,
PRIVILEGED,