2008-12-18 Marek Safar <marek.safar@gmail.com>
authorMarek Safar <marek.safar@gmail.com>
Thu, 18 Dec 2008 22:02:33 +0000 (22:02 -0000)
committerMarek Safar <marek.safar@gmail.com>
Thu, 18 Dec 2008 22:02:33 +0000 (22:02 -0000)
A fix for bug #460229
* cs-tokenizer.cs: Ignore wrongly placed BOM markers.

svn path=/trunk/mcs/; revision=121810

mcs/mcs/ChangeLog
mcs/mcs/cs-tokenizer.cs

index 5a89ec5e6cb4e386a43f00fee4304102ae88b5d9..2ad6cbaa2931e303d2247c99a341db9c44d89bed 100644 (file)
@@ -1,3 +1,8 @@
+2008-12-18  Marek Safar  <marek.safar@gmail.com>
+
+       A fix for bug #460229
+       * cs-tokenizer.cs: Ignore wrongly placed BOM markers.
+
 2008-12-18  Marek Safar  <marek.safar@gmail.com>
 
        A fix for bug #459952
index 8abe9c8b958babd414e016fb33aa60bfb4ccd57d..1305397ebb3aee6918ebe2a8c3a57031a11033eb 100644 (file)
@@ -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;
                }