On 2/4/15 10:27 AM, Piotr Grzybowski wrote:
> I think you are right, maybe this one should be considered:
>
> diff --git a/lib/sh/shquote.c b/lib/sh/shquote.c
> index fff4f81..de05f27 100644
> --- a/lib/sh/shquote.c
> +++ b/lib/sh/shquote.c
> @@ -293,7 +293,7 @@ sh_contains_shell_metas (string)
> case '(': case ')': case '<': case '>':
> case '!': case '{': case '}': /* reserved words */
> case '*': case '[': case '?': case ']': /* globbing chars */
> - case '^':
> + case '^': case '@':
> case '$': case '`': /* expansion chars */
> return (1);
> case '~': /* tilde expansion */
>
> what do you think?
It's a two-line fix, but that's the wrong place.
Chet
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, ITS, CWRU [email protected] http://cnswww.cns.cwru.edu/~chet/
*** ../bash-4.3-patched/assoc.c 2011-11-05 16:39:05.000000000 -0400
--- assoc.c 2015-02-04 15:28:25.000000000 -0500
***************
*** 437,440 ****
--- 440,445 ----
if (sh_contains_shell_metas (tlist->key))
istr = sh_double_quote (tlist->key);
+ else if (ALL_ELEMENT_SUB (tlist->key[0]) && tlist->key[1] == '\0')
+ istr = sh_double_quote (tlist->key);
else
istr = tlist->key;