|
- #ifndef _WCHAR_H_
- #define _WCHAR_H_
-
- #include <_ansi.h>
-
- #include <sys/reent.h>
-
- #define __need_size_t
- #define __need_wchar_t
- #define __need_wint_t
- #define __need_NULL
- #include <stddef.h>
-
- /* For _mbstate_t definition. */
- #include <sys/_types.h>
- #include <sys/cdefs.h>
- /* For __STDC_ISO_10646__ */
- #include <sys/features.h>
-
- /* typedef only __gnuc_va_list, used throughout the header */
- #define __need___va_list
- #include <stdarg.h>
-
- /* typedef va_list only when required */
- #if __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE
- #ifdef __GNUC__
- #ifndef _VA_LIST_DEFINED
- typedef __gnuc_va_list va_list;
- #define _VA_LIST_DEFINED
- #endif
- #else /* !__GNUC__ */
- #include <stdarg.h>
- #endif
- #endif /* __POSIX_VISIBLE >= 200809 || __XSI_VISIBLE */
-
- #if __XSI_VISIBLE /* && __XSI_VISIBLE < 800 */ && !__GNU_VISIBLE
- #include <wctype.h>
- #endif
-
- #ifndef WEOF
- # define WEOF ((wint_t)-1)
- #endif
-
- /* This must match definition in <stdint.h> */
- #ifndef WCHAR_MIN
- #ifdef __WCHAR_MIN__
- #define WCHAR_MIN __WCHAR_MIN__
- #elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0)
- #define WCHAR_MIN (0 + L'\0')
- #else
- #define WCHAR_MIN (-0x7fffffff - 1 + L'\0')
- #endif
- #endif
-
- /* This must match definition in <stdint.h> */
- #ifndef WCHAR_MAX
- #ifdef __WCHAR_MAX__
- #define WCHAR_MAX __WCHAR_MAX__
- #elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0)
- #define WCHAR_MAX (0xffffffffu + L'\0')
- #else
- #define WCHAR_MAX (0x7fffffff + L'\0')
- #endif
- #endif
-
- #if __POSIX_VISIBLE >= 200809
- #include <sys/_locale.h>
- #endif
-
- _BEGIN_STD_C
-
- #if __POSIX_VISIBLE >= 200809 || _XSI_VISIBLE
- /* As in stdio.h, <sys/reent.h> defines __FILE. */
- #if !defined(__FILE_defined)
- typedef __FILE FILE;
- # define __FILE_defined
- #endif
- #endif
-
- /* As required by POSIX.1-2008, declare tm as incomplete type.
- The actual definition is in time.h. */
- struct tm;
-
- #ifndef _MBSTATE_T
- #define _MBSTATE_T
- typedef _mbstate_t mbstate_t;
- #endif /* _MBSTATE_T */
-
- wint_t btowc (int);
- int wctob (wint_t);
- size_t mbrlen (const char *__restrict, size_t, mbstate_t *__restrict);
- size_t mbrtowc (wchar_t *__restrict, const char *__restrict, size_t,
- mbstate_t *__restrict);
- size_t _mbrtowc_r (struct _reent *, wchar_t * , const char * ,
- size_t, mbstate_t *);
- int mbsinit (const mbstate_t *);
- #if __POSIX_VISIBLE >= 200809
- size_t mbsnrtowcs (wchar_t *__restrict, const char **__restrict,
- size_t, size_t, mbstate_t *__restrict);
- #endif
- size_t _mbsnrtowcs_r (struct _reent *, wchar_t * , const char ** ,
- size_t, size_t, mbstate_t *);
- size_t mbsrtowcs (wchar_t *__restrict, const char **__restrict, size_t,
- mbstate_t *__restrict);
- size_t _mbsrtowcs_r (struct _reent *, wchar_t * , const char ** , size_t, mbstate_t *);
- size_t wcrtomb (char *__restrict, wchar_t, mbstate_t *__restrict);
- size_t _wcrtomb_r (struct _reent *, char * , wchar_t, mbstate_t *);
- #if __POSIX_VISIBLE >= 200809
- size_t wcsnrtombs (char *__restrict, const wchar_t **__restrict,
- size_t, size_t, mbstate_t *__restrict);
- #endif
- size_t _wcsnrtombs_r (struct _reent *, char * , const wchar_t ** ,
- size_t, size_t, mbstate_t *);
- size_t wcsrtombs (char *__restrict, const wchar_t **__restrict,
- size_t, mbstate_t *__restrict);
- size_t _wcsrtombs_r (struct _reent *, char * , const wchar_t ** ,
- size_t, mbstate_t *);
- #if __POSIX_VISIBLE >= 200809
- int wcscasecmp (const wchar_t *, const wchar_t *);
- #endif
- wchar_t *wcscat (wchar_t *__restrict, const wchar_t *__restrict);
- wchar_t *wcschr (const wchar_t *, wchar_t);
- int wcscmp (const wchar_t *, const wchar_t *);
- int wcscoll (const wchar_t *, const wchar_t *);
- wchar_t *wcscpy (wchar_t *__restrict, const wchar_t *__restrict);
- #if __POSIX_VISIBLE >= 200809
- wchar_t *wcpcpy (wchar_t *__restrict,
- const wchar_t *__restrict);
- wchar_t *wcsdup (const wchar_t *) __malloc_like __result_use_check;
- #endif
- wchar_t *_wcsdup_r (struct _reent *, const wchar_t * );
- size_t wcscspn (const wchar_t *, const wchar_t *);
- size_t wcsftime (wchar_t *__restrict, size_t,
- const wchar_t *__restrict, const struct tm *__restrict);
- #if __GNU_VISIBLE
- size_t wcsftime_l (wchar_t *__restrict, size_t, const wchar_t *__restrict,
- const struct tm *__restrict, locale_t);
- #endif
- size_t wcslcat (wchar_t *, const wchar_t *, size_t);
- size_t wcslcpy (wchar_t *, const wchar_t *, size_t);
- size_t wcslen (const wchar_t *);
- #if __POSIX_VISIBLE >= 200809
- int wcsncasecmp (const wchar_t *, const wchar_t *, size_t);
- #endif
- wchar_t *wcsncat (wchar_t *__restrict,
- const wchar_t *__restrict, size_t);
- int wcsncmp (const wchar_t *, const wchar_t *, size_t);
- wchar_t *wcsncpy (wchar_t *__restrict,
- const wchar_t *__restrict, size_t);
- #if __POSIX_VISIBLE >= 200809
- wchar_t *wcpncpy (wchar_t *__restrict,
- const wchar_t *__restrict, size_t);
- size_t wcsnlen (const wchar_t *, size_t);
- #endif
- wchar_t *wcspbrk (const wchar_t *, const wchar_t *);
- wchar_t *wcsrchr (const wchar_t *, wchar_t);
- size_t wcsspn (const wchar_t *, const wchar_t *);
- wchar_t *wcsstr (const wchar_t *__restrict,
- const wchar_t *__restrict);
- wchar_t *wcstok (wchar_t *__restrict, const wchar_t *__restrict,
- wchar_t **__restrict);
- double wcstod (const wchar_t *__restrict, wchar_t **__restrict);
- double _wcstod_r (struct _reent *, const wchar_t *, wchar_t **);
- #if __ISO_C_VISIBLE >= 1999
- float wcstof (const wchar_t *__restrict, wchar_t **__restrict);
- #endif
- float _wcstof_r (struct _reent *, const wchar_t *, wchar_t **);
- #if __XSI_VISIBLE
- int wcswidth (const wchar_t *, size_t);
- #endif
- size_t wcsxfrm (wchar_t *__restrict, const wchar_t *__restrict,
- size_t);
- #if __POSIX_VISIBLE >= 200809
- extern int wcscasecmp_l (const wchar_t *, const wchar_t *, locale_t);
- extern int wcsncasecmp_l (const wchar_t *, const wchar_t *, size_t, locale_t);
- extern int wcscoll_l (const wchar_t *, const wchar_t *, locale_t);
- extern size_t wcsxfrm_l (wchar_t *__restrict, const wchar_t *__restrict, size_t,
- locale_t);
- #endif
-
- #if __XSI_VISIBLE
- int wcwidth (const wchar_t);
- #endif
- wchar_t *wmemchr (const wchar_t *, wchar_t, size_t);
- int wmemcmp (const wchar_t *, const wchar_t *, size_t);
- wchar_t *wmemcpy (wchar_t *__restrict, const wchar_t *__restrict,
- size_t);
- wchar_t *wmemmove (wchar_t *, const wchar_t *, size_t);
- #if __GNU_VISIBLE
- wchar_t *wmempcpy (wchar_t *__restrict, const wchar_t *__restrict,
- size_t);
- #endif
- wchar_t *wmemset (wchar_t *, wchar_t, size_t);
-
- long wcstol (const wchar_t *__restrict, wchar_t **__restrict, int);
- #if __ISO_C_VISIBLE >= 1999
- long long wcstoll (const wchar_t *__restrict, wchar_t **__restrict,
- int);
- #endif
- unsigned long wcstoul (const wchar_t *__restrict, wchar_t **__restrict,
- int);
- #if __ISO_C_VISIBLE >= 1999
- unsigned long long wcstoull (const wchar_t *__restrict,
- wchar_t **__restrict, int);
- #endif
- long _wcstol_r (struct _reent *, const wchar_t *, wchar_t **, int);
- long long _wcstoll_r (struct _reent *, const wchar_t *, wchar_t **, int);
- unsigned long _wcstoul_r (struct _reent *, const wchar_t *, wchar_t **, int);
- unsigned long long _wcstoull_r (struct _reent *, const wchar_t *, wchar_t **, int);
- #if __ISO_C_VISIBLE >= 1999
- long double wcstold (const wchar_t *, wchar_t **);
- #endif
-
- #if __GNU_VISIBLE
- long wcstol_l (const wchar_t *__restrict, wchar_t **__restrict, int, locale_t);
- long long wcstoll_l (const wchar_t *__restrict, wchar_t **__restrict, int,
- locale_t);
- unsigned long wcstoul_l (const wchar_t *__restrict, wchar_t **__restrict, int,
- locale_t);
- unsigned long long wcstoull_l (const wchar_t *__restrict, wchar_t **__restrict,
- int, locale_t);
- double wcstod_l (const wchar_t *, wchar_t **, locale_t);
- float wcstof_l (const wchar_t *, wchar_t **, locale_t);
- long double wcstold_l (const wchar_t *, wchar_t **, locale_t);
- #endif
-
- wint_t fgetwc (__FILE *);
- wchar_t *fgetws (wchar_t *__restrict, int, __FILE *__restrict);
- wint_t fputwc (wchar_t, __FILE *);
- int fputws (const wchar_t *__restrict, __FILE *__restrict);
- #if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500
- int fwide (__FILE *, int);
- #endif
- wint_t getwc (__FILE *);
- wint_t getwchar (void);
- wint_t putwc (wchar_t, __FILE *);
- wint_t putwchar (wchar_t);
- wint_t ungetwc (wint_t wc, __FILE *);
-
- wint_t _fgetwc_r (struct _reent *, __FILE *);
- wint_t _fgetwc_unlocked_r (struct _reent *, __FILE *);
- wchar_t *_fgetws_r (struct _reent *, wchar_t *, int, __FILE *);
- wchar_t *_fgetws_unlocked_r (struct _reent *, wchar_t *, int, __FILE *);
- wint_t _fputwc_r (struct _reent *, wchar_t, __FILE *);
- wint_t _fputwc_unlocked_r (struct _reent *, wchar_t, __FILE *);
- int _fputws_r (struct _reent *, const wchar_t *, __FILE *);
- int _fputws_unlocked_r (struct _reent *, const wchar_t *, __FILE *);
- int _fwide_r (struct _reent *, __FILE *, int);
- wint_t _getwc_r (struct _reent *, __FILE *);
- wint_t _getwc_unlocked_r (struct _reent *, __FILE *);
- wint_t _getwchar_r (struct _reent *ptr);
- wint_t _getwchar_unlocked_r (struct _reent *ptr);
- wint_t _putwc_r (struct _reent *, wchar_t, __FILE *);
- wint_t _putwc_unlocked_r (struct _reent *, wchar_t, __FILE *);
- wint_t _putwchar_r (struct _reent *, wchar_t);
- wint_t _putwchar_unlocked_r (struct _reent *, wchar_t);
- wint_t _ungetwc_r (struct _reent *, wint_t wc, __FILE *);
-
- #if __GNU_VISIBLE
- wint_t fgetwc_unlocked (__FILE *);
- wchar_t *fgetws_unlocked (wchar_t *__restrict, int, __FILE *__restrict);
- wint_t fputwc_unlocked (wchar_t, __FILE *);
- int fputws_unlocked (const wchar_t *__restrict, __FILE *__restrict);
- wint_t getwc_unlocked (__FILE *);
- wint_t getwchar_unlocked (void);
- wint_t putwc_unlocked (wchar_t, __FILE *);
- wint_t putwchar_unlocked (wchar_t);
- #endif
-
- #if __POSIX_VISIBLE >= 200809
- __FILE *open_wmemstream (wchar_t **, size_t *);
- #endif
- __FILE *_open_wmemstream_r (struct _reent *, wchar_t **, size_t *);
-
- #ifndef __VALIST
- #ifdef __GNUC__
- #define __VALIST __gnuc_va_list
- #else
- #define __VALIST char*
- #endif
- #endif
-
- #if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500
- int fwprintf (__FILE *__restrict, const wchar_t *__restrict, ...);
- int swprintf (wchar_t *__restrict, size_t,
- const wchar_t *__restrict, ...);
- int vfwprintf (__FILE *__restrict, const wchar_t *__restrict,
- __VALIST);
- int vswprintf (wchar_t *__restrict, size_t,
- const wchar_t *__restrict, __VALIST);
- int vwprintf (const wchar_t *__restrict, __VALIST);
- int wprintf (const wchar_t *__restrict, ...);
- #endif
-
- int _fwprintf_r (struct _reent *, __FILE *, const wchar_t *, ...);
- int _swprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, ...);
- int _vfwprintf_r (struct _reent *, __FILE *, const wchar_t *, __VALIST);
- int _vswprintf_r (struct _reent *, wchar_t *, size_t, const wchar_t *, __VALIST);
- int _vwprintf_r (struct _reent *, const wchar_t *, __VALIST);
- int _wprintf_r (struct _reent *, const wchar_t *, ...);
-
- #if __ISO_C_VISIBLE >= 1999 || __XSI_VISIBLE >= 500
- int fwscanf (__FILE *__restrict, const wchar_t *__restrict, ...);
- int swscanf (const wchar_t *__restrict,
- const wchar_t *__restrict, ...);
- int vfwscanf (__FILE *__restrict, const wchar_t *__restrict,
- __VALIST);
- int vswscanf (const wchar_t *__restrict, const wchar_t *__restrict,
- __VALIST);
- int vwscanf (const wchar_t *__restrict, __VALIST);
- int wscanf (const wchar_t *__restrict, ...);
- #endif
-
- int _fwscanf_r (struct _reent *, __FILE *, const wchar_t *, ...);
- int _swscanf_r (struct _reent *, const wchar_t *, const wchar_t *, ...);
- int _vfwscanf_r (struct _reent *, __FILE *, const wchar_t *, __VALIST);
- int _vswscanf_r (struct _reent *, const wchar_t *, const wchar_t *, __VALIST);
- int _vwscanf_r (struct _reent *, const wchar_t *, __VALIST);
- int _wscanf_r (struct _reent *, const wchar_t *, ...);
-
- #define getwc(fp) fgetwc(fp)
- #define putwc(wc,fp) fputwc((wc), (fp))
- #define getwchar() fgetwc(_REENT->_stdin)
- #define putwchar(wc) fputwc((wc), _REENT->_stdout)
-
- #if __GNU_VISIBLE
- #define getwc_unlocked(fp) fgetwc_unlocked(fp)
- #define putwc_unlocked(wc,fp) fputwc_unlocked((wc), (fp))
- #define getwchar_unlocked() fgetwc_unlocked(_REENT->_stdin)
- #define putwchar_unlocked(wc) fputwc_unlocked((wc), _REENT->_stdout)
- #endif
-
- _END_STD_C
-
- #if __SSP_FORTIFY_LEVEL > 0
- #include <ssp/wchar.h>
- #endif
-
- #endif /* _WCHAR_H_ */
|