From efd2133654822d4815dc99754e6ace11f6bcfd15 Mon Sep 17 00:00:00 2001 From: Marek Safar Date: Thu, 18 Dec 2008 22:02:33 +0000 Subject: [PATCH] 2008-12-18 Marek Safar A fix for bug #460229 * cs-tokenizer.cs: Ignore wrongly placed BOM markers. svn path=/trunk/mcs/; revision=121810 --- mcs/mcs/ChangeLog | 5 +++++ mcs/mcs/cs-tokenizer.cs | 14 +++++++++++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/mcs/mcs/ChangeLog b/mcs/mcs/ChangeLog index 5a89ec5e6cb..2ad6cbaa293 100644 --- a/mcs/mcs/ChangeLog +++ b/mcs/mcs/ChangeLog @@ -1,3 +1,8 @@ +2008-12-18 Marek Safar + + A fix for bug #460229 + * cs-tokenizer.cs: Ignore wrongly placed BOM markers. + 2008-12-18 Marek Safar A fix for bug #459952 diff --git a/mcs/mcs/cs-tokenizer.cs b/mcs/mcs/cs-tokenizer.cs index 8abe9c8b958..1305397ebb3 100644 --- a/mcs/mcs/cs-tokenizer.cs +++ b/mcs/mcs/cs-tokenizer.cs @@ -2416,8 +2416,20 @@ namespace Mono.CSharp case '\v': case 0xa0: case 0: + case 0xFEFF: // Ignore BOM anywhere in the file continue; +/* This is required for compatibility with .NET + case 0xEF: + if (peek_char () == 0xBB) { + PushPosition (); + get_char (); + if (get_char () == 0xBF) + continue; + PopPosition (); + } + break; +*/ case '\r': if (peek_char () != '\n') advance_line (); @@ -2792,7 +2804,7 @@ namespace Mono.CSharp error_details = ((char)c).ToString (); return Token.ERROR; } - + return Token.EOF; } -- 2.25.1