1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00

Fix 'typeset -xu', 'typeset -xl' (rhbz#1188377)

'typeset -xu' and 'typeset -xl' would export the variable but fail
to change case in the value under certain conditions.

Original patch:
642af4d6/f/ksh-20120801-xufix.patch

This applies the patch essentially without change and adds a
regression test based on the reproducer provided in the RH bug.

Unfortunately there is no description of how the patch works and
it's a little obscure to me. As far as I can figure out, the cause
of the problem was that nv_newattr() erroneously processed a
nonexistent size option-argument such as what can be given to
options like typeset -F, e.g. typeset -F3 for 3 digits after the
dot. A nonexistent size argument is represented by the value of -1.
This commit is contained in:
Martijn Dekker 2020-09-30 00:34:02 +02:00
parent ba0b1bba2b
commit fdb9781ebb
5 changed files with 27 additions and 2 deletions

View file

@ -94,6 +94,7 @@ int b_readonly(int argc,char *argv[],Shbltin_t *context)
memset((void*)&tdata,0,sizeof(tdata));
tdata.sh = context->shp;
tdata.aflag = '-';
tdata.argnum = -1; /* tell nv_newattr() that we should not change size */
while((flag = optget(argv,*command=='e'?sh_optexport:sh_optreadonly))) switch(flag)
{
case 'p':