]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/wxchar.h
added (and documented) trivial but useful IsSingleLine() and IsMultiLine() text contr...
[wxWidgets.git] / include / wx / wxchar.h
index 1174ddb2871c073f41a2316e5f352544ad20a652..68d1a6a1ba2fd32767f6386c0b437f3c10ebce28 100644 (file)
@@ -69,6 +69,9 @@
         #include <string.h>
         #include <ctype.h>
     #elif defined(__CYGWIN__)
+        #ifndef HAVE_WCSLEN
+            #define HAVE_WCSLEN
+        #endif // !HAVE_WCSLEN
         #include <stddef.h>
         #include <wchar.h>
     #endif
@@ -201,6 +204,13 @@ typedef  _TUCHAR     wxUChar;
 
    // stdio.h functions
 #ifndef wxNO_TCHAR_STDIO
+#  if wxUSE_UNICODE_MSLU
+#    define  wxRemove    wxMSLU__tremove
+#    define  wxRename    wxMSLU__trename
+#  else
+#    define  wxRemove    _tremove
+#    define  wxRename    _trename
+#  endif
 #  define  wxFgetc     _fgettc
 #  define  wxFgetchar  _fgettchar
 #  define  wxFgets     _fgetts
@@ -218,8 +228,6 @@ typedef  _TUCHAR     wxUChar;
 #  define  wxPutc      _puttc
 #  define  wxPutchar   _puttchar
 #  define  wxPuts      _putts
-#  define  wxRemove    _tremove
-#  define  wxRename    _trename
 #  define  wxScanf     _tscanf
 #  define  wxSprintf   _stprintf
 #  define  wxSscanf    _stscanf
@@ -287,29 +295,26 @@ typedef  _TUCHAR     wxUChar;
 #    elif defined(__VISAGECPP__) && (__IBMCPP__ < 400)
 #      define wxUSE_WCHAR_T 0
 #    else
-  // add additional compiler checks if this fails
+       // add additional compiler checks if this fails
 #      define wxUSE_WCHAR_T 1
 #    endif
 #  endif // !defined(wxUSE_WCHAR_T)
 
-#  if wxUSE_WCHAR_T
-#    ifdef HAVE_WCSTR_H
-#      include <wcstr.h>
-#    else
-#      if defined(HAVE_WCHAR_H)
-
-// include wchar.h to get wcslen() declaration used by wx/buffer.h
-#        include <wchar.h>
-
-#      elif defined(__FreeBSD__) || defined(__DARWIN__)
-
-// include stdlib.h for wchar_t, wcslen is provided in wxchar.cpp
-#        include <stdlib.h>
-size_t   WXDLLEXPORT wcslen(const wchar_t *s);
-
-#      endif
-#    endif
-#  endif
+#   if wxUSE_WCHAR_T
+#       ifdef HAVE_WCHAR_H
+            // include wchar.h to get wcslen() declaration used by wx/buffer.h
+            // stddef.h is needed for Cygwin
+#           include <stddef.h>
+#           include <wchar.h>
+#       elif defined(HAVE_WCSTR_H)
+            // old compilers have wcslen() here
+#           include <wcstr.h>
+#       elif defined(__FreeBSD__) || defined(__DARWIN__) || defined(__EMX__)
+            // include stdlib.h for wchar_t, wcslen is provided in wxchar.cpp
+#           include <stdlib.h>
+            size_t WXDLLEXPORT wcslen(const wchar_t *s);
+#       endif // HAVE_WCHAR_H
+#   endif // wxUSE_WCHAR_T
 
 // check whether we are doing Unicode
 #  if wxUSE_UNICODE
@@ -382,15 +387,9 @@ typedef unsigned __WCHAR_TYPE__ wxUChar;
 #    include <ctype.h>
 #    include <string.h>
 
-#   if 0 // temporary - preserve binary compatibilty
-        typedef char            wxChar;
-        typedef signed char     wxSChar;
-        typedef unsigned char   wxUChar;
-#   else
-#     define wxChar char
-#     define wxSChar signed char
-#     define wxUChar unsigned char
-#   endif
+    typedef char            wxChar;
+    typedef signed char     wxSChar;
+    typedef unsigned char   wxUChar;
 
 #   if defined(__FreeBSD__) || defined(__DARWIN__)
 #     undef _T
@@ -466,7 +465,9 @@ typedef unsigned __WCHAR_TYPE__ wxUChar;
 #    define  wxStrcoll   strcoll
 #    define  wxStrcpy    strcpy
 #    define  wxStrcspn   strcspn
+#if !defined(__MWERKS__) || !defined(__WXMAC__)
 #    define  wxStrdup    strdup
+#endif
 #    define  wxStrlen_   strlen // used in wxStrlen inline function
 #    define  wxStrncat   strncat
 #    define  wxStrncmp   strncmp
