This change fixes the existing issues with AC_CONFIG_MACRO_DIRS
containing newlines:
<http://lists.gnu.org/archive/html/autoconf-patches/2012-11/msg00000.html>
Likely, it will also allow a less involved implementation of the
AM_EXTRA_RECURSIVE_TARGETS macro (but that is left for potential
follow-up patches).
* aclocal.in (trace_used_macros): When calling autom4te, pass its
'--trace' option an argument containing '${::}%' rather than '$1'.
According to the autoconf manual (as of version 2.69), that will expand
to the concatenation, with the '::' string, of all the arguments passed
to a macro, with all newline characters in such arguments smashed.
Related adjustments when handling the macro AC_CONFIG_MACRO_DIRS, to
ensure leading whitespace in its argument are handled correctly.
* t/aclocal-macrodirs.tap ("AC_CONFIG_MACRO_DIRS: extra whitespace"):
No longer declare it as an xfailing test.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
# All candidate macros.
$traces .= join (' ',
- (map { "--trace='$_:\$f::\$n::\$1'" }
+ (map { "--trace='$_:\$f::\$n::\${::}%'" }
('AC_DEFUN',
'AC_DEFUN_ONCE',
'AU_DEFUN',
}
elsif ($macro eq 'AC_CONFIG_MACRO_DIRS')
{
- push @ac_config_macro_dirs, split (/\s+/, $arg1);
+ # Empty leading/trailing fields might be produced by split,
+ # hence the grep is really needed.
+ push @ac_config_macro_dirs, grep (/./, (split /\s+/, $arg1));
}
}
#---------------------------------------------------------------------------
-test_begin "AC_CONFIG_MACRO_DIRS: extra whitespace" TODO
+test_begin "AC_CONFIG_MACRO_DIRS: extra whitespace"
bslash=\\