components/ksh93/patches/095-CR7009897.patch
changeset 4305 90493abe0c5c
equal deleted inserted replaced
4304:b35bb72c479d 4305:90493abe0c5c
       
     1 diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/macro.c INIT.2011-02-08/src/cmd/ksh93/sh/macro.c
       
     2 --- INIT.2011-02-08.clean/src/cmd/ksh93/sh/macro.c	2012-05-02 01:59:48.571110152 -0700
       
     3 +++ INIT.2011-02-08/src/cmd/ksh93/sh/macro.c	2012-05-02 02:05:56.082206972 -0700
       
     4 @@ -1262,7 +1262,7 @@ retry1:
       
     5  				stkseek(stkp,stktell(stkp)-2);
       
     6  				nv_local = 1;
       
     7  			}
       
     8 -			else
       
     9 +			else if (type != M_VNAME)
       
    10  			{
       
    11  				stkseek(stkp,stktell(stkp)-1);
       
    12  				type = M_TREE;
       
    13 diff -rupN INIT.2011-02-08.clean/src/cmd/ksh93/sh/nvtree.c INIT.2011-02-08/src/cmd/ksh93/sh/nvtree.c
       
    14 --- INIT.2011-02-08.clean/src/cmd/ksh93/sh/nvtree.c	2012-05-02 01:59:52.497548227 -0700
       
    15 +++ INIT.2011-02-08/src/cmd/ksh93/sh/nvtree.c	2012-05-02 02:07:16.084944399 -0700
       
    16 @@ -1069,7 +1069,7 @@ Namfun_t *nv_isvtree(Namval_t *np)
       
    17   */
       
    18  char *nv_getvtree(register Namval_t *np, Namfun_t *fp)
       
    19  {
       
    20 -	int flags=0, dsize=fp->dsize;
       
    21 +	int flags=0;
       
    22  	for(; fp && fp->next; fp=fp->next)
       
    23  	{
       
    24  		if(fp->next->disc && (fp->next->disc->getnum || fp->next->disc->getval))
       
    25 @@ -1083,7 +1083,7 @@ char *nv_getvtree(register Namval_t *np,
       
    26  		nv_offattr(np,NV_EXPORT);
       
    27  	if(flags |= nv_isattr(np,NV_TABLE))
       
    28  		nv_offattr(np,NV_TABLE);
       
    29 -	if(dsize && (flags&NV_EXPORT))
       
    30 +	if( (fp) && (fp->dsize) && (flags&NV_EXPORT))
       
    31  		return("()");
       
    32  	return(walk_tree(np,(Namval_t*)0,flags));
       
    33  }