]> git.saurik.com Git - apple/libc.git/blobdiff - include/wchar.h
Libc-594.9.5.tar.gz
[apple/libc.git] / include / wchar.h
index 40d2112c5662f52dc5677610a13f6440af2aa744..0c5fc1e948874302b00a66962de0e3168bb11426 100644 (file)
 #ifndef _WCHAR_H_
 #define _WCHAR_H_
 
-#include <sys/cdefs.h>
-#include <sys/types.h>
-#include <stdarg.h>
+#include <_types.h>
 
 #ifndef NULL
-#define        NULL    0
-#endif
+#define        NULL    __DARWIN_NULL
+#endif /* ! NULL */
 
-#ifndef        _BSD_SIZE_T_DEFINED_
-#define        _BSD_SIZE_T_DEFINED_
-typedef        _BSD_SIZE_T_    size_t;
+#ifndef        _SIZE_T
+#define        _SIZE_T
+typedef        __darwin_size_t         size_t;
 #endif
 
-#ifndef        _BSD_MBSTATE_T_DEFINED_
-#define        _BSD_MBSTATE_T_DEFINED_
-typedef        _BSD_MBSTATE_T_ mbstate_t;
+#ifndef        _MBSTATE_T
+#define        _MBSTATE_T
+typedef        __darwin_mbstate_t      mbstate_t;
 #endif
 
-#ifndef        _BSD_CT_RUNE_T_DEFINED_
-#define _BSD_CT_RUNE_T_DEFINED_
-typedef        _BSD_CT_RUNE_T_ ct_rune_t;
+#ifndef        _CT_RUNE_T
+#define _CT_RUNE_T
+typedef        __darwin_ct_rune_t      ct_rune_t;
 #endif
 
-#ifndef        _BSD_RUNE_T_DEFINED_
-#define _BSD_RUNE_T_DEFINED_
-typedef        _BSD_RUNE_T_    rune_t;
+#ifndef        _RUNE_T
+#define _RUNE_T
+typedef        __darwin_rune_t         rune_t;
 #endif
 
 #ifndef        __cplusplus
-#ifndef        _BSD_WCHAR_T_DEFINED_
-#define        _BSD_WCHAR_T_DEFINED_
-#ifdef __WCHAR_TYPE__
-typedef        __WCHAR_TYPE__  wchar_t;
-#else  /* ! __WCHAR_TYPE__ */
-typedef        _BSD_WCHAR_T_   wchar_t;
-#endif /* __WCHAR_TYPE__ */
-#endif /* _BSD_WCHAR_T_DEFINED_ */
+#ifndef        _WCHAR_T
+#define        _WCHAR_T
+typedef        __darwin_wchar_t        wchar_t;
+#endif /* _WCHAR_T */
 #endif /* __cplusplus */
 
-#ifndef        _BSD_WINT_T_DEFINED_
-#define _BSD_WINT_T_DEFINED_
-typedef        _BSD_WINT_T_    wint_t;
-#endif
-
-#ifndef WEOF
-#define        WEOF    ((wint_t)-1)
-#endif
-
 #ifndef WCHAR_MIN
-#define WCHAR_MIN      0
+#define WCHAR_MIN      __DARWIN_WCHAR_MIN
 #endif
 
 #ifndef WCHAR_MAX
-#ifdef __WCHAR_MAX__
-#define WCHAR_MAX      __WCHAR_MAX__
-#else /* ! __WCHAR_MAX__ */
-#define WCHAR_MAX      0x7fffffff
-#endif /* __WCHAR_MAX__ */
+#define WCHAR_MAX      __DARWIN_WCHAR_MAX
 #endif
 
-struct __sFILE;
-struct tm;
+#include <stdarg.h>
+#include <stdio.h>
+#include <time.h>
+#include <_wctype.h>
 
 __BEGIN_DECLS
 wint_t btowc(int);
