diff options
author | Paul Smith <psmith@gnu.org> | 2012-09-09 21:11:00 +0000 |
---|---|---|
committer | Paul Smith <psmith@gnu.org> | 2012-09-09 21:11:00 +0000 |
commit | bc578b6c8eaf2ec3e203acd654d1b0c24fdbd62f (patch) | |
tree | d8e465f6cfdc56c1f6224d78a90660afe8836a0f | |
parent | 1820908804cc775809d7b4269a6754eb4df957c9 (diff) | |
download | gunmake-bc578b6c8eaf2ec3e203acd654d1b0c24fdbd62f.tar.gz |
Ignore UTF-8 BOMs. See Savannah bug #36529.
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | read.c | 22 | ||||
-rw-r--r-- | tests/ChangeLog | 3 | ||||
-rw-r--r-- | tests/scripts/features/utf8 | 11 |
4 files changed, 37 insertions, 5 deletions
@@ -1,3 +1,9 @@ +2012-09-09 Paul Smith <psmith@gnu.org> + + * read.c (eval): If we detect an initial UTF-8 BOM, skip it. + Fixes Savannah bug #36529. + (record_target_var): Remove unused variable "fname". + 2012-09-09 Eli Zaretskii <eliz@gnu.org> * read.c (unescape_char): Fix a thinko in the last change. @@ -619,8 +619,24 @@ eval (struct ebuffer *ebuf, int set_default) if (nlines < 0) break; - /* If this line is empty, skip it. */ line = ebuf->buffer; + + /* If this is the first line, check for a UTF-8 BOM and skip it. */ + if (ebuf->floc.lineno == 1 && line[0] == (char)0xEF + && line[1] == (char)0xBB && line[2] == (char)0xBF) + { + line += 3; + if (ISDB(DB_BASIC)) + { + if (ebuf->floc.filenm) + printf (_("Skipping UTF-8 BOM in makefile '%s'\n"), + ebuf->floc.filenm); + else + printf (_("Skipping UTF-8 BOM in makefile buffer\n")); + } + } + + /* If this line is empty, skip it. */ if (line[0] == '\0') continue; @@ -1741,7 +1757,6 @@ record_target_var (struct nameseq *filenames, char *defn, { struct variable *v; const char *name = filenames->name; - const char *fname; const char *percent; struct pattern_var *p; @@ -1766,8 +1781,6 @@ record_target_var (struct nameseq *filenames, char *defn, v->value = allocated_variable_expand (v->value); else v->value = xstrdup (v->value); - - fname = p->target; } else { @@ -1784,7 +1797,6 @@ record_target_var (struct nameseq *filenames, char *defn, f = f->double_colon; initialize_file_variables (f, 1); - fname = f->name; current_variable_set_list = f->variables; v = try_variable_definition (flocp, defn, origin, 1); diff --git a/tests/ChangeLog b/tests/ChangeLog index f9585e6..aa572d3 100644 --- a/tests/ChangeLog +++ b/tests/ChangeLog @@ -1,5 +1,8 @@ 2012-09-09 Paul Smith <psmith@gnu.org> + * scripts/features/utf8: New test for UTF-8 support. + See Savannah bug #36529. + * scripts/targets/POSIX: Add tests for default macro values as specified by IEEE Std 1003.1-2008. See Savannah bug #37069. diff --git a/tests/scripts/features/utf8 b/tests/scripts/features/utf8 new file mode 100644 index 0000000..54bc471 --- /dev/null +++ b/tests/scripts/features/utf8 @@ -0,0 +1,11 @@ +# -*-perl-*- + +$description = "Test support for UTF-8."; + +$details = ""; + +# Verify that the UTF-8 BOM is ignored. +run_make_test("\xEF\xBB\xBFall: ; \@echo \$\@\n", '', "all"); + +# This tells the test driver that the perl test script executed properly. +1; |