From: Stefano Lattarini Date: Fri, 2 Nov 2012 10:49:46 +0000 (+0100) Subject: aclocal: smash newlines in arguments of traced macros X-Git-Tag: v1.12b~28^2~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4a5955172d2d39ef03191d2ca69edc585a12910d;p=platform%2Fupstream%2Fautomake.git aclocal: smash newlines in arguments of traced macros This change fixes the existing issues with AC_CONFIG_MACRO_DIRS containing newlines: 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 --- diff --git a/aclocal.in b/aclocal.in index 751ab49..0220a7d 100644 --- a/aclocal.in +++ b/aclocal.in @@ -725,7 +725,7 @@ sub trace_used_macros () # All candidate macros. $traces .= join (' ', - (map { "--trace='$_:\$f::\$n::\$1'" } + (map { "--trace='$_:\$f::\$n::\${::}%'" } ('AC_DEFUN', 'AC_DEFUN_ONCE', 'AU_DEFUN', @@ -767,7 +767,9 @@ sub trace_used_macros () } 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)); } } diff --git a/t/aclocal-macrodirs.tap b/t/aclocal-macrodirs.tap index 9350b87..81ca75e 100755 --- a/t/aclocal-macrodirs.tap +++ b/t/aclocal-macrodirs.tap @@ -152,7 +152,7 @@ test_end #--------------------------------------------------------------------------- -test_begin "AC_CONFIG_MACRO_DIRS: extra whitespace" TODO +test_begin "AC_CONFIG_MACRO_DIRS: extra whitespace" bslash=\\