1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-01 09:41:44 +02:00

40486: Don't warn on creation of MATCH etc. in regex.

This because they are created implicitly rather than by explicit
user request, so the warning may not be useful.
This commit is contained in:
Peter Stephenson 2017-02-02 10:03:57 +00:00
parent caddeca1ac
commit a32fb005d6
3 changed files with 41 additions and 9 deletions

View file

@ -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

View file

@ -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));

View file

@ -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);
}
/*