Hi Stepan, * Stepan Kasal wrote on Mon, Jun 06, 2005 at 10:45:23AM CEST: > Hello, > I fixed m4_cdr. It returned [[]] where it should have returned an > empty list. m4_foreach, which also confused these two, was fixed, too. > > These changes could break code which depended on this misbehaviour; > but I don't expect to see this in practice.
This patch breaks bootstrapping of Libtool (at least; tested with CVS HEAD) when GNU m4 1.4.1 is used: | autoreconf: Entering directory `.' | autoreconf: configure.ac: not using Gettext | autoreconf: running: aclocal --force -I m4 | configure.ac:186: /usr/bin/m4: ERROR: Recursion limit of 1024 exceeded, use -L<N> to change it | autom4te: /usr/bin/m4 failed with exit status: 1 Now while I've seen the recommendation for 1.4.3, this is still going to bother people. Even if you specifically force GNU m4 >= 1.4.3 for building Autoconf, it's quite a challenge to expect users to have that installed for their other packages as well. Many of the systems I test on have 1.4.1 as the latest installed. Some have quotas tight enough that I cannot keep a build tree for both of Autoconf and Libtool on non-temporary disk storage around, (but I have not yet tried to build m4-1.4.3 there). Regards Ralf > 2005-06-06 Stepan Kasal <[EMAIL PROTECTED]> > > m4_cdr of one-member list was [[]] (one-member list containing an > empty string) instead of [] (an empty list. Callers were skewed to > match this misbehaviour. As a consequence of this: > - m4_foreach([x], [], [foo]) expanded to `foo', while > - the expansion of m4_foreach([x], [[]], [foo]) was empty. > I fixed this bug. > > * lib/m4sugar/m4sugar.m4 (m4_cdr): If only one argument is given, > expand to an empty string; print error msg if called without > an argument list. > (m4_foreach, m4_map, m4_map_sep): Don't expect the previous > misbehaviour; handle [] and [[]] correctly.
