1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-06-01 12:56:04 +02:00

37203: WARN_CREATE_GLOBAL test in wrong place for associative array

This commit is contained in:
Peter Stephenson 2015-11-23 15:50:13 +00:00
parent 6fe05eac84
commit 58d040fd85
2 changed files with 9 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2015-11-23 Peter Stephenson <p.stephenson@samsung.com>
* 37203: Src/params.c: WARN_CREATE_GLOBAL test in wrong place
for associative array.
2015-11-22 Barton E. Schaefer <schaefer@zsh.org>
* Matthew Martin: 37201: Completion/Unix/Type/_groups: change

View File

@ -2970,6 +2970,7 @@ sethparam(char *s, char **val)
struct value vbuf;
Value v;
char *t = s;
int checkcreate = 0;
if (!isident(s)) {
zerr("not an identifier: %s", s);
@ -2988,8 +2989,7 @@ sethparam(char *s, char **val)
queue_signals();
if (!(v = fetchvalue(&vbuf, &s, 1, SCANPM_ASSIGNING))) {
createparam(t, PM_HASHED);
if (isset(WARNCREATEGLOBAL) && locallevel > 0)
check_warn_create(v->pm, "associative array");
checkcreate = isset(WARNCREATEGLOBAL) && locallevel > 0;
} else if (!(PM_TYPE(v->pm->node.flags) & PM_HASHED) &&
!(v->pm->node.flags & PM_SPECIAL)) {
unsetparam(t);
@ -3002,6 +3002,8 @@ sethparam(char *s, char **val)
unqueue_signals();
return NULL;
}
if (checkcreate)
check_warn_create(v->pm, "associative array");
setarrvalue(v, val);
unqueue_signals();
return v->pm;