/////////////////////////////////////////////////////////////////////////////
-// Name: src/osx/corefoundation/cfstring.cpp
+// Name: src/osx/core/cfstring.cpp
// Purpose: wxCFStringHolder and other string functions
// Author: Stefan Csomor
// Modified by:
}
}
+wxString wxCFStringRef::AsStringWithNormalizationFormC( CFStringRef ref, wxFontEncoding encoding )
+{
+ if ( !ref )
+ return wxEmptyString ;
+
+ CFMutableStringRef cfMutableString = CFStringCreateMutableCopy(NULL, 0, ref);
+ CFStringNormalize(cfMutableString,kCFStringNormalizationFormC);
+ wxString str = wxCFStringRef::AsString(ref,encoding);
+ CFRelease(cfMutableString);
+ return str;
+}
+
wxString wxCFStringRef::AsString( CFStringRef ref, wxFontEncoding WXUNUSED_IN_UNICODE(encoding) )
{
if ( !ref )
{
return AsString( (CFStringRef) ref, encoding );
}
-#endif
+
+wxString wxCFStringRef::AsStringWithNormalizationFormC( NSString* ref, wxFontEncoding encoding )
+{
+ return AsStringWithNormalizationFormC( (CFStringRef) ref, encoding );
+}
+#endif // wxOSX_USE_COCOA_OR_IPHONE
//
wxMacUniCharBuffer::wxMacUniCharBuffer( const wxString &str )
{
- m_chars = str.length() ;
- m_ubuf = NULL ;
-
-#if SIZEOF_WCHAR_T == 4
wxMBConvUTF16 converter ;
#if wxUSE_UNICODE
size_t unicharlen = converter.WC2MB( NULL , str.wc_str() , 0 ) ;
converter.WC2MB( (char*) m_ubuf , wchar.data() , unicharlen + 2 ) ;
#endif
m_chars = unicharlen / 2 ;
-#else // SIZEOF_WCHAR_T is then 2
-#if wxUSE_UNICODE
- m_ubuf = malloc( m_chars * 2 + 2 ) ;
- memcpy( m_ubuf , (UniChar*) str.wc_str() , m_chars * 2 + 2 ) ;
-#else
- wxWCharBuffer wchar = str.wc_str( wxConvLocal ) ;
- m_chars = wxWcslen( wchar.data() ) ;
- m_ubuf = malloc( m_chars * 2 + 2 ) ;
- memcpy( m_ubuf , (UniChar*) wchar.data() , m_chars * 2 + 2 ) ;
-#endif
-#endif
}
wxMacUniCharBuffer::~wxMacUniCharBuffer()