From 40948a5a6cd7da39f28056e9f3d3f1c614ef8ab1 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Thu, 18 Sep 2008 20:49:38 +0000 Subject: [PATCH] making sure unknown charsets are not defaulting to a valid system default git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/branches/WX_2_8_BRANCH@55712 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/strconv.cpp | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/src/common/strconv.cpp b/src/common/strconv.cpp index 6dad7a793e..48e293d357 100644 --- a/src/common/strconv.cpp +++ b/src/common/strconv.cpp @@ -2735,7 +2735,8 @@ public: #if wxUSE_FONTMAP wxMBConv_mac(const wxChar* name) { - Init( wxMacGetSystemEncFromFontEnc( wxFontMapperBase::Get()->CharsetToEncoding(name, false) ) ); + wxFontEncoding enc = wxFontMapperBase::Get()->CharsetToEncoding(name, false); + Init( (enc != wxFONTENCODING_SYSTEM) ? wxMacGetSystemEncFromFontEnc( enc ) : kTextEncodingUnknown); } #endif @@ -2758,13 +2759,22 @@ public: { m_MB2WC_converter = NULL ; m_WC2MB_converter = NULL ; - m_char_encoding = CreateTextEncoding(encoding, encodingVariant, encodingFormat) ; - m_unicode_encoding = CreateTextEncoding(kTextEncodingUnicodeDefault, 0, kUnicode16BitFormat) ; + if ( encoding != kTextEncodingUnknown ) + { + m_char_encoding = CreateTextEncoding(encoding, encodingVariant, encodingFormat) ; + m_unicode_encoding = CreateTextEncoding(kTextEncodingUnicodeDefault, 0, kUnicode16BitFormat) ; + } + else + { + m_char_encoding = kTextEncodingUnknown; + m_unicode_encoding = kTextEncodingUnknown; + } } virtual void CreateIfNeeded() const { - if ( m_MB2WC_converter == NULL && m_WC2MB_converter == NULL ) + if ( m_MB2WC_converter == NULL && m_WC2MB_converter == NULL && + m_char_encoding != kTextEncodingUnknown && m_unicode_encoding != kTextEncodingUnknown ) { OSStatus status = noErr ; status = TECCreateConverter(&m_MB2WC_converter,