From 1633b2800d3679e3b89a34bcafa03956ed310b61 Mon Sep 17 00:00:00 2001
From: Peter Stephenson
Date: Thu, 26 Jan 2017 20:07:51 +0000
Subject: 40423: WARN_NESTED_VARS, conversion the other way
---
Src/params.c | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
(limited to 'Src/params.c')
diff --git a/Src/params.c b/Src/params.c
index 45b37cb4f..a8d4f50f4 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -3048,6 +3048,7 @@ assignaparam(char *s, char **val, int flags)
Value v;
char *t = s;
char *ss;
+ int created = 0;
if (!isident(s)) {
zerr("not an identifier: %s", s);
@@ -3058,10 +3059,10 @@ assignaparam(char *s, char **val, int flags)
queue_signals();
if ((ss = strchr(s, '['))) {
*ss = '\0';
- if (!(v = getvalue(&vbuf, &s, 1)))
+ if (!(v = getvalue(&vbuf, &s, 1))) {
createparam(t, PM_ARRAY);
- else
- flags &= ~ASSPM_WARN_CREATE;
+ created = 1;
+ }
*ss = '[';
if (v && PM_TYPE(v->pm->node.flags) == PM_HASHED) {
unqueue_signals();
@@ -3073,9 +3074,10 @@ assignaparam(char *s, char **val, int flags)
}
v = NULL;
} else {
- if (!(v = fetchvalue(&vbuf, &s, 1, SCANPM_ASSIGNING)))
+ if (!(v = fetchvalue(&vbuf, &s, 1, SCANPM_ASSIGNING))) {
createparam(t, PM_ARRAY);
- else if (!(PM_TYPE(v->pm->node.flags) & (PM_ARRAY|PM_HASHED)) &&
+ created = 1;
+ } else if (!(PM_TYPE(v->pm->node.flags) & (PM_ARRAY|PM_HASHED)) &&
!(v->pm->node.flags & (PM_SPECIAL|PM_TIED))) {
int uniq = v->pm->node.flags & PM_UNIQUE;
if (flags & ASSPM_AUGMENT) {
@@ -3093,8 +3095,6 @@ assignaparam(char *s, char **val, int flags)
createparam(t, PM_ARRAY | uniq);
v = NULL;
}
- else
- flags &= ~ASSPM_WARN_CREATE;
}
if (!v)
if (!(v = fetchvalue(&vbuf, &t, 1, SCANPM_ASSIGNING))) {
@@ -3105,7 +3105,7 @@ assignaparam(char *s, char **val, int flags)
}
if (flags & ASSPM_WARN)
- check_warn_pm(v->pm, "array", flags & ASSPM_WARN_CREATE);
+ check_warn_pm(v->pm, "array", created);
if (flags & ASSPM_AUGMENT) {
if (v->start == 0 && v->end == -1) {
if (PM_TYPE(v->pm->node.flags) & PM_ARRAY) {
--
cgit 1.4.1