summaryrefslogtreecommitdiff
path: root/Src/params.c
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2011-08-11 19:32:50 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2011-08-11 19:32:50 +0000
commit548c4562fe5889ae8149c082c36ac9461babf0ec (patch)
treedbec17faae33c4944da8b8360583483a6707df71 /Src/params.c
parent773737e09f9235f83e1ca936fca9b2093388f80a (diff)
downloadzsh-548c4562fe5889ae8149c082c36ac9461babf0ec.tar.gz
zsh-548c4562fe5889ae8149c082c36ac9461babf0ec.zip
fix tests using zsh/datetime that I broke
Diffstat (limited to 'Src/params.c')
-rw-r--r--Src/params.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/Src/params.c b/Src/params.c
index fd0872130..446cccc7e 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -3046,9 +3046,21 @@ mod_export void
stdunsetfn(Param pm, UNUSED(int exp))
{
switch (PM_TYPE(pm->node.flags)) {
- case PM_SCALAR: pm->gsu.s->setfn(pm, NULL); break;
- case PM_ARRAY: pm->gsu.a->setfn(pm, NULL); break;
- case PM_HASHED: pm->gsu.h->setfn(pm, NULL); break;
+ case PM_SCALAR:
+ if (pm->gsu.s->setfn)
+ pm->gsu.s->setfn(pm, NULL);
+ break;
+
+ case PM_ARRAY:
+ if (pm->gsu.a->setfn)
+ pm->gsu.a->setfn(pm, NULL);
+ break;
+
+ case PM_HASHED:
+ if (pm->gsu.h->setfn)
+ pm->gsu.h->setfn(pm, NULL);
+ break;
+
default:
if (!(pm->node.flags & PM_SPECIAL))
pm->u.str = NULL;