]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/core/cfstring.cpp
adding comment
[wxWidgets.git] / src / osx / core / cfstring.cpp
index 96bc244d381ca567aef84654fc46312a36f766aa..3aca67c90dfdea7ded4aadbe67f2bf284800a747 100644 (file)
@@ -1,5 +1,5 @@
 /////////////////////////////////////////////////////////////////////////////
-// Name:        src/osx/corefoundation/cfstring.cpp
+// Name:        src/osx/core/cfstring.cpp
 // Purpose:     wxCFStringHolder and other string functions
 // Author:      Stefan Csomor
 // Modified by:
@@ -632,6 +632,18 @@ wxCFStringRef::wxCFStringRef( const wxString &st , wxFontEncoding WXUNUSED_IN_UN
     }
 }
 
+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 )
@@ -687,7 +699,12 @@ wxString wxCFStringRef::AsString( NSString* ref, wxFontEncoding encoding )
 {
     return AsString( (CFStringRef) ref, encoding );
 }
-#endif
+
+wxString wxCFStringRef::AsStringWithNormalizationFormC( NSString* ref, wxFontEncoding encoding )
+{
+    return AsStringWithNormalizationFormC( (CFStringRef) ref, encoding );
+}
+#endif // wxOSX_USE_COCOA_OR_IPHONE
 
 
 //
@@ -696,10 +713,6 @@ wxString wxCFStringRef::AsString( NSString* ref, wxFontEncoding encoding )
 
 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 ) ;
@@ -712,17 +725,6 @@ wxMacUniCharBuffer::wxMacUniCharBuffer( const wxString &str )
     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()