From 4fb145849abd018be3708352c4dad8e3b84a5f58 Mon Sep 17 00:00:00 2001 From: Alexandre Duret-Lutz Date: Tue, 21 Sep 2004 19:26:05 +0000 Subject: [PATCH] * lib/Automake/VarDef.pm (append): Strip comments from augmented variables. * tests/comment8.test: New file. * tests/Makefile.am (TESTS): Add comment8.test. Report from Stepan Kasal. --- ChangeLog | 8 +++++++ lib/Automake/VarDef.pm | 12 +++++++++- tests/Makefile.am | 1 + tests/Makefile.in | 1 + tests/comment8.test | 53 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 74 insertions(+), 1 deletion(-) create mode 100755 tests/comment8.test diff --git a/ChangeLog b/ChangeLog index c6b77590c..5b425bb58 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2004-09-21 Alexandre Duret-Lutz + + * lib/Automake/VarDef.pm (append): Strip comments from augmented + variables. + * tests/comment8.test: New file. + * tests/Makefile.am (TESTS): Add comment8.test. + Report from Stepan Kasal. + 2004-09-19 Alexandre Duret-Lutz * tests/compile.test: Fix rm usage. diff --git a/lib/Automake/VarDef.pm b/lib/Automake/VarDef.pm index 78ed30ea0..34f7bf806 100644 --- a/lib/Automake/VarDef.pm +++ b/lib/Automake/VarDef.pm @@ -1,4 +1,4 @@ -# Copyright (C) 2003 Free Software Foundation, Inc. +# Copyright (C) 2003, 2004 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -178,6 +178,16 @@ sub append ($$$) $self->{'comment'} .= $comment; my $val = $self->{'value'}; + + # Strip comments from augmented variables. This is so that + # VAR = foo # com + # VAR += bar + # does not become + # VAR = foo # com bar + # Furthermore keeping `#' would not be portable if the variable is + # output on multiple lines. + $val =~ s/ ?#.*//; + if (chomp $val) { # Insert a backslash before a trailing newline. diff --git a/tests/Makefile.am b/tests/Makefile.am index 6734b1269..840d3f121 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -93,6 +93,7 @@ comment4.test \ comment5.test \ comment6.test \ comment7.test \ +comment8.test \ compile.test \ compile_f90_c_cxx.test \ compile_f_c_cxx.test \ diff --git a/tests/Makefile.in b/tests/Makefile.in index 752166a0d..fbf673035 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -211,6 +211,7 @@ comment4.test \ comment5.test \ comment6.test \ comment7.test \ +comment8.test \ compile.test \ compile_f90_c_cxx.test \ compile_f_c_cxx.test \ diff --git a/tests/comment8.test b/tests/comment8.test new file mode 100755 index 000000000..873cbaa86 --- /dev/null +++ b/tests/comment8.test @@ -0,0 +1,53 @@ +#! /bin/sh +# Copyright (C) 2004 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 Automake; see the file COPYING. If not, write to +# the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +# Boston, MA 02111-1307, USA. + +# Make sure += does not append to a comment. +# Report from Stepan Kasal. + +. ./defs || exit 1 + +set -e + +cat >> configure.in <<'EOF' +AM_CONDITIONAL([COND1], [true]) +AM_CONDITIONAL([COND2], [true]) +AC_OUTPUT +EOF + +cat > Makefile.am << 'EOF' +VAR = valA# comA ## com C +VAR += valB # comB +if COND1 + VAR += val1 # com1 +endif COND1 +VAR += valC +if COND2 + VAR += val2 # com2 +endif COND2 + +test: + test "`echo $(VAR)`" = 'valA valB val1 valC val2' +EOF + +$ACLOCAL +$AUTOCONF +$AUTOMAKE +./configure +make test -- 2.47.2