]> git.saurik.com Git - wxWidgets.git/blobdiff - src/html/htmlfilt.cpp
Fix history in wxWebViewIE when using a custom file scheme.
[wxWidgets.git] / src / html / htmlfilt.cpp
index 28c3de9e68acc0d0ac045b9515b26a5173dc6f2a..0baea696758c1db86b40fa3c0583fb8bdf2396fe 100644 (file)
@@ -145,7 +145,7 @@ wxString wxHtmlFilterHTML::ReadFile(const wxFSFile& file) const
     //     tag if we used Content-Type header).
 #if wxUSE_UNICODE
     int charsetPos;
-    if ((charsetPos = file.GetMimeType().Find(_T("; charset="))) != wxNOT_FOUND)
+    if ((charsetPos = file.GetMimeType().Find(wxT("; charset="))) != wxNOT_FOUND)
     {
         wxString charset = file.GetMimeType().Mid(charsetPos + 10);
         wxCSConv conv(charset);
@@ -153,15 +153,19 @@ wxString wxHtmlFilterHTML::ReadFile(const wxFSFile& file) const
     }
     else
     {
-        wxString tmpdoc;
-        ReadString(tmpdoc, s, wxConvISO8859_1);
+        size_t size = s->GetSize();
+        wxCharBuffer buf( size+1 );
+        s->Read( buf.data(), size );
+        *(buf.data() + size) = 0;
+        wxString tmpdoc( buf, wxConvISO8859_1);
+
         wxString charset = wxHtmlParser::ExtractCharsetInformation(tmpdoc);
         if (charset.empty())
             doc = tmpdoc;
         else
         {
             wxCSConv conv(charset);
-            doc = wxString(tmpdoc.mb_str(wxConvISO8859_1), conv);
+            doc = wxString( buf, conv );
         }
     }
 #else // !wxUSE_UNICODE
@@ -171,7 +175,7 @@ wxString wxHtmlFilterHTML::ReadFile(const wxFSFile& file) const
     {
         wxString hdr;
         wxString mime = file.GetMimeType();
-        hdr.Printf(_T("<meta http-equiv=\"Content-Type\" content=\"%s\">"), mime.c_str());
+        hdr.Printf(wxT("<meta http-equiv=\"Content-Type\" content=\"%s\">"), mime.c_str());
         return hdr+doc;
     }
 #endif