diff options
| -rw-r--r-- | Src/params.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Src/params.c b/Src/params.c index e111b28c7..7409ff530 100644 --- a/Src/params.c +++ b/Src/params.c @@ -1167,7 +1167,7 @@ createparam(char *name, int flags) paramtab->addnode(paramtab, ztrdup(name), pm); } - if (isset(ALLEXPORT) && !(flags & PM_HASHELEM)) + if (isset(ALLEXPORT) && !(flags & (PM_NAMEREF | PM_HASHELEM))) flags |= PM_EXPORTED; } else { pm = (Param) hcalloc(sizeof *pm); @@ -2835,7 +2835,8 @@ assignstrvalue(Value v, char *val, int flags) setscope(v->pm); if (errflag || ((!v->pm->env && !(v->pm->node.flags & PM_EXPORTED) && - !(isset(ALLEXPORT) && !(v->pm->node.flags & PM_HASHELEM))) || + !(isset(ALLEXPORT) && + !(v->pm->node.flags & (PM_NAMEREF | PM_HASHELEM)))) || (v->pm->node.flags & PM_ARRAY) || v->pm->ename)) return; export_param(v->pm); |
