From fb997eaa2114fc1f5fcf4d37ac8d255cbcfd7466 Mon Sep 17 00:00:00 2001 From: Alexandre Duret-Lutz Date: Tue, 3 Dec 2002 20:39:40 +0000 Subject: [PATCH] * automake.in (macro_define): Do not strip escaped new lines in Automake's +='ed variables. We don't know whether it will be pretty printed or not at this point. (variable_pretty_output): Do this here. * tests/pluseq10.test: New file. * tests/Makefile.am (TESTS): Add pluseq10.test. Reported by Ralf Corsepius. --- ChangeLog | 10 ++++++++ automake.in | 9 ++++--- tests/Makefile.am | 1 + tests/pluseq10.test | 57 +++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 72 insertions(+), 5 deletions(-) create mode 100755 tests/pluseq10.test diff --git a/ChangeLog b/ChangeLog index 780dddb1..eb9407a9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2002-12-03 Alexandre Duret-Lutz + + * automake.in (macro_define): Do not strip escaped new lines + in Automake's +='ed variables. We don't know whether it will + be pretty printed or not at this point. + (variable_pretty_output): Do this here. + * tests/pluseq10.test: New file. + * tests/Makefile.am (TESTS): Add pluseq10.test. + Reported by Ralf Corsepius. + 2002-12-02 Charles Wilson * tests/gnits3.test (AM_INSTALLCHECK_STD_OPTIONS_EXEMPT): diff --git a/automake.in b/automake.in index 7f3efc48..b50868a7 100755 --- a/automake.in +++ b/automake.in @@ -6285,11 +6285,6 @@ sub macro_define ($$$$$$) } $var_type{$var}{$cond} = $type; - # When adding, since we rewrite, don't try to preserve the - # Automake continuation backslashes. - $value =~ s/\\$//mg - if $type eq '+' && $owner == VAR_AUTOMAKE; - # Differentiate assignment types. # 1. append (+=) to a variable defined for current condition @@ -7134,6 +7129,10 @@ sub variable_pretty_output ($@) $output_vars .= $var_comment{$var}{$cond}; } + # Suppress escaped new lines. &pretty_print_internal will + # add them back, maybe at other places. + $val =~ s/\\$//mg; + my $val = $var_value{$var}{$cond}; my $equals = $var_type{$var}{$cond} eq ':' ? ':=' : '='; my $make_condition = $cond->subst_string; diff --git a/tests/Makefile.am b/tests/Makefile.am index afa1c802..7199dfcc 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -297,6 +297,7 @@ pluseq6.test \ pluseq7.test \ pluseq8.test \ pluseq9.test \ +pluseq10.test \ postproc.test \ ppf77.test \ pr2.test \ diff --git a/tests/pluseq10.test b/tests/pluseq10.test new file mode 100755 index 00000000..42a71166 --- /dev/null +++ b/tests/pluseq10.test @@ -0,0 +1,57 @@ +#! /bin/sh +# Copyright (C) 2002 Free Software Foundation, Inc. +# +# This file is part of GNU Automake. +# +# GNU Automake is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# GNU Automake is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with autoconf; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# Test for += and backslashes. +# Reported by Ralf Corsepius. + +. ./defs || exit 1 + +set -e + +cat >>configure.in < Makefile.am << 'END' +foo = 0.h +if A +foo += a0.h \ + a1.h +foo += a2.h \ + a3.h +endif +if B +foo += b0.h \ + b1.h +endif + +print: + @echo BEG: $(foo) :END +END + +$ACLOCAL +$AUTOCONF +$AUTOMAKE +./configure +$MAKE print >stdout +cat stdout +grep 'BEG: 0.h a0.h a1.h a2.h a3.h :END' stdout -- 2.43.5