]> git.saurik.com Git - wxWidgets.git/commitdiff
Fix wxStringOutputStream in wxUSE_UNICODE_UTF8 build.
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 16 Jun 2011 16:22:15 +0000 (16:22 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 16 Jun 2011 16:22:15 +0000 (16:22 +0000)
For some reason the conversion of the bytes written to this stream to Unicode
was only done in wxUSE_UNICODE_WCHAR build but not in wxUSE_UNICODE_UTF8 one.
Do it in any wxUSE_UNICODE build now.

This allows to use wxStringOutputStream under Unix again, in particular it
fixes an assert in samples/html/zip when trying to load the raw contents of a
ZIP file in wxHtmlWindow.

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

include/wx/sstream.h
src/common/sstream.cpp

index 14845bb4797b03867054a28e0b68fd7a6fdd891f..318cf776b72aaaad99a4db839d0c7f2d9aeb3d40 100644 (file)
@@ -66,9 +66,9 @@ public:
     wxStringOutputStream(wxString *pString = NULL,
                          wxMBConv& conv = wxConvUTF8)
         : m_conv(conv)
-#if wxUSE_UNICODE_WCHAR
+#if wxUSE_UNICODE
         , m_unconv(0)
-#endif // wxUSE_UNICODE_WCHAR
+#endif // wxUSE_UNICODE
     {
         m_str = pString ? pString : &m_strInternal;
         m_pos = m_str->length() / sizeof(wxChar);
@@ -98,10 +98,10 @@ private:
     // arbitrary 8 bit data
     wxMBConv& m_conv;
 
-#if wxUSE_UNICODE_WCHAR
+#if wxUSE_UNICODE
     // unconverted data from the last call to OnSysWrite()
     wxMemoryBuffer m_unconv;
-#endif // wxUSE_UNICODE_WCHAR
+#endif // wxUSE_UNICODE
 
     wxDECLARE_NO_COPY_CLASS(wxStringOutputStream);
 };
index 117b2f6919b09cfd86b4e3d1446a627e18afad68..14c7dca8a2eb92c937917bc9af5bd02df93cdbf5 100644 (file)
@@ -146,7 +146,7 @@ size_t wxStringOutputStream::OnSysWrite(const void *buffer, size_t size)
 {
     const char *p = static_cast<const char *>(buffer);
 
-#if wxUSE_UNICODE_WCHAR
+#if wxUSE_UNICODE
     // the part of the string we have here may be incomplete, i.e. it can stop
     // in the middle of an UTF-8 character and so converting it would fail; if
     // this is the case, accumulate the part which we failed to convert until
@@ -188,11 +188,10 @@ size_t wxStringOutputStream::OnSysWrite(const void *buffer, size_t size)
         // not update m_pos as m_str hasn't changed
         return size;
     }
-#else // !wxUSE_UNICODE_WCHAR
-    // no recoding necessary, the data is supposed to already be in UTF-8 (if
-    // supported) or ASCII otherwise
+#else // !wxUSE_UNICODE
+    // no recoding necessary
     m_str->append(p, size);
-#endif // wxUSE_UNICODE_WCHAR/!wxUSE_UNICODE_WCHAR
+#endif // wxUSE_UNICODE/!wxUSE_UNICODE
 
     // update position
     m_pos += size;