$ 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);

Reply via email to