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

37202: suppress WARN_CREATE_GLOBAL warnings after a fork

This commit is contained in:
Peter Stephenson 2015-12-04 10:44:33 +00:00
parent 04479a56e0
commit e40a14c5e4
2 changed files with 7 additions and 6 deletions

View file

@ -2264,7 +2264,7 @@ addvars(Estate state, Wordcode pc, int addflags)
* is implicitly scoped. * is implicitly scoped.
*/ */
flags = (!(addflags & ADDVAR_RESTORE) && flags = (!(addflags & ADDVAR_RESTORE) &&
locallevel > 0 && isset(WARNCREATEGLOBAL)) ? locallevel > forklevel && isset(WARNCREATEGLOBAL)) ?
ASSPM_WARN_CREATE : 0; ASSPM_WARN_CREATE : 0;
xtr = isset(XTRACE); xtr = isset(XTRACE);
if (xtr) { if (xtr) {

View file

@ -2868,7 +2868,7 @@ mod_export Param
setsparam(char *s, char *val) setsparam(char *s, char *val)
{ {
return assignsparam( return assignsparam(
s, val, isset(WARNCREATEGLOBAL) && locallevel > 0 ? s, val, isset(WARNCREATEGLOBAL) && locallevel > forklevel ?
ASSPM_WARN_CREATE : 0); ASSPM_WARN_CREATE : 0);
} }
@ -2966,7 +2966,7 @@ mod_export Param
setaparam(char *s, char **aval) setaparam(char *s, char **aval)
{ {
return assignaparam( return assignaparam(
s, aval, isset(WARNCREATEGLOBAL) && locallevel >0 ? s, aval, isset(WARNCREATEGLOBAL) && locallevel > forklevel ?
ASSPM_WARN_CREATE : 0); ASSPM_WARN_CREATE : 0);
} }
@ -2997,7 +2997,7 @@ sethparam(char *s, char **val)
if (!(v = fetchvalue(&vbuf, &s, 1, SCANPM_ASSIGNING))) { if (!(v = fetchvalue(&vbuf, &s, 1, SCANPM_ASSIGNING))) {
DPUTS(!v, "BUG: assigning to undeclared associative array"); DPUTS(!v, "BUG: assigning to undeclared associative array");
createparam(t, PM_HASHED); createparam(t, PM_HASHED);
checkcreate = isset(WARNCREATEGLOBAL) && locallevel > 0; checkcreate = isset(WARNCREATEGLOBAL) && locallevel > forklevel;
} else if (!(PM_TYPE(v->pm->node.flags) & PM_HASHED) && } else if (!(PM_TYPE(v->pm->node.flags) & PM_HASHED) &&
!(v->pm->node.flags & PM_SPECIAL)) { !(v->pm->node.flags & PM_SPECIAL)) {
unsetparam(t); unsetparam(t);
@ -3075,7 +3075,7 @@ setnparam(char *s, mnumber val)
/* errflag |= ERRFLAG_ERROR; */ /* errflag |= ERRFLAG_ERROR; */
return NULL; return NULL;
} }
if (!was_unset && isset(WARNCREATEGLOBAL) && locallevel > 0) if (!was_unset && isset(WARNCREATEGLOBAL) && locallevel > forklevel)
check_warn_create(v->pm, "numeric"); check_warn_create(v->pm, "numeric");
} }
setnumvalue(v, val); setnumvalue(v, val);
@ -3113,7 +3113,8 @@ setiparam_no_convert(char *s, zlong val)
convbase(buf, val, 10); convbase(buf, val, 10);
return assignsparam( return assignsparam(
s, ztrdup(buf), s, ztrdup(buf),
isset(WARNCREATEGLOBAL) && locallevel > 0 ? ASSPM_WARN_CREATE : 0); isset(WARNCREATEGLOBAL) && locallevel > forklevel ?
ASSPM_WARN_CREATE : 0);
} }
/* Unset a parameter */ /* Unset a parameter */