On 4/8/17 11:26 PM, Grisha Levit wrote:
> $ x='\001\177'; printf %q ${x@E}
> $'\001\001\001\177'
> 
> Probably just needs:
> 
> --- a/subst.c
> +++ b/subst.c
> @@ -7253,7 +7253,7 @@ string_transform (xc, v, s)
>         break;
>        /* Transformations that modify the variable's value */
>        case 'E':
> -       ret = ansiexpand (s, 0, strlen (s), (int *)0);
> +       ret = dequote_escapes(ansiexpand (s, 0, strlen (s), (int *)0));
>         break;
>        case 'P':
>         ret = decode_prompt_string (s);

Thanks for the report.  The patch is just about right, but introduces a
memory leak.

Chet
-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    c...@case.edu    http://cnswww.cns.cwru.edu/~chet/

Reply via email to