diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | Src/Modules/parameter.c | 27 |
2 files changed, 23 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog index 23bcc6986..ec36285dc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2000-10-30 Sven Wischnowsky <wischnow@zsh.org> + + * 13095: Src/Modules/parameter.c: make assignament to $nameddirs + behave like hash -d + 2000-10-25 Sven Wischnowsky <wischnow@zsh.org> * users/3472: Completion/User/_rcs: use return value of _files, diff --git a/Src/Modules/parameter.c b/Src/Modules/parameter.c index 924799c0c..df4d1020e 100644 --- a/Src/Modules/parameter.c +++ b/Src/Modules/parameter.c @@ -1399,11 +1399,15 @@ scanpmjobdirs(HashTable ht, ScanFunc func, int flags) static void setpmnameddir(Param pm, char *value) { - if (!value || *value != '/') - zwarn("invalid value: %s", value, 0); - else - adduserdir(pm->nam, value, 0, 1); - zsfree(value); + if (!value) + zwarn("invalid value: ''", NULL, 0); + else { + Nameddir nd = (Nameddir) zcalloc(sizeof(*nd)); + + nd->flags = 0; + nd->dir = value; + nameddirtab->addnode(nameddirtab, ztrdup(pm->nam), nd); + } } /**/ @@ -1444,10 +1448,15 @@ setpmnameddirs(Param pm, HashTable ht) v.arr = NULL; v.pm = (Param) hn; - if (!(val = getstrvalue(&v)) || *val != '/') - zwarn("invalid value: %s", val, 0); - else - adduserdir(hn->nam, val, 0, 1); + if (!(val = getstrvalue(&v))) + zwarn("invalid value: ''", NULL, 0); + else { + Nameddir nd = (Nameddir) zcalloc(sizeof(*nd)); + + nd->flags = 0; + nd->dir = ztrdup(val); + nameddirtab->addnode(nameddirtab, ztrdup(hn->nam), nd); + } } /* The INTERACTIVE stuff ensures that the dirs are not immediatly removed |