summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/Modules/regex.c8
-rw-r--r--Src/params.c37
3 files changed, 41 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 2b9f8a762..302f70662 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2017-02-02 Peter Stephenson <p.stephenson@samsung.com>
+
+ * 40486: Src/Modules/regex.c, Src/params.c: don't warn on
+ creation of MATCH etc. from regex test as this is implicit.
+
2017-02-01 Barton E. Schaefer <schaefer@zsh.org>
* 40483 (cf. Eric Freese: 40482): Src/Modules/zpty.c: Remove zpty
diff --git a/Src/Modules/regex.c b/Src/Modules/regex.c
index edb7234d4..d02769ef0 100644
--- a/Src/Modules/regex.c
+++ b/Src/Modules/regex.c
@@ -111,7 +111,7 @@ zcond_regex_match(char **a, int id)
*x = NULL;
}
if (isset(BASHREMATCH)) {
- setaparam("BASH_REMATCH", arr);
+ assignaparam("BASH_REMATCH", arr, 0);
} else {
zlong offs;
char *ptr;
@@ -119,7 +119,7 @@ zcond_regex_match(char **a, int id)
m = matches;
s = metafy(lhstr + m->rm_so, m->rm_eo - m->rm_so, META_DUP);
- setsparam("MATCH", s);
+ assignsparam("MATCH", s, 0);
/*
* Count the characters before the match.
*/
@@ -133,7 +133,7 @@ zcond_regex_match(char **a, int id)
ptr += clen;
leftlen -= clen;
}
- setiparam("MBEGIN", offs + !isset(KSHARRAYS));
+ assigniparam("MBEGIN", offs + !isset(KSHARRAYS), 0);
/*
* Add on the characters in the match.
*/
@@ -144,7 +144,7 @@ zcond_regex_match(char **a, int id)
ptr += clen;
leftlen -= clen;
}
- setiparam("MEND", offs + !isset(KSHARRAYS) - 1);
+ assigniparam("MEND", offs + !isset(KSHARRAYS) - 1, 0);
if (nelem) {
char **mbegin, **mend, **bptr, **eptr;
bptr = mbegin = (char **)zalloc(sizeof(char *)*(nelem+1));
diff --git a/Src/params.c b/Src/params.c
index 20abe6aa6..19cbb1c84 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -3192,11 +3192,12 @@ sethparam(char *s, char **val)
/*
* Set a generic shell number, floating point or integer.
+ * Option to warn on setting.
*/
/**/
-Param
-setnparam(char *s, mnumber val)
+mod_export Param
+assignnparam(char *s, mnumber val, int flags)
{
struct value vbuf;
Value v;
@@ -3248,15 +3249,41 @@ setnparam(char *s, mnumber val)
unqueue_signals();
return NULL;
}
- check_warn_pm(v->pm, "numeric", !was_unset, 1);
+ if (flags & ASSPM_WARN)
+ check_warn_pm(v->pm, "numeric", !was_unset, 1);
} else {
- check_warn_pm(v->pm, "numeric", 0, 1);
+ if (flags & ASSPM_WARN)
+ check_warn_pm(v->pm, "numeric", 0, 1);
}
setnumvalue(v, val);
unqueue_signals();
return v->pm;
}
+/*
+ * Set a generic shell number, floating point or integer.
+ * Warn on setting based on option.
+ */
+
+/**/
+mod_export Param
+setnparam(char *s, mnumber val)
+{
+ return assignnparam(s, val, ASSPM_WARN);
+}
+
+/* Simplified interface to assignnparam */
+
+/**/
+mod_export Param
+assigniparam(char *s, zlong val, int flags)
+{
+ mnumber mnval;
+ mnval.type = MN_INTEGER;
+ mnval.u.l = val;
+ return assignnparam(s, mnval, flags);
+}
+
/* Simplified interface to setnparam */
/**/
@@ -3266,7 +3293,7 @@ setiparam(char *s, zlong val)
mnumber mnval;
mnval.type = MN_INTEGER;
mnval.u.l = val;
- return setnparam(s, mnval);
+ return assignnparam(s, mnval, ASSPM_WARN);
}
/*