characters.
+2002-09-23 Paul D. Smith <psmith@gnu.org>
+
+ * read.c (enum make_word_type): Remove w_comment.
+ (get_next_mword): Don't treat comment characters as special; where
+ this function is used we will never see a comment (it's stripped
+ before we get here) and treating comments specially means that
+ targets like "foo\#bar" aren't handled properly.
+
2002-09-18 Paul D. Smith <psmith@gnu.org>
* doc/make.texi (Bugs): Update with some info on Savannah, etc.
enum make_word_type
{
w_bogus, w_eol, w_static, w_variable, w_colon, w_dcolon, w_semicolon,
- w_comment, w_varassign
+ w_varassign
};
w_colon A colon
w_dcolon A double-colon
w_semicolon A semicolon
- w_comment A comment character
w_varassign A variable assignment operator (=, :=, +=, or ?=)
Note that this function is only used when reading certain parts of the
wtype = w_eol;
break;
- case '#':
- wtype = w_comment;
- break;
-
case ';':
wtype = w_semicolon;
break;
case ' ':
case '\t':
case '=':
- case '#':
goto done_word;
case ':':
+2002-09-23 Paul D. Smith <psmith@gnu.org>
+
+ * scripts/features/escape: Test handling of escaped comment
+ characters in targets and prerequisites.
+
2002-09-18 Paul D. Smith <psmith@gnu.org>
* scripts/features/export: Test export/unexport of multiple
# TEST 4: Each double-colon rule is supposed to be run individually
-&touch('f2.h');
+&utouch(-5, 'f2.h');
&touch('foo');
&run_make_with_options($makefile, "foo", &get_logfile, 0);
# TEST 6: Each double-colon rule is supposed to be run individually
-&touch('f1.h');
+&utouch(-5, 'f1.h');
unlink('f2.h');
&touch('foo');
$details = "\
Make sure that escaping of `:' works in target names.
-Also make sure escaping of whitespace works in target names";
+Make sure escaping of whitespace works in target names.
+Make sure that escaping of '#' works.";
open(MAKEFILE,"> $makefile");
$(path)foo : ; @echo cp $^ $@
foo\ bar: ; @echo 'touch "$@"'
+
+sharp: foo\#bar.ext
+foo\#bar.ext: ; @echo foo\#bar.ext = '$@'
EOF
close(MAKEFILE);
$answer = "touch \"foo bar\"\n";
&compare_output($answer,&get_logfile(1));
+# TEST 6: Test escaped comments
+
+&run_make_with_options($makefile, "sharp", &get_logfile, 0);
+$answer = "foo#bar.ext = foo#bar.ext\n";
+&compare_output($answer,&get_logfile(1));
+
# This tells the test driver that the perl test script executed properly.
1;