X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/7e38638c3499c679f25ec0029931aad8e62e70d3..8f4745feeb2850f3bebb3af45407e164550d541a:/src/common/wxcrt.cpp diff --git a/src/common/wxcrt.cpp b/src/common/wxcrt.cpp index 9bd6305307..bd30db8770 100644 --- a/src/common/wxcrt.cpp +++ b/src/common/wxcrt.cpp @@ -65,9 +65,9 @@ using namespace std ; #endif #if defined(__DARWIN__) - #include "wx/mac/corefoundation/cfref.h" + #include "wx/osx/core/cfref.h" #include - #include "wx/mac/corefoundation/cfstring.h" + #include "wx/osx/core/cfstring.h" #include #endif @@ -99,9 +99,9 @@ WXDLLIMPEXP_BASE size_t wxMB2WC(wchar_t *buf, const char *psz, size_t n) // support it (the only currently known example being Metrowerks, see // wx/crt.h) we don't use its mbstowcs() at all #ifdef HAVE_WCSRTOMBS - return mbsrtowcs((wchar_t *) NULL, &psz, 0, &mbstate); + return mbsrtowcs(NULL, &psz, 0, &mbstate); #else - return wxMbstowcs((wchar_t *) NULL, psz, 0); + return wxMbstowcs(NULL, psz, 0); #endif } @@ -126,9 +126,9 @@ WXDLLIMPEXP_BASE size_t wxWC2MB(char *buf, const wchar_t *pwz, size_t n) } #ifdef HAVE_WCSRTOMBS - return wcsrtombs((char *) NULL, &pwz, 0, &mbstate); + return wcsrtombs(NULL, &pwz, 0, &mbstate); #else - return wxWcstombs((char *) NULL, pwz, 0); + return wxWcstombs(NULL, pwz, 0); #endif } #endif // wxUSE_WCHAR_T @@ -304,7 +304,7 @@ static int vswscanf(const wchar_t *ws, const wchar_t *format, va_list argptr) wxCHECK_MSG( wxStrstr(format, _T("%c")) == NULL, -1, _T("incomplete vswscanf implementation doesn't allow %c") ); - return vsscanf(wx_static_cast(const char*, wxConvLibc.cWX2MB(ws)), + return vsscanf(static_cast(wxConvLibc.cWX2MB(ws)), wxConvLibc.cWX2MB(format), argptr); } #endif @@ -796,6 +796,42 @@ WXDLLIMPEXP_BASE wchar_t * wxCRT_StrdupW(const wchar_t *pwz) } #endif // wxCRT_StrdupW +#ifndef wxWCHAR_T_IS_WXCHAR16 +size_t wxStrlen(const wxChar16 *s ) +{ + if (!s) return 0; + size_t i=0; + while (*s!=0) { ++i; ++s; }; + return i; +} + +wxChar16* wxStrdup(const wxChar16* s) +{ + size_t size = (wxStrlen(s) + 1) * sizeof(wxChar16); + wxChar16 *ret = (wxChar16*) malloc(size); + memcpy(ret, s, size); + return ret; +} +#endif + +#ifndef wxWCHAR_T_IS_WXCHAR32 +size_t wxStrlen(const wxChar32 *s ) +{ + if (!s) return 0; + size_t i=0; + while (*s!=0) { ++i; ++s; }; + return i; +} + +wxChar32* wxStrdup(const wxChar32* s) +{ + size_t size = (wxStrlen(s) + 1) * sizeof(wxChar32); + wxChar32 *ret = (wxChar32*) malloc(size); + memcpy(ret, s, size); + return ret; +} +#endif + #ifndef wxCRT_StricmpA WXDLLIMPEXP_BASE int wxCRT_StricmpA(const char *psz1, const char *psz2) { @@ -875,7 +911,7 @@ WXDLLIMPEXP_BASE wchar_t* wxCRT_GetenvW(const wchar_t *name) // NB: buffer returned by getenv() is allowed to be overwritten next // time getenv() is called, so it is OK to use static string // buffer to hold the data. - static wxWCharBuffer value((wchar_t*)NULL); + static wxWCharBuffer value; value = wxConvLibc.cMB2WC(getenv(wxConvLibc.cWC2MB(name))); return value.data(); } @@ -1079,15 +1115,15 @@ static T *wxCRT_DoStrtok(T *psz, const T *delim, T **save_ptr) psz += wxStrspn(psz, delim); if (!*psz) { - *save_ptr = (T *)NULL; - return (T *)NULL; + *save_ptr = NULL; + return NULL; } T *ret = psz; psz = wxStrpbrk(psz, delim); if (!psz) { - *save_ptr = (T*)NULL; + *save_ptr = NULL; } else { @@ -1275,15 +1311,15 @@ int wxVsscanf(const char *str, const char *format, va_list ap) int wxVsscanf(const wchar_t *str, const wchar_t *format, va_list ap) { return wxCRT_VsscanfW(str, format, ap); } int wxVsscanf(const wxCharBuffer& str, const char *format, va_list ap) - { return wxCRT_VsscanfA(wx_static_cast(const char*, str), format, ap); } + { return wxCRT_VsscanfA(static_cast(str), format, ap); } int wxVsscanf(const wxWCharBuffer& str, const wchar_t *format, va_list ap) { return wxCRT_VsscanfW(str, format, ap); } int wxVsscanf(const wxString& str, const char *format, va_list ap) - { return wxCRT_VsscanfA(wx_static_cast(const char*, str.mb_str()), format, ap); } + { return wxCRT_VsscanfA(static_cast(str.mb_str()), format, ap); } int wxVsscanf(const wxString& str, const wchar_t *format, va_list ap) { return wxCRT_VsscanfW(str.wc_str(), format, ap); } int wxVsscanf(const wxCStrData& str, const char *format, va_list ap) - { return wxCRT_VsscanfA(wx_static_cast(const char*, str.AsCharBuf()), format, ap); } + { return wxCRT_VsscanfA(static_cast(str.AsCharBuf()), format, ap); } int wxVsscanf(const wxCStrData& str, const wchar_t *format, va_list ap) { return wxCRT_VsscanfW(str.AsWCharBuf(), format, ap); } #endif // HAVE_NO_VSSCANF