-wint_t fgetwc(struct __sFILE *);
-wchar_t        *fgetws(wchar_t * __restrict, int, struct __sFILE * __restrict);
-wint_t fputwc(wchar_t, struct __sFILE *);
-int    fputws(const wchar_t * __restrict, struct __sFILE * __restrict);
-int    fwide(struct __sFILE *, int);
-int    fwprintf(struct __sFILE * __restrict, const wchar_t * __restrict, ...);
-int    fwscanf(struct __sFILE * __restrict, const wchar_t * __restrict, ...);
-wint_t getwc(struct __sFILE *);
+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);
+int    fwide(FILE *, int);
+int    fwprintf(FILE * __restrict, const wchar_t * __restrict, ...) __DARWIN_LDBL_COMPAT(fwprintf);
+int    fwscanf(FILE * __restrict, const wchar_t * __restrict, ...) __DARWIN_LDBL_COMPAT(fwscanf);
+wint_t getwc(FILE *);
 wint_t getwchar(void);
 size_t mbrlen(const char * __restrict, size_t, mbstate_t * __restrict);
 size_t mbrtowc(wchar_t * __restrict, const char * __restrict, size_t,
@@ -147,17 +130,17 @@ size_t    mbrtowc(wchar_t * __restrict, const char * __restrict, size_t,
 int    mbsinit(const mbstate_t *);
 size_t mbsrtowcs(wchar_t * __restrict, const char ** __restrict, size_t,
            mbstate_t * __restrict);
-wint_t putwc(wchar_t, struct __sFILE *);
+wint_t putwc(wchar_t, FILE *);
 wint_t putwchar(wchar_t);
-int    swprintf(wchar_t * __restrict, size_t n, const wchar_t * __restrict,
-           ...);
-int    swscanf(const wchar_t * __restrict, const wchar_t * __restrict, ...);
-wint_t ungetwc(wint_t, struct __sFILE *);
-int    vfwprintf(struct __sFILE * __restrict, const wchar_t * __restrict,
-           _BSD_VA_LIST_);
-int    vswprintf(wchar_t * __restrict, size_t n, const wchar_t * __restrict,
-           _BSD_VA_LIST_);
-int    vwprintf(const wchar_t * __restrict, _BSD_VA_LIST_);
+int    swprintf(wchar_t * __restrict, size_t, const wchar_t * __restrict,
+           ...) __DARWIN_LDBL_COMPAT(swprintf);
+int    swscanf(const wchar_t * __restrict, const wchar_t * __restrict, ...) __DARWIN_LDBL_COMPAT(swscanf);
+wint_t ungetwc(wint_t, FILE *);
+int    vfwprintf(FILE * __restrict, const wchar_t * __restrict,
+           __darwin_va_list) __DARWIN_LDBL_COMPAT(vfwprintf);
+int    vswprintf(wchar_t * __restrict, size_t, const wchar_t * __restrict,
+           __darwin_va_list) __DARWIN_LDBL_COMPAT(vswprintf);
+int    vwprintf(const wchar_t * __restrict, __darwin_va_list) __DARWIN_LDBL_COMPAT(vwprintf);
 size_t wcrtomb(char * __restrict, wchar_t, mbstate_t * __restrict);
 wchar_t        *wcscat(wchar_t * __restrict, const wchar_t * __restrict);
 wchar_t        *wcschr(const wchar_t *, wchar_t);
@@ -165,8 +148,17 @@ 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);
 size_t wcscspn(const wchar_t *, const wchar_t *);
+//Begin-Libc
+#ifndef LIBC_ALIAS_WCSFTIME
+//End-Libc
 size_t wcsftime(wchar_t * __restrict, size_t, const wchar_t * __restrict,
-           const struct tm * __restrict);
+           const struct tm * __restrict) __DARWIN_ALIAS(wcsftime);
+//Begin-Libc
+#else /* LIBC_ALIAS_WCSFTIME */
+size_t wcsftime(wchar_t * __restrict, size_t, const wchar_t * __restrict,
+           const struct tm * __restrict) LIBC_ALIAS(wcsftime);
+#endif /* !LIBC_ALIAS_WCSFTIME */
+//End-Libc
 size_t wcslen(const wchar_t *);
 wchar_t        *wcsncat(wchar_t * __restrict, const wchar_t * __restrict, size_t);
 int    wcsncmp(const wchar_t *, const wchar_t *, size_t);
