On 1/12/14, 4:13 AM, Theodoros V. Kalamatianos wrote: > On Sun, Jan 12, 2014 at 09:52:22AM +0200, Pierre Gaston wrote: > >> patch 32 seems to have caused this > > It seems to me that the bug patch 032 addresses is slightly less troubling > than having arrays break out of the blue.
Let's rein in the hyperbole. Bash uses DEL as an internal marker character during word expansion, so problems involving DEL are a higher priority than you might think. I apologize for not testing the corner case you ran across, but it's been 18 months since the patch was released and yours is the first report of problems with it, so it doesn't seem to have affected many people. > Would it make sense to recompile a Bash binary without that patch for now, > or is a new patch on its way? I am working on getting bash-4.3 out the door before I think about releasing additional patches to bash-4.2. I have appended something you can apply -- your line numbers will certainly vary -- to get you past the problem you're currently having. 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/
*** ../bash-20140103/subst.c 2013-10-31 14:25:27.000000000 -0400 --- subst.c 2014-01-12 18:39:06.000000000 -0500 *************** *** 7405,7409 **** ret = alloc_word_desc (); ret->word = temp1; ! if (temp1 && QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) ret->flags |= W_QUOTED|W_HASQUOTEDNULL; return ret; --- 7421,7431 ---- ret = alloc_word_desc (); ret->word = temp1; ! /* We test quoted_dollar_atp because we want variants with double-quoted ! "$@" to take a different code path. In fact, we make sure at the end ! of expand_word_internal that we're only looking at these flags if ! quoted_dollar_at == 0. */ ! if (temp1 && ! (quoted_dollar_atp == 0 || *quoted_dollar_atp == 0) && ! QUOTED_NULL (temp1) && (quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES))) ret->flags |= W_QUOTED|W_HASQUOTEDNULL; return ret;