@@ -607,7 +608,9 @@ WXDLLEXPORT int wxToupper(wxChar ch);
 
 #ifdef wxNEED_WX_STRING_H
 WXDLLEXPORT wxChar * wxStrcat(wxChar *dest, const wxChar *src);
-WXDLLEXPORT wxChar * wxStrchr(const wxChar *s, wxChar c);
+WXDLLEXPORT const wxChar * wxStrchr(const wxChar *s, wxChar c);
+WXDLLEXPORT wxChar * wxStrchr(wxChar *s, wxChar c)
+    { return (wxChar *)wxStrchr((const wxChar *)s, c); }
 WXDLLEXPORT int      wxStrcmp(const wxChar *s1, const wxChar *s2);
 WXDLLEXPORT int      wxStrcoll(const wxChar *s1, const wxChar *s2);
 WXDLLEXPORT wxChar * wxStrcpy(wxChar *dest, const wxChar *src);
@@ -616,10 +619,16 @@ WXDLLEXPORT size_t   wxStrlen(const wxChar *s);
 WXDLLEXPORT wxChar * wxStrncat(wxChar *dest, const wxChar *src, size_t n);
 WXDLLEXPORT int      wxStrncmp(const wxChar *s1, const wxChar *s2, size_t n);
 WXDLLEXPORT wxChar * wxStrncpy(wxChar *dest, const wxChar *src, size_t n);
-WXDLLEXPORT wxChar * wxStrpbrk(const wxChar *s, const wxChar *accept);
-WXDLLEXPORT wxChar * wxStrrchr(const wxChar *s, wxChar c);
+WXDLLEXPORT const wxChar * wxStrpbrk(const wxChar *s, const wxChar *accept);
+WXDLLEXPORT wxChar * wxStrpbrk(wxChar *s, const wxChar *accept)
+    { return (wxChar *)wxStrpbrk((const wxChar *)s, accept); }
+WXDLLEXPORT const wxChar * wxStrrchr(const wxChar *s, wxChar c);
+WXDLLEXPORT wxChar * wxStrrchr(wxChar *s, wxChar c)
+    { return (wxChar *)wxStrrchr((const wxChar *)s, c); }
 WXDLLEXPORT size_t   wxStrspn(const wxChar *s, const wxChar *accept);
-WXDLLEXPORT wxChar * wxStrstr(const wxChar *haystack, const wxChar *needle);
+WXDLLEXPORT const wxChar * wxStrstr(const wxChar *haystack, const wxChar *needle);
+WXDLLEXPORT wxChar *wxStrstr(wxChar *haystack, const wxChar *needle)
+    { return (wxChar *)wxStrstr((const wxChar *)haystack, needle); }
 WXDLLEXPORT double   wxStrtod(const wxChar *nptr, wxChar **endptr);
 WXDLLEXPORT long int wxStrtol(const wxChar *nptr, wxChar **endptr, int base);
 WXDLLEXPORT unsigned long int wxStrtoul(const wxChar *nptr, wxChar **endptr, int base);
@@ -633,13 +642,13 @@ WXDLLEXPORT FILE *   wxFopen(const wxChar *path, const wxChar *mode);
 WXDLLEXPORT FILE *   wxFreopen(const wxChar *path, const wxChar *mode, FILE *stream);
 WXDLLEXPORT int      wxRemove(const wxChar *path);
 WXDLLEXPORT int      wxRename(const wxChar *oldpath, const wxChar *newpath);
-WXDLLEXPORT int      wxPrintf(const wxChar *fmt, ...);
+WXDLLEXPORT int      wxPrintf(const wxChar *fmt, ...) ATTRIBUTE_PRINTF_1;
 WXDLLEXPORT int      wxVprintf(const wxChar *fmt, va_list argptr);
-WXDLLEXPORT int      wxFprintf(FILE *stream, const wxChar *fmt, ...);
+WXDLLEXPORT int      wxFprintf(FILE *stream, const wxChar *fmt, ...) ATTRIBUTE_PRINTF_2;
 WXDLLEXPORT int      wxVfprintf(FILE *stream, const wxChar *fmt, va_list argptr);
-WXDLLEXPORT int      wxSprintf(wxChar *buf, const wxChar *fmt, ...);
+WXDLLEXPORT int      wxSprintf(wxChar *buf, const wxChar *fmt, ...) ATTRIBUTE_PRINTF_2;
 WXDLLEXPORT int      wxVsprintf(wxChar *buf, const wxChar *fmt, va_list argptr);
-WXDLLEXPORT int      wxSscanf(const wxChar *buf, const wxChar *fmt, ...);
+WXDLLEXPORT int      wxSscanf(const wxChar *buf, const wxChar *fmt, ...) ATTRIBUTE_PRINTF_2;
 WXDLLEXPORT int      wxVsscanf(const wxChar *buf, const wxChar *fmt, va_list argptr);
 #endif