From: Ove Kaaven Date: Wed, 14 Apr 1999 19:56:54 +0000 (+0000) Subject: More helpful Unicode stuff. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/a69f7aa823711f098af48c0453b556cf82c0700d More helpful Unicode stuff. Conversion classes are now: wxConv_libc (standard mbstowcs/wcstombs) wxConv_file (usually same as above, but I think some Asian locales use different encoding systems on the filenames than on the contents of the files) wxConv_UTF7 (7-bit Unicode encoding (similar to BASE64), for email etc, not implemented yet) wxConv_UTF8 (8-bit Unicode encoding, not implemented yet, just uses mbstowcs/wcstombs, which just happens to be UTF-8 in glibc2) wxConv_gdk (gdk_mbstowcs/gdk_wcstombs, not too useful) wxConv_local (current 8-bit character set, from LANG env var) wxConv_current: pointer to conversion class. Points by default to wxConv_local, but it's meant to be able to be redirected by the user (and wxGTK can point it at wxConv_UTF8 if it manages to set the UTF-8 locale). mbc_str() returns mb_str(*wxConv_current) for convenience. I will use mbc_str() in my upcoming wxGTK adaption. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2163 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/arrimpl.cpp b/include/wx/arrimpl.cpp index 5131c7ac44..e7bca61b23 100644 --- a/include/wx/arrimpl.cpp +++ b/include/wx/arrimpl.cpp @@ -58,7 +58,7 @@ void name::Empty() \ \ void name::Remove(size_t uiIndex) \ { \ - wxCHECK_RET( uiIndex < Count(), "bad index in " #name "::Remove()" ); \ + wxCHECK_RET( uiIndex < Count(), _T("bad index in " #name "::Remove()") ); \ \ delete (T*)wxBaseArray::Item(uiIndex); \ \ diff --git a/include/wx/string.h b/include/wx/string.h index bbcd039ea3..9ffc9d1a04 100644 --- a/include/wx/string.h +++ b/include/wx/string.h @@ -216,10 +216,11 @@ WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConv_UTF8)) wxConv_UTF8; WXDLLEXPORT_DATA(extern wxANOTHER_MBCONV(wxMBConv_gdk)) wxConv_gdk; #endif +class wxCharacterSet; class WXDLLEXPORT wxCSConv : public wxMBConv { private: - wxChar *data; + wxCharacterSet *cset; public: wxCSConv(const wxChar *charset); virtual ~wxCSConv(void); @@ -227,6 +228,10 @@ class WXDLLEXPORT wxCSConv : public wxMBConv virtual size_t WC2MB(char *buf, const wchar_t *psz, size_t n) const; }; +WXDLLEXPORT_DATA(extern wxCSConv) wxConv_local; + +WXDLLEXPORT_DATA(extern wxMBConv *) wxConv_current; + // filenames are multibyte on Unix and probably widechar on Windows? #ifdef __UNIX__ #define wxMBFILES 1 @@ -450,6 +455,8 @@ public: const wxWCharBuffer wc_str(wxMBConv& conv) const { return conv.cMB2WC(m_pchData); } const wxChar* fn_str() const { return m_pchData; } #endif + // for convenience + const wxWX2MBbuf mbc_str() const { return mb_str(*wxConv_current); } // overloaded assignment // from another wxString