/*************************************************************************** * * wchar.h * * $Id: wchar.h 580483 2007-09-28 20:55:52Z sebor $ * *************************************************************************** * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. * * Copyright 1994-2006 Rogue Wave Software. * **************************************************************************/ #include #ifndef _RWSTD_NO_DEPRECATED_C_HEADERS # ifndef _RWSTD_WCHAR_H_INCLUDED # define _RWSTD_WCHAR_H_INCLUDED # include # ifndef _RWSTD_NO_NAMESPACE #ifndef _RWSTD_NO_MBSTATE_T using std::mbstate_t; #endif #ifndef _RWSTD_NO_WINT_T using std::wint_t; #endif using std::size_t; #ifndef _RWSTD_NO_BTOWC using std::btowc; #endif #ifndef _RWSTD_NO_FGETWC using std::fgetwc; #endif #ifndef _RWSTD_NO_FGETWS using std::fgetws; #endif #ifndef _RWSTD_NO_FPUTWC using std::fputwc; #endif #ifndef _RWSTD_NO_FPUTWS using std::fputws; #endif #ifndef _RWSTD_NO_FWPRINTF using std::fwprintf; #endif #ifndef _RWSTD_NO_FWSCANF using std::fwscanf; #endif #ifndef _RWSTD_NO_GETWC using std::getwc; #endif #ifndef _RWSTD_NO_GETWCHAR using std::getwchar; #endif #ifndef _RWSTD_NO_MBRLEN using std::mbrlen; #endif #ifndef _RWSTD_NO_MBRTOWC using std::mbrtowc; #endif #ifndef _RWSTD_NO_MBSINIT using std::mbsinit; #endif #ifndef _RWSTD_NO_MBSRTOWCS using std::mbsrtowcs; #endif #ifndef _RWSTD_NO_PUTWC using std::putwc; #endif #ifndef _RWSTD_NO_PUTWCHAR using std::putwchar; #endif #ifndef _RWSTD_NO_SWPRINTF using std::swprintf; #endif #ifndef _RWSTD_NO_SWSCANF using std::swscanf; #endif #ifndef _RWSTD_NO_UNGETWC using std::ungetwc; #endif #ifndef _RWSTD_NO_VFWPRINTF using std::vfwprintf; #endif #ifndef _RWSTD_NO_VWPRINTF using std::vwprintf; #endif #ifndef _RWSTD_NO_WCRTOMB using std::wcrtomb; #endif #ifndef _RWSTD_NO_WCSCAT using std::wcscat; #endif #ifndef _RWSTD_NO_WCSCHR using std::wcschr; #endif #ifndef _RWSTD_NO_WCSCMP using std::wcscmp; #endif #ifndef _RWSTD_NO_WCSCOLL using std::wcscoll; #endif #ifndef _RWSTD_NO_WCSCPY using std::wcscpy; #endif #ifndef _RWSTD_NO_WCSCSPN using std::wcscspn; #endif #ifndef _RWSTD_NO_WCSLEN using std::wcslen; #endif #ifndef _RWSTD_NO_WCSNCAT using std::wcsncat; #endif #ifndef _RWSTD_NO_WCSNCMP using std::wcsncmp; #endif #ifndef _RWSTD_NO_WCSNCPY using std::wcsncpy; #endif #ifndef _RWSTD_NO_WCSPBRK using std::wcspbrk; #endif #ifndef _RWSTD_NO_WCSRCHR using std::wcsrchr; #endif #ifndef _RWSTD_NO_WCSRTOMBS using std::wcsrtombs; #endif #ifndef _RWSTD_NO_WCSSPN using std::wcsspn; #endif #ifndef _RWSTD_NO_WCSSTR using std::wcsstr; #endif #ifndef _RWSTD_NO_WCSTOD using std::wcstod; #endif #ifndef _RWSTD_NO_WCSTOK using std::wcstok; #endif #ifndef _RWSTD_NO_WCSTOL using std::wcstol; #endif #ifndef _RWSTD_NO_WCSTOUL using std::wcstoul; #endif #ifndef _RWSTD_NO_WCSXFRM using std::wcsxfrm; #endif #ifndef _RWSTD_NO_WCTOB using std::wctob; #endif #ifndef _RWSTD_NO_WMEMCHR using std::wmemchr; #endif #ifndef _RWSTD_NO_WMEMCMP using std::wmemcmp; #endif #ifndef _RWSTD_NO_WMEMCPY using std::wmemcpy; #endif #ifndef _RWSTD_NO_WMEMMOVE using std::wmemmove; #endif #ifndef _RWSTD_NO_WMEMSET using std::wmemset; #endif #ifndef _RWSTD_NO_WPRINTF using std::wprintf; #endif #ifndef _RWSTD_NO_WSCANF using std::wscanf; #endif # endif // _RWSTD_NO_NAMESPACE # endif // _RWSTD_WCHAR_H_INCLUDED #else // if defined (_RWSTD_NO_DEPRECATED_C_HEADERS) # include _RWSTD_ANSI_C_WCHAR_H # include # ifndef WCHAR_MAX # define WCHAR_MAX _RWSTD_WCHAR_MAX # endif # ifndef WCHAR_MIN # define WCHAR_MIN _RWSTD_WCHAR_MIN # endif extern "C" { // add missing declarations for functions known to be defined // in the system libc # if defined (_RWSTD_NO_MBSTATE_T) && defined (_RWSTD_MBSTATE_T) typedef _RWSTD_MBSTATE_T mbstate_t; # endif // _RWSTD_NO_MBSTATE_T && _RWSTD_MBSTATE_T # if defined (_RWSTD_NO_FWPRINTF) && !defined (_RWSTD_NO_FWPRINTF_IN_LIBC) int fwprintf (FILE*, const wchar_t*, ...); # undef _RWSTD_NO_FWPRINTF # endif // _RWSTD_NO_FWPRINTF && !_RWSTD_NO_FWPRINTF_IN_LIBC # if defined (_RWSTD_NO_FWSCANF) && !defined (_RWSTD_NO_FWSCANF_IN_LIBC) int fwscanf (FILE*, const wchar_t*, ...); # undef _RWSTD_NO_FWSCANF # endif // _RWSTD_NO_FWSCANF && !_RWSTD_NO_FWSCANF_IN_LIBC # if defined (_RWSTD_NO_SWPRINTF) && !defined (_RWSTD_NO_SWPRINTF_IN_LIBC) # if !defined (_MSC_VER) // disabled for MSVC to avoid running into its awful declaration hackery int swprintf (wchar_t*, _RWSTD_SIZE_T, const wchar_t*, ...); # endif // !MSVC # undef _RWSTD_NO_SWPRINTF # endif // _RWSTD_NO_SWPRINTF && !_RWSTD_NO_SWPRINTF_IN_LIBC # if defined (_RWSTD_NO_SWSCANF) && !defined (_RWSTD_NO_SWSCANF_IN_LIBC) int swscanf (const wchar_t*, const wchar_t*, ...); # undef _RWSTD_NO_SWSCANF # endif // _RWSTD_NO_SWSCANF && !_RWSTD_NO_SWSCANF_IN_LIBC # ifdef _RWSTD_VA_LIST # if defined (_RWSTD_NO_VFWPRINTF) && !defined (_RWSTD_NO_VFWPRINTF_IN_LIBC) int vfwprintf (FILE*, const wchar_t*, _RWSTD_VA_LIST); # undef _RWSTD_NO_VFWPRINTF # endif // _RWSTD_NO_VFWPRINTF && !_RWSTD_NO_VFWPRINTF_IN_LIBC # if defined (_RWSTD_NO_VFWSCANF) && !defined (_RWSTD_NO_VFWSCANF_IN_LIBC) int vfwscanf (FILE*, const wchar_t*, _RWSTD_VA_LIST); # undef _RWSTD_NO_VFWSCANF # endif // _RWSTD_NO_VFWSCANF && !_RWSTD_NO_VFWSCANF_IN_LIBC # if defined (_RWSTD_NO_VWPRINTF) && !defined (_RWSTD_NO_VWPRINTF_IN_LIBC) int vwprintf (const wchar_t*, _RWSTD_VA_LIST); # undef _RWSTD_NO_VWPRINTF # endif // _RWSTD_NO_VWPRINTF && !_RWSTD_NO_VWPRINTF_IN_LIBC # if defined (_RWSTD_NO_VWSCANF) && !defined (_RWSTD_NO_VWSCANF_IN_LIBC) int vwscanf (const wchar_t*, _RWSTD_VA_LIST); # undef _RWSTD_NO_VWSCANF # endif // _RWSTD_NO_VWSCANF && !_RWSTD_NO_VWSCANF_IN_LIBC # endif // _RWSTD_VA_LIST # if defined (_RWSTD_NO_MBRLEN) && !defined (_RWSTD_NO_MBRLEN_IN_LIBC) _RWSTD_SIZE_T mbrlen (const char*, _RWSTD_SIZE_T, _RWSTD_MBSTATE_T*); # undef _RWSTD_NO_MBRLEN # endif // _RWSTD_NO_MBRLEN && !_RWSTD_NO_MBRLEN_IN_LIBC # if defined (_RWSTD_NO_MBRTOWC) && !defined (_RWSTD_NO_MBRTOWC_IN_LIBC) _RWSTD_SIZE_T mbrtowc (wchar_t*, const char*, _RWSTD_SIZE_T, _RWSTD_MBSTATE_T*); # undef _RWSTD_NO_MBRTOWC # endif // _RWSTD_NO_MBRTOWC && !_RWSTD_NO_MBRTOWC_IN_LIBC # if defined (_RWSTD_NO_MBSINIT) && !defined (_RWSTD_NO_MBSINIT_IN_LIBC) int mbsinit (const _RWSTD_MBSTATE_T*); # undef _RWSTD_NO_MBSINIT # endif // _RWSTD_NO_MBSINIT && !_RWSTD_NO_MBSINIT_IN_LIBC # if defined (_RWSTD_NO_MBSRTOWCS) && !defined (_RWSTD_NO_MBSRTOWCS_IN_LIBC) _RWSTD_SIZE_T mbsrtowcs (const wchar_t*, const char**, _RWSTD_SIZE_T, _RWSTD_MBSTATE_T*); # undef _RWSTD_NO_MBSRTOWCS # endif // _RWSTD_NO_MBSRTOWCS && !_RWSTD_NO_MBSRTOWCS_IN_LIBC # if defined (_RWSTD_NO_WCRTOMB) && !defined (_RWSTD_NO_WCRTOMB_IN_LIBC) _RWSTD_SIZE_T wcrtomb (char*, wchar_t, _RWSTD_MBSTATE_T*); # undef _RWSTD_NO_WCRTOMB # endif // _RWSTD_NO_WCRTOMB && !_RWSTD_NO_WCRTOMB_IN_LIBC # if defined (_RWSTD_NO_WCSRTOMBS) && !defined (_RWSTD_NO_WCSRTOMBS_IN_LIBC) _RWSTD_SIZE_T wcsrtombs (char*, const char**, _RWSTD_SIZE_T, _RWSTD_MBSTATE_T*); # undef _RWSTD_NO_WCSRTOMBS # endif // _RWSTD_NO_WCSRTOMBS && !_RWSTD_NO_WCSRTOMBS_IN_LIBC # if defined (_RWSTD_NO_WCSCHR) && !defined (_RWSTD_NO_WCSCHR_IN_LIBC) wchar_t* wcschr (wchar_t*, wchar_t); } // extern "C" inline const wchar_t* wcschr (const wchar_t *__s, wchar_t __c) { return wcschr (_RWSTD_CONST_CAST (wchar_t*, __s), __c); } extern "C" { # undef _RWSTD_NO_WCSCHR # endif // _RWSTD_NO_WCSCHR && !_RWSTD_NO_WCSCHR_IN_LIBC # if defined (_RWSTD_NO_WCSRCHR) && !defined (_RWSTD_NO_WCSRCHR_IN_LIBC) wchar_t* wcsrchr (wchar_t*, wchar_t); } // extern "C" inline const wchar_t* wcsrchr (const wchar_t *__s, wchar_t __c) { return wcsrchr (_RWSTD_CONST_CAST (wchar_t*, __s), __c); } extern "C" { # undef _RWSTD_NO_WCSCHR # endif // _RWSTD_NO_WCSCHR && !_RWSTD_NO_WCSCHR_IN_LIBC # if defined (_RWSTD_NO_WCSSTR) && !defined (_RWSTD_NO_WCSSTR_IN_LIBC) wchar_t* wcsstr (wchar_t*, const wchar_t*); } // extern "C" inline const wchar_t* wcsstr (const wchar_t *__s1, const wchar_t *__s2) { return wcsstr (_RWSTD_CONST_CAST (wchar_t*, __s1), __s2); } extern "C" { # undef _RWSTD_NO_WCSSTR # endif // _RWSTD_NO_WCSSTR && !_RWSTD_NO_WCSSTR_IN_LIBC # if defined (_RWSTD_NO_WMEMCHR) && !defined (_RWSTD_NO_WMEMCHR_IN_LIBC) wchar_t* wmemchr (wchar_t*, wchar_t, _RWSTD_SIZE_T); } // extern "C" inline const wchar_t* wmemchr (const wchar_t *__s, wchar_t __c, _RWSTD_SIZE_T __n) { return wmemchr (_RWSTD_CONST_CAST (wchar_t*, __s), __c, __n); } extern "C" { # undef _RWSTD_NO_WMEMCHR # endif // _RWSTD_NO_WMEMCHR && !_RWSTD_NO_WMEMCHR_IN_LIBC # if defined (_RWSTD_NO_WMEMCMP) && !defined (_RWSTD_NO_WMEMCMP_IN_LIBC) int wmemcmp (const wchar_t*, const wchar_t*, _RWSTD_SIZE_T); # undef _RWSTD_NO_WMEMCMP # endif // _RWSTD_NO_WMEMCMP && !_RWSTD_NO_WMEMCMP_IN_LIBC # if defined (_RWSTD_NO_WMEMCPY) && !defined (_RWSTD_NO_WMEMCPY_IN_LIBC) wchar_t* wmemcpy (wchar_t*, const wchar_t*, _RWSTD_SIZE_T); # undef _RWSTD_NO_WMEMCPY # endif // _RWSTD_NO_WMEMCPY && !_RWSTD_NO_WMEMCPY_IN_LIBC # if defined (_RWSTD_NO_WMEMMOVE) && !defined (_RWSTD_NO_WMEMMOVE_IN_LIBC) wchar_t* wmemmove (wchar_t*, const wchar_t*, _RWSTD_SIZE_T); # undef _RWSTD_NO_WMEMMOVE # endif // _RWSTD_NO_WMEMMOVE && !_RWSTD_NO_WMEMMOVE_IN_LIBC # if defined (_RWSTD_NO_WMEMSET) && !defined (_RWSTD_NO_WMEMSET_IN_LIBC) wchar_t* wmemset (wchar_t*, wchar_t, _RWSTD_SIZE_T); # undef _RWSTD_NO_WMEMSET # endif // _RWSTD_NO_WMEMSET && !_RWSTD_NO_WMEMSET_IN_LIBC # if defined (_RWSTD_NO_WPRINTF) && !defined (_RWSTD_NO_WPRINTF_IN_LIBC) int wprintf (const wchar_t*, ...); # undef _RWSTD_NO_WPRINTF # endif // _RWSTD_NO_WPRINTF && !_RWSTD_NO_WPRINTF_IN_LIBC # if defined (_RWSTD_NO_WSCANF) && !defined (_RWSTD_NO_WSCANF_IN_LIBC) int wscanf (const wchar_t*, ...); # undef _RWSTD_NO_WSCANF # endif // _RWSTD_NO_WSCANF && !_RWSTD_NO_WSCANF_IN_LIBC # if defined (_RWSTD_NO_WCTOB) && !defined (_RWSTD_NO_WCTOB_IN_LIBC) int wctob (_RWSTD_WINT_T); # undef _RWSTD_NO_WCTOB # endif // _RWSTD_NO_WCTOB && !_RWSTD_NO_WCTOB_IN_LIBC } // extern "C" #endif // _RWSTD_NO_DEPRECATED_C_HEADERS