2  * © Portions copyright (c) 2006-2007 Nokia Corporation.  All rights reserved.
 
     7  * This material is provided "as is", with absolutely no warranty expressed
 
     8  * or implied. Any use is at your own risk.
 
    10  * Permission to use or copy this software for any purpose is hereby granted 
 
    11  * without fee, provided the above notices are retained on all copies.
 
    12  * Permission to modify the code and to distribute modified code is granted,
 
    13  * provided the above notices are retained, and a notice that the code was
 
    14  * modified is included with the above copyright notice.
 
    21 # ifndef _STLP_OUTERMOST_HEADER_ID
 
    22 #  define _STLP_OUTERMOST_HEADER_ID 0x120
 
    23 #  include <stl/_prolog.h>
 
    30 # if ! defined (_STLP_WINCE)
 
    32 # if defined (__BORLANDC__) &&  (__BORLANDC__ >= 0x530 ) && ! defined (_STLP_OWN_IOSTREAMS)
 
    33 /*  Borland defines this stuff here */
 
    37 # if !  defined (_STLP_NO_CWCHAR) && defined  (_STLP_USE_NEW_C_HEADERS)
 
    38 #  include _STLP_NATIVE_CPP_C_HEADER(cwchar)
 
    40 # elif defined (__MRC__) || (defined (__SC__) && !defined (__DMC__)) || defined (__BORLANDC__) || defined(__FreeBSD__) || (defined (__GNUC__) && defined (__APPLE__) || defined( __Lynx__ )) || defined (__SYMBIAN32__) || defined (__WINS__) || defined (_STLP_NO_WCHAR_T)
 
    45 # include _STLP_NATIVE_C_HEADER(stddef.h)
 
    47 #  if defined (__FreeBSD__) || defined (__Lynx__) || defined (__WINS__) || defined (__SYMBIAN32__)
 
    52 # include _STLP_NATIVE_C_HEADER(wchar.h)
 
    59 #  include _STLP_NATIVE_C_HEADER(wchar.h)
 
    61 #  if defined(__sun) && (defined(_XOPEN_SOURCE) || (_XOPEN_VERSION - 0 == 4))
 
    62 extern wint_t   btowc();
 
    63 extern int      fwprintf();
 
    67 extern size_t   mbrlen();
 
    68 extern size_t   mbrtowc();
 
    69 extern size_t   mbsrtowcs();
 
    70 extern int      swprintf();
 
    72 extern int      vfwprintf();
 
    73 extern int      vwprintf();
 
    74 extern int      vswprintf();
 
    75 extern size_t   wcrtomb();
 
    76 extern size_t   wcsrtombs();
 
    77 extern wchar_t  *wcsstr();
 
    79 extern wchar_t  *wmemchr();
 
    81 extern wchar_t  *wmemcpy();
 
    82 extern wchar_t  *wmemmove();
 
    83 extern wchar_t  *wmemset();
 
    89 #if defined(__MSL__) && __MSL__ <= 0x51FF	/* dwa 2/28/99 - not yet implemented by MSL  */
 
    90 #   define _STLP_WCHAR_MSL_EXCLUDE 1
 
    93   extern "C" size_t wcsftime(wchar_t * str, size_t max_size, const wchar_t * format_str, const struct tm * timeptr);
 
    95 #  define _STLP_NO_MBSTATE_T 1
 
    96 #elif defined (__BORLANDC__)
 
    97 #  ifdef _STLP_OWN_IOSTREAMS
 
    98 #   define _STLP_NO_NATIVE_MBSTATE_T
 
   100 #  define _STLP_WCHAR_BORLAND_EXCLUDE 1
 
   101 #  if (__BORLANDC__ < 0x540 )
 
   102 #   define _STLP_NO_MBSTATE_T 1
 
   103 #   define _STLP_WCHAR_SUNPRO_EXCLUDE
 
   107 #ifndef _STLP_CWCHAR_H
 
   108 # include <stl/_cwchar.h>
 
   111 # ifdef _STLP_IMPORT_VENDOR_CSTD
 
   113 #if defined (__SUNPRO_CC) && defined (_STLP_NO_OWN_IOSTREAMS) && !defined (_STLP_HAS_NO_NEW_C_HEADERS)
 
   114 using _STLP_VENDOR_CSTD::wint_t; 
 
   117 _STLP_BEGIN_NAMESPACE
 
   118 # ifdef _STLP_NO_WCHAR_T
 
   121 // gcc 3.0 has a glitch : wint_t only sucked into the global namespace if _GLIBCPP_USE_WCHAR_T is defined
 
   122 #  if defined (__GNUC__) && ! defined (_GLIBCPP_USE_WCHAR_T)
 
   125 using _STLP_VENDOR_CSTD::wint_t;
 
   130 using _STLP_VENDOR_CSTD::size_t;
 
   132 #  if !defined (_STLP_NO_NATIVE_MBSTATE_T) && ! defined (_STLP_USE_OWN_MBSTATE_T)
 
   133 using _STLP_VENDOR_MB_NAMESPACE::mbstate_t;
 
   135 # if !defined (_STLP_NO_CSTD_FUNCTION_IMPORTS) && !defined(_STLP_WCHAR_BORLAND_EXCLUDE) \
 
   136   && (!defined(__MSL__) || __MSL__ > 0x6001)
 
   137 #  if ! (defined (__KCC) || defined (__GNUC__))
 
   138 using _STLP_VENDOR_MB_NAMESPACE::btowc;
 
   139 #   if (!defined(__MSL__) || __MSL__ > 0x7001)
 
   140 using _STLP_VENDOR_MB_NAMESPACE::mbsinit;
 
   143 # if ! defined (__GNUC__)
 
   144 using _STLP_VENDOR_MB_NAMESPACE::mbrlen;
 
   145 using _STLP_VENDOR_MB_NAMESPACE::mbrtowc;
 
   146 using _STLP_VENDOR_MB_NAMESPACE::mbsrtowcs;
 
   147 using _STLP_VENDOR_MB_NAMESPACE::wcrtomb;
 
   148 using _STLP_VENDOR_MB_NAMESPACE::wcsrtombs;
 
   150 #    endif /* BORLAND && !__MSL__ || __MSL__ > 0x6001 */
 
   152 #  endif /* _STLP_NO_NATIVE_MBSTATE_T */
 
   154 # if !defined (_STLP_NO_NATIVE_WIDE_FUNCTIONS) && ! defined (_STLP_NO_CSTD_FUNCTION_IMPORTS)
 
   156 # if !defined (_STLP_WCHAR_BORLAND_EXCLUDE) && ! defined (_STLP_NO_CSTD_FUNCTION_IMPORTS)
 
   157 using _STLP_VENDOR_CSTD::fgetwc;
 
   158 using _STLP_VENDOR_CSTD::fgetws;
 
   159 using _STLP_VENDOR_CSTD::fputwc;
 
   160 using _STLP_VENDOR_CSTD::fputws;
 
   163 #  if !( defined (_STLP_WCHAR_SUNPRO_EXCLUDE) || defined (_STLP_WCHAR_BORLAND_EXCLUDE) \
 
   164       || defined(_STLP_WCHAR_HPACC_EXCLUDE) )
 
   166 using _STLP_VENDOR_CSTD::fwide;
 
   168 using _STLP_VENDOR_CSTD::fwprintf;
 
   169 using _STLP_VENDOR_CSTD::fwscanf;
 
   170 using _STLP_VENDOR_CSTD::getwchar;
 
   173 # ifndef _STLP_WCHAR_BORLAND_EXCLUDE
 
   174 using _STLP_VENDOR_CSTD::getwc;
 
   175 using _STLP_VENDOR_CSTD::ungetwc;
 
   177 using _STLP_VENDOR_CSTD::putwc;
 
   178 using _STLP_VENDOR_CSTD::putwchar;
 
   181 #  if !( defined (_STLP_WCHAR_SUNPRO_EXCLUDE) || defined (_STLP_WCHAR_BORLAND_EXCLUDE)\
 
   182       || defined(_STLP_WCHAR_HPACC_EXCLUDE) ) 
 
   183 using _STLP_VENDOR_CSTD::swprintf;
 
   184 using _STLP_VENDOR_CSTD::swscanf;
 
   185 using _STLP_VENDOR_CSTD::vfwprintf;
 
   186 using _STLP_VENDOR_CSTD::vwprintf;
 
   187 using _STLP_VENDOR_CSTD::vswprintf;
 
   189 #   if !defined(__MSL__) || __MSL__ > 0x7001
 
   190 using _STLP_VENDOR_CSTD::wcsftime;
 
   192 using _STLP_VENDOR_CSTD::wcstok;
 
   196 # if !(defined (__BORLANDC__) && (__BORLANDC__ < 0x540))
 
   197 using _STLP_VENDOR_CSTD::wcscat;
 
   198 using _STLP_VENDOR_CSTD::wcsrchr;
 
   199 using _STLP_VENDOR_CSTD::wcscmp;
 
   200 using _STLP_VENDOR_CSTD::wcscoll;
 
   202 using _STLP_VENDOR_CSTD::wcscpy;
 
   203 using _STLP_VENDOR_CSTD::wcscspn;
 
   205 using _STLP_VENDOR_CSTD::wcslen;
 
   206 using _STLP_VENDOR_CSTD::wcsncat;
 
   207 using _STLP_VENDOR_CSTD::wcsncmp;
 
   208 using _STLP_VENDOR_CSTD::wcsncpy;
 
   209 using _STLP_VENDOR_CSTD::wcspbrk;
 
   210 using _STLP_VENDOR_CSTD::wcschr;
 
   212 using _STLP_VENDOR_CSTD::wcsspn;
 
   213 using _STLP_VENDOR_CSTD::wcsxfrm;
 
   217 #  if !defined (_STLP_WCHAR_BORLAND_EXCLUDE)
 
   219 using _STLP_VENDOR_CSTD::wcstod;
 
   220 using _STLP_VENDOR_CSTD::wcstol;
 
   224 #  if !( defined (_STLP_WCHAR_SUNPRO_EXCLUDE) || defined(_STLP_WCHAR_HPACC_EXCLUDE) )
 
   226 using _STLP_VENDOR_CSTD::wcsstr;
 
   227 using _STLP_VENDOR_CSTD::wmemchr;
 
   229 #  if !defined (_STLP_WCHAR_BORLAND_EXCLUDE)
 
   232 using _STLP_VENDOR_CSTD::wctob;
 
   233 using _STLP_VENDOR_CSTD::wmemcmp;
 
   235 using _STLP_VENDOR_CSTD::wmemmove;
 
   236 using _STLP_VENDOR_CSTD::wprintf;
 
   237 using _STLP_VENDOR_CSTD::wscanf;
 
   241 using _STLP_VENDOR_CSTD::wmemcpy;
 
   242 using _STLP_VENDOR_CSTD::wmemset;
 
   245 # endif /* _STLP_NO_NATIVE_WIDE_FUNCTIONS */
 
   247 # endif /* _STLP_IMPORT_VENDOR_CSTD */
 
   249 # undef _STLP_WCHAR_SUNPRO_EXCLUDE
 
   250 # undef _STLP_WCHAR_MSL_EXCLUDE
 
   254 # if (_STLP_OUTERMOST_HEADER_ID == 0x120)
 
   255 #  include <stl/_epilog.h>
 
   256 #  undef _STLP_OUTERMOST_HEADER_ID
 
   259 #endif /* _STLP_CWCHAR */