mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
[1.0 release prep] Block namespace defs in ksh functions
In 93v-/ksh2020, namespace defs in any function are a syntax error. This commit blocks namespace defs for ksh functions only, at the execution level. This follows some of AT&T original intention while working around some of the known bugs with namespaces. Related: https://github.com/ksh93/ksh/issues/325
This commit is contained in:
parent
e3d91ffa90
commit
40de1e92b0
1 changed files with 5 additions and 0 deletions
|
@ -2481,6 +2481,11 @@ int sh_exec(register const Shnode_t *t, int flags)
|
||||||
errormsg(SH_DICT,ERROR_exit(1),e_ident,fname);
|
errormsg(SH_DICT,ERROR_exit(1),e_ident,fname);
|
||||||
UNREACHABLE();
|
UNREACHABLE();
|
||||||
}
|
}
|
||||||
|
if(shp->st.real_fun)
|
||||||
|
{
|
||||||
|
error(ERROR_exit(3),"namespaces cannot be defined in a ksh function scope");
|
||||||
|
UNREACHABLE();
|
||||||
|
}
|
||||||
sfputc(stkp,'.');
|
sfputc(stkp,'.');
|
||||||
sfputr(stkp,fname,0);
|
sfputr(stkp,fname,0);
|
||||||
np = nv_open(stkptr(stkp,offset),shp->var_tree,flags);
|
np = nv_open(stkptr(stkp,offset),shp->var_tree,flags);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue