1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-10-12 11:01:15 +02:00

45131: Make a function that redefines itself preserve its tracedness.

This makes it easy to apply local tracing ('functions -T') to autoloadable
functions that redefines themselves when first loaded.
This commit is contained in:
Daniel Shahaf 2019-12-22 04:52:38 +00:00
parent 3834c423ab
commit ca6f4466e6
3 changed files with 20 additions and 0 deletions

View file

@ -1,3 +1,8 @@
2019-12-26 Daniel Shahaf <danielsh@apache.org>
* 45131: Src/exec.c, Test/E02xtrace.ztst: Make a function that
redefines itself preserve its tracedness.
2019-12-23 Daniel Shahaf <danielsh@apache.org> 2019-12-23 Daniel Shahaf <danielsh@apache.org>
* unposted: Completion/Unix/Command/_stdbuf: Fix mismatch * unposted: Completion/Unix/Command/_stdbuf: Fix mismatch

View file

@ -5320,6 +5320,12 @@ execfuncdef(Estate state, Eprog redir_prog)
*/ */
removetrapnode(signum); removetrapnode(signum);
} }
/* Is this function traced and redefining itself? */
if (funcstack && funcstack->tp == FS_FUNC &&
!strcmp(s, funcstack->name)) {
Shfunc old = ((Shfunc)shfunctab->getnode(shfunctab, s));
shf->node.flags |= old->node.flags & (PM_TAGGED|PM_TAGGED_LOCAL);
}
shfunctab->addnode(shfunctab, ztrdup(s), shf); shfunctab->addnode(shfunctab, ztrdup(s), shf);
} }
} }

View file

Internal server error - The gay git

500

Internal server error

Forgejo version: 9.0.3

@ -146,3 +146,12 @@