#include "wx/strconv.h"
-#if wxUSE_WCHAR_T
-
#ifndef __WXWINCE__
#include <errno.h>
#endif
}
}
- return wxWCharBuffer();
+ return wxScopedWCharBuffer::CreateNonOwned(L"", 0);
}
const wxCharBuffer wxMBConv::cWC2MB(const wxScopedWCharBuffer& wbuf) const
}
}
- return wxCharBuffer();
+ return wxScopedCharBuffer::CreateNonOwned("", 0);
}
// ----------------------------------------------------------------------------
virtual wxMBConv *Clone() const
{
- wxMBConv_iconv *p = new wxMBConv_iconv(m_name.ToAscii());
+ wxMBConv_iconv *p = new wxMBConv_iconv(m_name);
p->m_minMBCharWidth = m_minMBCharWidth;
return p;
}
// name of the encoding handled by this conversion
- wxString m_name;
+ const char *m_name;
// cached result of GetMBNulLen(); set to 0 meaning "unknown"
// initially
bool wxMBConv_iconv::ms_wcNeedsSwap = false;
wxMBConv_iconv::wxMBConv_iconv(const char *name)
- : m_name(name)
+ : m_name(wxStrdup(name))
{
m_minMBCharWidth = 0;
wxMBConv_iconv::~wxMBConv_iconv()
{
+ free(const_cast<char *>(m_name));
+
if ( m2w != ICONV_T_INVALID )
iconv_close(m2w);
if ( w2m != ICONV_T_INVALID )
void wxCSConv::Clear()
{
free(m_name);
- delete m_convReal;
+ wxDELETE(m_convReal);
m_name = NULL;
- m_convReal = NULL;
}
void wxCSConv::SetName(const char *charset)
{
if ( m_deferred )
{
- wxCSConv *self = (wxCSConv *)this; // const_cast
+ wxCSConv *self = const_cast<wxCSConv *>(this);
// if we don't have neither the name nor the encoding, use the default
// encoding for this system
WXDLLIMPEXP_DATA_BASE(wxMBConv *) wxConvUI = wxGet_wxConvLocalPtr();
#ifdef __DARWIN__
-// The xnu kernel always communicates file paths in decomposed UTF-8.
-// WARNING: Are we sure that CFString's conversion will cause decomposition?
+// It is important to use this conversion object under Darwin as it ensures
+// that Unicode strings are (re)composed correctly even though xnu kernel uses
+// decomposed form internally (at least for the file names).
static wxMBConv_cf wxConvMacUTF8DObj(wxFONTENCODING_UTF8);
#endif
#else // !__DARWIN__
wxGet_wxConvLibcPtr();
#endif // __DARWIN__/!__DARWIN__
-
-#else // !wxUSE_WCHAR_T
-
-// FIXME-UTF8: remove this, wxUSE_WCHAR_T is required now
-// stand-ins in absence of wchar_t
-WXDLLIMPEXP_DATA_BASE(wxMBConv) wxConvLibc,
- wxConvISO8859_1,
- wxConvLocal,
- wxConvUTF8;
-
-#endif // wxUSE_WCHAR_T/!wxUSE_WCHAR_T