On 11/8/10 9:18 AM, Roman Rakus wrote: > On 07/28/2010 08:46 AM, Roman Rakus wrote: >> Repeated in the bash-4.0.38 and bash-4.1.7 by the script; >> #!/bin/bash >> >> typeset -Ai s >> y='*' >> z='[' >> s[$y]=1 >> s[$z]=2 >> (( s[$z] = s[$z] + ${s[$y]} )) >> (( s[$y] = s[$y] + ${s[$z]} )) >> [[ ${s[$y]} = 4 ]] && echo "ok" >> >> ---- >> FIX: added check; >> diff -up bash-4.1/variables.c.Ai bash-4.1/variables.c >> --- bash-4.1/variables.c.Ai 2010-07-28 08:42:54.000000000 +0200 >> +++ bash-4.1/variables.c 2010-07-28 08:43:17.000000000 +0200 >> @@ -2371,7 +2371,7 @@ bind_int_variable (lhs, rhs) >> #endif >> v = bind_variable (lhs, rhs, 0); >> >> - if (isint) >> + if (isint && v) >> VSETATTR (v, att_integer); >> >> return (v); >> >> RR >> > Any comments?
It's a fair cop. The bug is real, and the patch is correct. The fix will be in bash-4.2. Chet -- ``The lyf so short, the craft so long to lerne.'' - Chaucer ``Ars longa, vita brevis'' - Hippocrates Chet Ramey, ITS, CWRU c...@case.edu http://cnswww.cns.cwru.edu/~chet/