#include "wx/utils.h"
#ifdef __WXMAC__
+#ifndef __DARWIN__
#include <ATSUnicode.h>
#include <TextCommon.h>
#include <TextEncodingConverter.h>
+#endif
#include "wx/mac/private.h" // includes mac headers
#endif
static bool ms_wcNeedsSwap;
};
+// make the constructor available for unit testing
+WXDLLIMPEXP_BASE wxMBConv* new_wxMBConv_iconv( const wxChar* name )
+{
+ wxMBConv_iconv* result = new wxMBConv_iconv( name );
+ if ( !result->IsOk() )
+ {
+ delete result;
+ return 0;
+ }
+ return result;
+}
+
const char *wxMBConv_iconv::ms_wcCharsetName = NULL;
bool wxMBConv_iconv::ms_wcNeedsSwap = false;
wxMBConv_iconv::wxMBConv_iconv(const wxChar *name)
{
- // Do it the hard way
- char cname[100];
- for (size_t i = 0; i < wxStrlen(name)+1; i++)
- cname[i] = (char) name[i];
+ // iconv operates with chars, not wxChars, but luckily it uses only ASCII
+ // names for the charsets
+ const wxCharBuffer cname(wxString(name).ToAscii());
// check for charset that represents wchar_t:
if (ms_wcCharsetName == NULL)
DECLARE_NO_COPY_CLASS(wxMBConv_wxwin)
};
+// make the constructors available for unit testing
+WXDLLIMPEXP_BASE wxMBConv* new_wxMBConv_wxwin( const wxChar* name )
+{
+ wxMBConv_wxwin* result = new wxMBConv_wxwin( name );
+ if ( !result->IsOk() )
+ {
+ delete result;
+ return 0;
+ }
+ return result;
+}
+
#endif // wxUSE_FONTMAP
// ============================================================================