X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4c709bdd6aa001dced03811d4084e11cc9ecea96..da8b1d4b3b535aba94d04494f5b6e2b3e47901ee:/include/wx/wxcrt.h?ds=sidebyside diff --git a/include/wx/wxcrt.h b/include/wx/wxcrt.h index aa89d04d4b..b99543cf3b 100644 --- a/include/wx/wxcrt.h +++ b/include/wx/wxcrt.h @@ -82,7 +82,7 @@ inline bool wxIsEmpty(const wxCStrData& s) { return s.AsString().empty(); } for(;l && *s != c;--l, ++s) {} if(l) - return (wxChar*)s; + return const_cast(s); return NULL; } @@ -611,20 +611,20 @@ inline const char *wxStrrchr(const char *s, char c) { return wxCRT_StrrchrA(s, c); } inline const wchar_t *wxStrrchr(const wchar_t *s, wchar_t c) { return wxCRT_StrrchrW(s, c); } -inline const char *wxStrchr(const char *s, const wxUniChar& c) - { return wxCRT_StrchrA(s, (char)c); } +inline const char *wxStrchr(const char *s, const wxUniChar& uc) + { char c; return uc.GetAsChar(&c) ? wxCRT_StrchrA(s, c) : NULL; } inline const wchar_t *wxStrchr(const wchar_t *s, const wxUniChar& c) { return wxCRT_StrchrW(s, (wchar_t)c); } -inline const char *wxStrrchr(const char *s, const wxUniChar& c) - { return wxCRT_StrrchrA(s, (char)c); } +inline const char *wxStrrchr(const char *s, const wxUniChar& uc) + { char c; return uc.GetAsChar(&c) ? wxCRT_StrrchrA(s, c) : NULL; } inline const wchar_t *wxStrrchr(const wchar_t *s, const wxUniChar& c) { return wxCRT_StrrchrW(s, (wchar_t)c); } -inline const char *wxStrchr(const char *s, const wxUniCharRef& c) - { return wxCRT_StrchrA(s, (char)c); } +inline const char *wxStrchr(const char *s, const wxUniCharRef& uc) + { char c; return uc.GetAsChar(&c) ? wxCRT_StrchrA(s, c) : NULL; } inline const wchar_t *wxStrchr(const wchar_t *s, const wxUniCharRef& c) { return wxCRT_StrchrW(s, (wchar_t)c); } -inline const char *wxStrrchr(const char *s, const wxUniCharRef& c) - { return wxCRT_StrrchrA(s, (char)c); } +inline const char *wxStrrchr(const char *s, const wxUniCharRef& uc) + { char c; return uc.GetAsChar(&c) ? wxCRT_StrrchrA(s, c) : NULL; } inline const wchar_t *wxStrrchr(const wchar_t *s, const wxUniCharRef& c) { return wxCRT_StrrchrW(s, (wchar_t)c); } template @@ -655,14 +655,14 @@ inline const char* wxStrchr(const wxString& s, int c) { return wxCRT_StrchrA((const char*)s.c_str(), c); } inline const char* wxStrrchr(const wxString& s, int c) { return wxCRT_StrrchrA((const char*)s.c_str(), c); } -inline const char* wxStrchr(const wxString& s, const wxUniChar& c) - { return wxCRT_StrchrA((const char*)s.c_str(), (char)c); } -inline const char* wxStrrchr(const wxString& s, const wxUniChar& c) - { return wxCRT_StrrchrA((const char*)s.c_str(), (char)c); } -inline const char* wxStrchr(const wxString& s, const wxUniCharRef& c) - { return wxCRT_StrchrA((const char*)s.c_str(), (char)c); } -inline const char* wxStrrchr(const wxString& s, const wxUniCharRef& c) - { return wxCRT_StrrchrA((const char*)s.c_str(), (char)c); } +inline const char* wxStrchr(const wxString& s, const wxUniChar& uc) + { char c; return uc.GetAsChar(&c) ? wxCRT_StrchrA(s.c_str(), c) : NULL; } +inline const char* wxStrrchr(const wxString& s, const wxUniChar& uc) + { char c; return uc.GetAsChar(&c) ? wxCRT_StrrchrA(s.c_str(), c) : NULL; } +inline const char* wxStrchr(const wxString& s, const wxUniCharRef& uc) + { char c; return uc.GetAsChar(&c) ? wxCRT_StrchrA(s.c_str(), c) : NULL; } +inline const char* wxStrrchr(const wxString& s, const wxUniCharRef& uc) + { char c; return uc.GetAsChar(&c) ? wxCRT_StrrchrA(s.c_str(), c) : NULL; } inline const wchar_t* wxStrchr(const wxString& s, wchar_t c) { return wxCRT_StrchrW((const wchar_t*)s.c_str(), c); } inline const wchar_t* wxStrrchr(const wxString& s, wchar_t c) @@ -675,14 +675,14 @@ inline const char* wxStrchr(const wxCStrData& s, int c) { return wxCRT_StrchrA(s.AsChar(), c); } inline const char* wxStrrchr(const wxCStrData& s, int c) { return wxCRT_StrrchrA(s.AsChar(), c); } -inline const char* wxStrchr(const wxCStrData& s, const wxUniChar& c) - { return wxCRT_StrchrA(s.AsChar(), (char)c); } -inline const char* wxStrrchr(const wxCStrData& s, const wxUniChar& c) - { return wxCRT_StrrchrA(s.AsChar(), (char)c); } -inline const char* wxStrchr(const wxCStrData& s, const wxUniCharRef& c) - { return wxCRT_StrchrA(s.AsChar(), (char)c); } -inline const char* wxStrrchr(const wxCStrData& s, const wxUniCharRef& c) - { return wxCRT_StrrchrA(s.AsChar(), (char)c); } +inline const char* wxStrchr(const wxCStrData& s, const wxUniChar& uc) + { char c; return uc.GetAsChar(&c) ? wxCRT_StrchrA(s, c) : NULL; } +inline const char* wxStrrchr(const wxCStrData& s, const wxUniChar& uc) + { char c; return uc.GetAsChar(&c) ? wxCRT_StrrchrA(s, c) : NULL; } +inline const char* wxStrchr(const wxCStrData& s, const wxUniCharRef& uc) + { char c; return uc.GetAsChar(&c) ? wxCRT_StrchrA(s, c) : NULL; } +inline const char* wxStrrchr(const wxCStrData& s, const wxUniCharRef& uc) + { char c; return uc.GetAsChar(&c) ? wxCRT_StrrchrA(s, c) : NULL; } inline const wchar_t* wxStrchr(const wxCStrData& s, wchar_t c) { return wxCRT_StrchrW(s.AsWChar(), c); } inline const wchar_t* wxStrrchr(const wxCStrData& s, wchar_t c) @@ -724,30 +724,30 @@ inline const T *wxStrpbrk(const S& s, const wxScopedCharTypeBuffer& accept) /* inlined non-const versions */ template inline char *wxStrstr(char *haystack, T needle) - { return (char *)wxStrstr((const char *)haystack, needle); } + { return const_cast(wxStrstr(const_cast(haystack), needle)); } template inline wchar_t *wxStrstr(wchar_t *haystack, T needle) - { return (wchar_t *)wxStrstr((const wchar_t *)haystack, needle); } + { return const_cast(wxStrstr(const_cast(haystack), needle)); } template inline char * wxStrchr(char *s, T c) - { return (char *)wxStrchr((const char *)s, c); } + { return const_cast(wxStrchr(const_cast(s), c)); } template -inline char * wxStrchr(wchar_t *s, T c) - { return (char *)wxStrchr((const wchar_t *)s, c); } +inline wchar_t * wxStrchr(wchar_t *s, T c) + { return (wchar_t *)wxStrchr((const wchar_t *)s, c); } template inline char * wxStrrchr(char *s, T c) - { return (char *)wxStrrchr((const char *)s, c); } + { return const_cast(wxStrrchr(const_cast(s), c)); } template -inline char * wxStrrchr(wchar_t *s, T c) - { return (char *)wxStrrchr((const wchar_t *)s, c); } +inline wchar_t * wxStrrchr(wchar_t *s, T c) + { return const_cast(wxStrrchr(const_cast(s), c)); } template inline char * wxStrpbrk(char *s, T accept) - { return (char *)wxStrpbrk((const char *)s, accept); } + { return const_cast(wxStrpbrk(const_cast(s), accept)); } template inline wchar_t * wxStrpbrk(wchar_t *s, T accept) - { return (wchar_t *)wxStrpbrk((const wchar_t *)s, accept); } + { return const_cast(wxStrpbrk(const_cast(s), accept)); } // ----------------------------------------------------------------------------