]> git.saurik.com Git - wxWidgets.git/commitdiff
Correct UTF-32BE BOM detection in wxConvAuto.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 24 Jan 2010 10:13:45 +0000 (10:13 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 24 Jan 2010 10:13:45 +0000 (10:13 +0000)
On the fly detection of the BOM was wrongly implemented for UTF-32BE in
r63064 and returned BOM_None for it if we tried to read exactly 2 bytes.

Fix this by returning BOM_Unknown if the first 2 bytes are NUL.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63246 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/common/convauto.cpp

index c684613f4c93fa34c4cd667abc67f069184bd609..dde8af743e435a2c48a4f89bafd775b5017e5184 100644 (file)
@@ -107,11 +107,13 @@ wxConvAuto::BOMType wxConvAuto::DetectBOM(const char *src, size_t srcLen)
 
             if ( src[0] == '\x00' && src[1] == '\x00' )
             {
-                // this could only be UTF-32BE
-                if ( srcLen == 3 && src[2] == '\xFE' )
-                    return BOM_Unknown;
-            }
+                // this could only be UTF-32BE, check that the data we have so
+                // far allows for it
+                if ( srcLen == 3 && src[2] != '\xFE' )
+                    return BOM_None;
 
+                return BOM_Unknown;
+            }
             break;
 
         default: