summaryrefslogtreecommitdiff
path: root/Src/hashtable.c
diff options
context:
space:
mode:
authorAxel Beckert <abe@deuxchevaux.org>2012-12-17 19:50:31 +0100
committerAxel Beckert <abe@deuxchevaux.org>2012-12-17 19:51:41 +0100
commit049f4be0b89188e1bc3e19e75c0675dd2356d3ef (patch)
tree7b6cc1a6611683b28888f8f7172ce8ceba773c30 /Src/hashtable.c
parent015e05572733aafd2a005edd507d16e2310653a0 (diff)
parent7152094541a54c92ff937413f850e09412585b7b (diff)
downloadzsh-049f4be0b89188e1bc3e19e75c0675dd2356d3ef.tar.gz
zsh-049f4be0b89188e1bc3e19e75c0675dd2356d3ef.zip
New upstream test release
Diffstat (limited to 'Src/hashtable.c')
-rw-r--r--Src/hashtable.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/Src/hashtable.c b/Src/hashtable.c
index be71a1cc9..ef187927b 100644
--- a/Src/hashtable.c
+++ b/Src/hashtable.c
@@ -888,6 +888,15 @@ freeshfuncnode(HashNode hn)
if (shf->funcdef)
freeeprog(shf->funcdef);
zsfree(shf->filename);
+ if (shf->sticky) {
+ if (shf->sticky->n_on_opts)
+ zfree(shf->sticky->on_opts,
+ shf->sticky->n_on_opts * sizeof(*shf->sticky->on_opts));
+ if (shf->sticky->n_off_opts)
+ zfree(shf->sticky->off_opts,
+ shf->sticky->n_off_opts * sizeof(*shf->sticky->off_opts));
+ zfree(shf->sticky, sizeof(*shf->sticky));
+ }
zfree(shf, sizeof(struct shfunc));
}
@@ -923,12 +932,13 @@ printshfuncnode(HashNode hn, int printflags)
printf("%c undefined\n\t", hashchar);
else
t = getpermtext(f->funcdef, NULL, 1);
- if (f->node.flags & PM_TAGGED)
+ if (f->node.flags & (PM_TAGGED|PM_TAGGED_LOCAL))
printf("%c traced\n\t", hashchar);
if (!t) {
- char *fopt = "Utkz";
+ char *fopt = "UtTkz";
int flgs[] = {
- PM_UNALIASED, PM_TAGGED, PM_KSHSTORED, PM_ZSHSTORED, 0
+ PM_UNALIASED, PM_TAGGED, PM_TAGGED_LOCAL,
+ PM_KSHSTORED, PM_ZSHSTORED, 0
};
int fl;;