#include <CoreFoundation/CoreFoundation.h>
+
void wxMacConvertNewlines13To10( char * data )
{
char * buf = data ;
#if wxUSE_UNICODE
#if wxUSE_UNICODE_WCHAR
// native = wchar_t 4 bytes for us
- reset( CFStringCreateWithBytes( kCFAllocatorDefault,
- (const UInt8*)str.wc_str() , str.length()*4, kCFStringEncodingUTF32, false /* no BOM */ ) );
+ const wchar_t * const data = str.wc_str();
+ const size_t size = str.length()*sizeof(wchar_t);
+ CFStringBuiltInEncodings cfencoding = kCFStringEncodingUTF32Native;
#elif wxUSE_UNICODE_UTF8
// native = utf8
- reset( CFStringCreateWithBytes( kCFAllocatorDefault,
- (const UInt8*) str.utf8_str() , str.utf8_length() , kCFStringEncodingUTF8, false /* no BOM */ ) );
+ const char * const data = str.utf8_str();
+ const size_t size = str.utf8_length();
+ CFStringBuiltInEncodings cfencoding = kCFStringEncodingUTF8;
#else
- #error "unsupported unicode representation"
+ #error "unsupported Unicode representation"
#endif
+
+ reset( CFStringCreateWithBytes( kCFAllocatorDefault,
+ (const UInt8*)data, size, cfencoding, false /* no BOM */ ) );
#else // not wxUSE_UNICODE
reset( CFStringCreateWithCString( kCFAllocatorSystemDefault , str.c_str() ,
wxMacGetSystemEncFromFontEnc( encoding ) ) );
wxString result;
#if wxUSE_UNICODE
#if wxUSE_UNICODE_WCHAR
- cfencoding = kCFStringEncodingUTF32;
+ cfencoding = kCFStringEncodingUTF32Native;
#elif wxUSE_UNICODE_UTF8
cfencoding = kCFStringEncodingUTF8;
#else
#error "unsupported unicode representation"
#endif
#else
- wxString result(buf, cStrLen) ;
+ result = wxString(buf, cStrLen) ;
#endif
delete[] buf ;