summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2000-02-09 19:57:15 +0000
committerPaul Smith <psmith@gnu.org>2000-02-09 19:57:15 +0000
commit75f879f37f8c8e6b671c558ab85b3926c96fbb0c (patch)
tree4e20a8645b23c11813bdef5707a49eae5bddc8af
parente68a27ec7b22753dd2a61585a69290ca2e3c9d80 (diff)
downloadgunmake-75f879f37f8c8e6b671c558ab85b3926c96fbb0c.tar.gz
* Fix backslash-escape in targets.3.78.91
* Release 3.78.91.
-rw-r--r--ChangeLog29
-rw-r--r--README.template12
-rw-r--r--read.c2
-rw-r--r--tests/ChangeLog12
-rw-r--r--tests/scripts/features/escape18
5 files changed, 57 insertions, 16 deletions
diff --git a/ChangeLog b/ChangeLog
index 2b0ba8c..cc7cd75 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,12 +1,22 @@
+2000-02-09 Paul D. Smith <psmith@gnu.org>
+
+ * Version 3.78.91 released.
+
2000-02-07 Paul D. Smith <psmith@gnu.org>
+ * read.c (read_makefile): Reset *p2 to ':', not *colonp. If any
+ filenames contained backslashes the resulting output (without
+ backslashes) will be shorter, so setting *colonp doesn't change
+ the right character. Fix for PR/1586.
+
For += target-specific variables we need to remember which
variable set we found the variable in, so we can start looking
- there in the next iteration (otherwise we'll see it again in
- recursively_expand and fail!). This is getting to be a hack; if
- it gets any worse we'll have to rethink this entire algorithm;
- probably implementing expansion of these separately from the
- "normal" expansion, instead of alongside.
+ from there in the next iteration (otherwise we might see it again
+ in recursively_expand and fail!). This is turning into a hack; if
+ it gets any worse we'll have to rethink this entire algorithm...
+ implementing expansion of these references separately from the
+ "normal" expansion, say, instead of using the same codepath.
+ Actually, it's already "worse enough" :-/.
* variable.h (recursively_expand_setlist): Rename
recursively_expand to add a struct variable_set_list argument, and
@@ -15,8 +25,7 @@
variable_set_list argument, and make a macro for lookup_variable.
* expand.c (recursively_expand_setlist): Take an extra struct
- variable_set_list argument and pass it to
- allocated_variable_append().
+ variable_set_list argument and pass it to allocated_variable_append().
(reference_variable): Use lookup_variable_setlist() and pass the
returned variable_set_list to recursively_expand_setlist.
(allocated_variable_append): Take an extra setlist argument and
@@ -24,7 +33,7 @@
expansion. If it's null, use current_variable_set_list as before.
* variable.c (lookup_variable_setlist): If the LISTP argument is
- not nil, return the list where we found the variable in it.
+ not nil, set it to the list containing the variable we found.
2000-02-04 Paul D. Smith <psmith@gnu.org>
@@ -93,6 +102,10 @@
don't define HAVE_ALLOCA (the workaround code was included
twice).
+2000-01-26 Paul D. Smith <psmith@gnu.org>
+
+ * Version 3.78.90 released.
+
2000-01-25 Paul D. Smith <psmith@gnu.org>
Change gettext support to use the simplified version in libit 0.7.
diff --git a/README.template b/README.template
index afb3f69..55001a4 100644
--- a/README.template
+++ b/README.template
@@ -30,10 +30,18 @@ site. There is information there about ordering hardcopy documentation.
You can also find the latest versions of GNU Make from there.
-You can send GNU make bug reports to bug-make@gnu.org. Please see the
+You can send GNU make bug reports to <bug-make@gnu.org>. Please see the
section of the GNU make manual entitled `Problems and Bugs' for
information on submitting useful and complete bug reports.
+You can also use the FSF's online bug tracking system to submit new
+problem reports or search for existing ones. A web interface is
+available here:
+
+ http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl
+
+Use the Category "make".
+
If you need help using GNU make, try these forums:
help-make@gnu.org
@@ -46,6 +54,8 @@ Also:
- See README.customs for details on integrating GNU make with the
Customs distributed build environment from the Pmake distribution.
+ - See readme.vms for details about GNU Make on OpenVMS.
+
- See README.W32 for details about GNU Make on Windows NT, 95, or 98.
- See README.Amiga for details about GNU Make on AmigaDOS.
diff --git a/read.c b/read.c
index 67b2a2d..c5434f7 100644
--- a/read.c
+++ b/read.c
@@ -879,7 +879,7 @@ read_makefile (filename, flags)
sizeof (struct nameseq),
1),
sizeof (struct nameseq));
- *colonp = ':';
+ *p2 = ':';
if (!filenames)
{
diff --git a/tests/ChangeLog b/tests/ChangeLog
index fe8b25c..6fba7ea 100644
--- a/tests/ChangeLog
+++ b/tests/ChangeLog
@@ -1,11 +1,17 @@
+2000-02-07 Paul D. Smith <psmith@gnu.org>
+
+ * scripts/features/escape: Add a test for backslash-escaped spaces
+ in a target name (PR/1586).
+
2000-02-04 Paul D. Smith <psmith@gnu.org>
- * scripts/features/patspecific_vars: Add a test for PR/1407.
+ * scripts/features/patspecific_vars: Add a test for pattern-specific
+ target variables inherited from the parent target (PR/1407).
2000-02-02 Paul D. Smith <psmith@gnu.org>
* run_make_tests.pl (set_more_defaults): Hard-code the LANG to C
- to make sure porting order, etc. is predictable.
+ to make sure sorting order, etc. is predictable.
Reported by Andreas Jaeger <aj@suse.de>.
* run_make_tests.pl (set_more_defaults): Set the $wtime variable
@@ -32,7 +38,7 @@
* scripts/functions/call: Add a test for PR/1517 and PR/1527: make
sure $(call ...) doesn't eval its arguments and that you can
- invoke foreach from it without infinitely looping.
+ invoke foreach from it without looping forever.
1999-12-15 Paul D. Smith <psmith@gnu.org>
diff --git a/tests/scripts/features/escape b/tests/scripts/features/escape
index 7404387..b1eed16 100644
--- a/tests/scripts/features/escape
+++ b/tests/scripts/features/escape
@@ -1,11 +1,17 @@
+# -*-perl-*-
$description = "Test various types of escaping in makefiles.";
-$details = "Make sure that escaping of `:' works in target names.";
+$details = "\
+Make sure that escaping of `:' works in target names.
+Also make sure escaping of whitespace works in target names";
open(MAKEFILE,"> $makefile");
-print MAKEFILE '$(path)foo : ; @echo cp $^ $@
-';
+print MAKEFILE <<'EOF';
+$(path)foo : ; @echo cp $^ $@
+
+foo\ bar: ; @echo 'touch "$@"'
+EOF
close(MAKEFILE);
@@ -34,5 +40,11 @@ $answer = "cp p:foo\n";
$answer = "$makefile:1: *** target pattern contains no `%'. Stop.\n";
&compare_output($answer,&get_logfile(1));
+# TEST 5: This one should work
+
+&run_make_with_options($makefile, "'foo bar'", &get_logfile, 0);
+$answer = "touch \"foo bar\"\n";
+&compare_output($answer,&get_logfile(1));
+
# This tells the test driver that the perl test script executed properly.
1;