]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/dobjcmn.cpp
More settings restored.
[wxWidgets.git] / src / common / dobjcmn.cpp
index ac306c2d902c1381e2f75ec45e81767720d4aa61..ff161cddf30d4de9062cdb7fd18e0c8dc05cc277 100644 (file)
@@ -281,13 +281,14 @@ size_t wxTextDataObject::GetDataSize(const wxDataFormat& format) const
     if (format == wxDF_UNICODETEXT)
     {
         // host native is UTF16
-        wxMBConvUTF16BE converter ;
+        wxMBConvUTF16 converter ;
         return converter.WC2MB( NULL , GetText().c_str() , 0 ) + 2; // add space for trailing unichar 0
     }
     else  // == wxDF_TEXT
     {
         wxCharBuffer buffer = wxConvLibc.cWX2MB( GetText().c_str() );
-        return strlen( (const char*) buffer ) + 1;
+        // in some cases "buffer" is null (e.g. Mac OS X)
+        return buffer ? strlen( (const char*) buffer ) + 1 : 0;
     }
 }
 
@@ -296,7 +297,7 @@ bool wxTextDataObject::GetDataHere(const wxDataFormat& format, void *buf) const
     if (format == wxDF_UNICODETEXT)
     {
         // host native is UTF16
-        wxMBConvUTF16BE converter ;
+        wxMBConvUTF16 converter ;
         size_t len = converter.WC2MB( NULL , GetText().c_str() , 0 ) ;
         wxCharBuffer buffer = converter.cWX2MB( GetText().c_str() );
         memcpy( (char*) buf, (const char*) buffer , len + 2); // trailing unichar 0
@@ -304,7 +305,9 @@ bool wxTextDataObject::GetDataHere(const wxDataFormat& format, void *buf) const
     else
     {
         wxCharBuffer buffer = wxConvLibc.cWX2MB( GetText().c_str() );
-        strcpy( (char*) buf, (const char*) buffer );
+        // in some cases "buffer" is null (e.g. Mac OS X)
+        if (buffer)
+            strcpy( (char*) buf, (const char*) buffer );
     }
 
     return true;
@@ -316,7 +319,7 @@ bool wxTextDataObject::SetData(const wxDataFormat& format,
     if (format == wxDF_UNICODETEXT)
     {
         // host native is UTF16
-        wxMBConvUTF16BE converter ;
+        wxMBConvUTF16 converter ;
         SetText( converter.cMB2WX( (const char*) buf ) );
     }
     else