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:
parent
ba0b1bba2b
commit
fdb9781ebb
5 changed files with 27 additions and 2 deletions
|
|
@ -2954,10 +2954,12 @@ void nv_newattr (register Namval_t *np, unsigned newatts, int size)
|
|||
nv_onattr(np,NV_EXPORT);
|
||||
sh_envput(shp->env,np);
|
||||
}
|
||||
if((n^newatts)==NV_EXPORT)
|
||||
if((n^newatts)==NV_EXPORT && size==-1)
|
||||
return;
|
||||
}
|
||||
oldsize = nv_size(np);
|
||||
if(size==-1)
|
||||
size = oldsize;
|
||||
if((size==oldsize|| (n&NV_INTEGER)) && !trans && ((n^newatts)&~NV_NOCHANGE)==0)
|
||||
{
|
||||
if(size)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue