From ec6f69825afb90658c8b0b227ba25948527e1a82 Mon Sep 17 00:00:00 2001 From: David Webster Date: Tue, 16 Nov 1999 15:49:36 +0000 Subject: [PATCH] Added full UNICODE support for VisualAge C++ for OS/2 V4.0 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@4591 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/wxchar.h | 110 ++++++++++++++++++++++++++++++++++++++++++ src/common/wxchar.cpp | 4 +- 2 files changed, 112 insertions(+), 2 deletions(-) diff --git a/include/wx/wxchar.h b/include/wx/wxchar.h index 2d56328d0a..a4937f65ba 100644 --- a/include/wx/wxchar.h +++ b/include/wx/wxchar.h @@ -183,6 +183,116 @@ typedef _TUCHAR wxUChar; # define wxNEED_WX_STDLIB_H # define wxNEED_WX_TIME_H +// VisualAge C++ V4.0 has broad tchar support +#elif defined(__VISAGECPP__) && __IBMCPP >= 400 + +# define HAVE_WCSLEN 1 + +# include + +# if wxUSE_UNICODE // temporary - preserve binary compatibility +typedef _TCHAR wxChar; +typedef _TSCHAR wxSChar; +typedef _TUCHAR wxUChar; +# else +# define wxChar char +# define wxSChar signed char +# define wxUChar unsigned char +# endif + // wchar_t is available +# undef wxUSE_WCHAR_T +# define wxUSE_WCHAR_T 1 + + // ctype.h functions +# define wxIsalnum _istalnum +# define wxIsalpha _istalpha +# define wxIsctrl _istctrl +# define wxIsdigit _istdigit +# define wxIsgraph _istgraph +# define wxIslower _istlower +# define wxIsprint _istprint +# define wxIspunct _istpunct +# define wxIsspace _istspace +# define wxIsupper _istupper +# define wxIsxdigit _istxdigit +# define wxTolower _totlower +# define wxToupper _totupper + + // locale.h functons +# define wxSetlocale _tsetlocale + + // string.h functions +# define wxStrcat _tcscat +# define wxStrchr _tcschr +# define wxStrcmp _tcscmp +# define wxStrcoll _tcscoll +# define wxStrcpy _tcscpy +# define wxStrcspn _tcscspn +# define wxStrftime _tcsftime +# define wxStricmp _tcsicmp +# define wxStrlen_ _tcslen // used in wxStrlen inline function +# define wxStrncat _tcsncat +# define wxStrncmp _tcsncmp +# define wxStrncpy _tcsncpy +# define wxStrpbrk _tcspbrk +# define wxStrrchr _tcsrchr +# define wxStrspn _tcsspn +# define wxStrstr _tcsstr +# define wxStrtod _tcstod +// is there a _tcstok[_r] ? +# define wxStrtol _tcstol +# define wxStrtoul _tcstoul +# define wxStrxfrm _tcsxfrm + + // stdio.h functions +# define wxFgetc _fgettc +# define wxFgetchar _fgettchar +# define wxFgets _fgetts +# define wxFopen _tfopen +# define wxFputc _fputtc +# define wxFputchar _fputtchar +# define wxFprintf _ftprintf +# define wxFreopen _tfreopen +# define wxFscanf _ftscanf +# define wxGetc _gettc +# define wxGetchar _gettchar +# define wxGets _getts +# define wxPerror _tperror +# define wxPrintf _tprintf +# define wxPutc _puttc +# define wxPutchar _puttchar +# define wxPuts _putts +# define wxRemove _tremove +# define wxRename _trename +# define wxScanf _tscanf +# define wxSprintf _stprintf +# define wxSscanf _stscanf +# define wxTmpnam _ttmpnam +# define wxUngetc _tungetc +# define wxVfprint _vftprintf +# define wxVprintf _vtprintf +# define wxVsscanf _vstscanf +# define wxVsprintf _vstprintf + + // stdlib.h functions +# if !wxUSE_UNICODE +# define wxAtof atof +# endif +# define wxAtoi _ttoi +# define wxAtol _ttol +# define wxGetenv _tgetenv +# define wxSystem _tsystem + + // time.h functions +# define wxAsctime _tasctime +# define wxCtime _tctime + +// #elif defined(XXX) + // #include XXX-specific files here + // typeddef YYY wxChar; + + // translate wxZZZ names + #else//!TCHAR-aware compilers // check whether we should include wchar.h or equivalent diff --git a/src/common/wxchar.cpp b/src/common/wxchar.cpp index 1ef378cda3..baa67e326d 100644 --- a/src/common/wxchar.cpp +++ b/src/common/wxchar.cpp @@ -63,7 +63,7 @@ size_t WXDLLEXPORT wxMB2WC(wchar_t *buf, const char *psz, size_t n) #if wxUSE_WCSRTOMBS // don't know if it's really needed (or if we can pass NULL), but better safe // than quick - mbstate_t mbstate; + mbstate_t mbstate; return mbsrtowcs((wchar_t *) NULL, &psz, 0, &mbstate); #else // !GNU libc return mbstowcs((wchar_t *) NULL, psz, 0); @@ -86,7 +86,7 @@ size_t WXDLLEXPORT wxWC2MB(char *buf, const wchar_t *pwz, size_t n) #if wxUSE_WCSRTOMBS // don't know if it's really needed (or if we can pass NULL), but better safe // than quick - mbstate_t mbstate; + mbstate_t mbstate; return wcsrtombs((char *) NULL, &pwz, 0, &mbstate); #else // !GNU libc return wcstombs((char *) NULL, pwz, 0); -- 2.45.2