@@ -190,27 +182,45 @@ 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);
 wchar_t        *wmemset(wchar_t *, wchar_t, size_t);
-int    wprintf(const wchar_t * __restrict, ...);
-int    wscanf(const wchar_t * __restrict, ...);
+int    wprintf(const wchar_t * __restrict, ...) __DARWIN_LDBL_COMPAT(wprintf);
+int    wscanf(const wchar_t * __restrict, ...) __DARWIN_LDBL_COMPAT(wscanf);
 
 #if !defined(_ANSI_SOURCE)
-int    vfwscanf(struct __sFILE * __restrict, const wchar_t * __restrict,
-           _BSD_VA_LIST_);
+int    vfwscanf(FILE * __restrict, const wchar_t * __restrict,
+           __darwin_va_list) __DARWIN_LDBL_COMPAT(vfwscanf);
 int    vswscanf(const wchar_t * __restrict, const wchar_t * __restrict,
-           _BSD_VA_LIST_);
-int    vwscanf(const wchar_t * __restrict, _BSD_VA_LIST_);
+           __darwin_va_list) __DARWIN_LDBL_COMPAT(vswscanf);
+int    vwscanf(const wchar_t * __restrict, __darwin_va_list) __DARWIN_LDBL_COMPAT(vwscanf);
 float  wcstof(const wchar_t * __restrict, wchar_t ** __restrict);
 long double
-       wcstold(const wchar_t * __restrict, wchar_t ** __restrict);
+       wcstold(const wchar_t * __restrict, wchar_t ** __restrict) __DARWIN_LDBL_COMPAT(wcstold);
+#if !__DARWIN_NO_LONG_LONG
 long long
        wcstoll(const wchar_t * __restrict, wchar_t ** __restrict, int);
 unsigned long long
        wcstoull(const wchar_t * __restrict, wchar_t ** __restrict, int);
+#endif /* !__DARWIN_NO_LONG_LONG */
 int    wcswidth(const wchar_t *, size_t);
 int    wcwidth(wchar_t);
+#endif /* !defined(_ANSI_SOURCE) */
+
+#if !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE))
+size_t mbsnrtowcs(wchar_t * __restrict, const char ** __restrict, size_t,
+           size_t, mbstate_t * __restrict);
 size_t wcslcat(wchar_t *, const wchar_t *, size_t);
 size_t wcslcpy(wchar_t *, const wchar_t *, size_t);
-#endif /* !defined(_ANSI_SOURCE) */
+size_t wcsnrtombs(char * __restrict, const wchar_t ** __restrict, size_t,
+           size_t, mbstate_t * __restrict);
+#endif /* !defined(_ANSI_SOURCE) && (!defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)) */
+
+/* Poison the following routines if -fshort-wchar is set */
+#if !defined(__cplusplus) && defined(__WCHAR_MAX__) && __WCHAR_MAX__ <= 0xffffU
+#pragma GCC poison fgetws fputwc fputws fwprintf fwscanf mbrtowc mbsnrtowcs mbsrtowcs putwc putwchar swprintf swscanf vfwprintf vfwscanf vswprintf vswscanf vwprintf vwscanf wcrtomb wcscat wcschr wcscmp wcscoll wcscpy wcscspn wcsftime wcsftime wcslcat wcslcpy wcslen wcsncat wcsncmp wcsncpy wcsnrtombs wcspbrk wcsrchr wcsrtombs wcsspn wcsstr wcstod wcstof wcstok wcstol wcstold wcstoll wcstoul wcstoull wcswidth wcsxfrm wcwidth wmemchr wmemcmp wmemcpy wmemmove wmemset wprintf wscanf
+#endif
 __END_DECLS
 
+#ifdef _USE_EXTENDED_LOCALES_
+#include <xlocale/_wchar.h>
+#endif /* _USE_EXTENDED_LOCALES_ */
+
 #endif /* !_WCHAR_H_ */