#ifndef _WCHAR_H_ #define _WCHAR_H_ #ifndef DONTHAVECDEFS #include #else #define __BEGIN_DECLS #define __END_DECLS #define __P(args) args #endif #ifdef BSD #if !defined(__FreeBSD__) || (__FreeBSD__ < 5) #include #endif #include #ifndef NULL #define NULL 0 #endif #ifdef _BSD_SIZE_T_ typedef _BSD_SIZE_T_ size_t; #undef _BSD_SIZE_T_ #endif #ifdef _BSD_WCHAR_T_ typedef _BSD_WCHAR_T_ wchar_t; #undef _BSD_WCHAR_T_ #endif #ifdef _BSD_WINT_T_ typedef _BSD_WINT_T_ wint_t; #undef _BSD_WINT_T_ #endif #else #include #define wchar_t unsigned long #endif #define WEOF (0xffffffff) typedef struct { /* for iso2022 and EUC */ int invoke_l; int invoke_r; wchar_t head[4]; } mbstate_t; /* * Functions defined in ISO C standard. (ISO/IEC 9899 AMENDMENT-1) */ __BEGIN_DECLS extern int mbsinit __P((const mbstate_t *)); extern size_t mbrlen __P((const char *, size_t, mbstate_t *)); extern size_t mbrtowc __P((wchar_t *, const char *, size_t, mbstate_t *)); extern size_t wcrtomb __P((char *, const wchar_t, mbstate_t *)); extern int (*_mbsinit_) __P((const mbstate_t *)); extern size_t (*_mbrtowc_) __P((wchar_t *, const char *, size_t, mbstate_t *)); extern size_t (*_wcrtomb_) __P((char *, wchar_t, mbstate_t *)); extern size_t mbsrtowcs __P((wchar_t *, const char *, size_t, mbstate_t *)); extern size_t wcsrtombs __P((char *, const wchar_t *, size_t, mbstate_t *)); __END_DECLS extern unsigned char _mb_cur_max_; #define mbsinit(ps) _mbsinit_(ps) #define mbrlen(s,n,ps) _mbrtowc_(NULL,s,n,ps) #define mbrtowc(pwc,s,n,ps) _mbrtowc_(pwc,s,n,ps) #define wcrtomb(s,wc,ps) _wcrtomb_(s,wc,ps) __BEGIN_DECLS wchar_t *wcscat __P((wchar_t *, const wchar_t *)); wchar_t *wcschr __P((const wchar_t *, const wchar_t)); int wcscmp __P((const wchar_t *, const wchar_t *)); /*int wcscoll __P((const wchar_t *, const wchar_t *));*/ wchar_t *wcscpy __P((wchar_t *, const wchar_t *)); size_t wcscspn __P((const wchar_t *, const wchar_t *)); size_t wcslen __P((const wchar_t *)); wchar_t *wcsncat __P((wchar_t *, const wchar_t *, size_t)); int wcsncmp __P((const wchar_t *, const wchar_t *, size_t)); wchar_t *wcsncpy __P((wchar_t *, const wchar_t *, size_t)); wchar_t *wcspbrk __P((const wchar_t *, const wchar_t *)); wchar_t *wcsrchr __P((const wchar_t *, const wchar_t)); size_t wcsspn __P((const wchar_t *, const wchar_t *)); wchar_t *wcsstr __P((const wchar_t *, const wchar_t *)); wchar_t *wcstok __P((wchar_t *, const wchar_t *)); /*size_t wcsxfrm __P((wchar_t *, const wchar_t *, size_t));*/ __END_DECLS #endif