1da2e3ebdSchinset prototyped 2*b30d1939SAndy Fiddamaniff 3*b30d1939SAndy Fiddamanset stdio ast_common.h 4*b30d1939SAndy Fiddamanset include . 5*b30d1939SAndy Fiddaman 6*b30d1939SAndy Fiddamancat{ 7*b30d1939SAndy Fiddaman #ifndef _AST_WCHAR_H 8*b30d1939SAndy Fiddaman #define _AST_WCHAR_H 1 9*b30d1939SAndy Fiddaman}end 10*b30d1939SAndy Fiddaman 11da2e3ebdSchinlib mbstowcs,wctomb,wcrtomb,wcslen,wcstombs,wcwidth stdlib.h stdio.h wchar.h 12da2e3ebdSchinlib towlower,towupper stdlib.h stdio.h wchar.h 13da2e3ebdSchintyp mbstate_t stdlib.h stdio.h wchar.h 14da2e3ebdSchinnxt wchar 15da2e3ebdSchin 16*b30d1939SAndy Fiddamancat{ 17da2e3ebdSchin #ifndef _SFSTDIO_H 18da2e3ebdSchin #include <ast_common.h> 19da2e3ebdSchin #include <stdio.h> 20da2e3ebdSchin #endif 21*b30d1939SAndy Fiddaman}end 22*b30d1939SAndy Fiddaman 23*b30d1939SAndy Fiddamanif tst note{ <wchar.h> requires native <stdio.h> }end nocompile{ 24*b30d1939SAndy Fiddaman /*<NOSTDIO>*/ 25*b30d1939SAndy Fiddaman #define _STDIO_INCLUDED 1 26*b30d1939SAndy Fiddaman #define FILE void 27*b30d1939SAndy Fiddaman #include <wchar.h> 28*b30d1939SAndy Fiddaman int tst; 29*b30d1939SAndy Fiddaman }end 30*b30d1939SAndy Fiddaman if tst note{ <stdio.h> defines __va_list for <wchar.h> }end compile{ 31*b30d1939SAndy Fiddaman /*<NOSTDIO>*/ 32*b30d1939SAndy Fiddaman #define _STDIO_INCLUDED 1 33*b30d1939SAndy Fiddaman #define FILE void 34*b30d1939SAndy Fiddaman #include <stdarg.h> 35*b30d1939SAndy Fiddaman #define __va_list va_list 36*b30d1939SAndy Fiddaman #include <wchar.h> 37*b30d1939SAndy Fiddaman int tst; 38*b30d1939SAndy Fiddaman }end && { 39*b30d1939SAndy Fiddaman #define __va_list va_list 40*b30d1939SAndy Fiddaman } 41*b30d1939SAndy Fiddaman endif 42*b30d1939SAndy Fiddamanendif 43*b30d1939SAndy Fiddaman 44*b30d1939SAndy Fiddamanif hdr - wctype wchar.h 45*b30d1939SAndy Fiddaman if ! npt - iswalpha wchar.h { 46*b30d1939SAndy Fiddaman #include <wctype.h> /* <wchar.h> includes <wctype.h> */ 47*b30d1939SAndy Fiddaman } 48*b30d1939SAndy Fiddaman endif 49*b30d1939SAndy Fiddamanendif 50*b30d1939SAndy Fiddaman 51*b30d1939SAndy Fiddamanrun{ 52*b30d1939SAndy Fiddamancat <<! 53da2e3ebdSchin #if _hdr_wchar && defined(_nxt_wchar) 54*b30d1939SAndy Fiddaman #include ${_nxt_wchar-_nxt_wchar} /* the native wchar.h */ 55da2e3ebdSchin #endif 56da2e3ebdSchin 57da2e3ebdSchin #ifndef WEOF 58da2e3ebdSchin #define WEOF (-1) 59da2e3ebdSchin #endif 60da2e3ebdSchin 61da2e3ebdSchin #undef fgetwc 62da2e3ebdSchin #undef fgetws 63da2e3ebdSchin #undef fputwc 64da2e3ebdSchin #undef fputws 65da2e3ebdSchin #undef getwc 66da2e3ebdSchin #undef getwchar 67da2e3ebdSchin #undef getws 68da2e3ebdSchin #undef putwc 69da2e3ebdSchin #undef putwchar 70da2e3ebdSchin #undef ungetwc 71da2e3ebdSchin 72da2e3ebdSchin #define fgetwc _ast_fgetwc 73da2e3ebdSchin #define fgetws _ast_fgetws 74da2e3ebdSchin #define fputwc _ast_fputwc 75da2e3ebdSchin #define fputws _ast_fputws 76da2e3ebdSchin #define fwide _ast_fwide 77da2e3ebdSchin #define fwprintf _ast_fwprintf 78da2e3ebdSchin #define fwscanf _ast_fwscanf 79da2e3ebdSchin #define getwc _ast_getwc 80da2e3ebdSchin #define getwchar _ast_getwchar 81da2e3ebdSchin #define getws _ast_getws 82da2e3ebdSchin #define putwc _ast_putwc 83da2e3ebdSchin #define putwchar _ast_putwchar 84da2e3ebdSchin #define swprintf _ast_swprintf 85da2e3ebdSchin #define swscanf _ast_swscanf 86da2e3ebdSchin #define ungetwc _ast_ungetwc 87da2e3ebdSchin #define vfwprintf _ast_vfwprintf 88da2e3ebdSchin #define vfwscanf _ast_vfwscanf 89da2e3ebdSchin #define vswprintf _ast_vswprintf 90da2e3ebdSchin #define vswscanf _ast_vswscanf 91da2e3ebdSchin #define vwprintf _ast_vwprintf 92da2e3ebdSchin #define vwscanf _ast_vwscanf 93da2e3ebdSchin #define wprintf _ast_wprintf 94da2e3ebdSchin #define wscanf _ast_wscanf 95da2e3ebdSchin 96da2e3ebdSchin #if !_typ_mbstate_t 97da2e3ebdSchin #undef _typ_mbstate_t 98da2e3ebdSchin #define _typ_mbstate_t 1 99da2e3ebdSchin typedef char mbstate_t; 100da2e3ebdSchin #endif 101da2e3ebdSchin 102da2e3ebdSchin #if _BLD_ast && defined(__EXPORT__) 103da2e3ebdSchin #define extern __EXPORT__ 104da2e3ebdSchin #endif 105da2e3ebdSchin 106da2e3ebdSchin #if !_lib_mbstowcs 107da2e3ebdSchin extern size_t mbstowcs(wchar_t*, const char*, size_t); 108da2e3ebdSchin #endif 109da2e3ebdSchin #if !_lib_wctomb 110da2e3ebdSchin extern int wctomb(char*, wchar_t); 111da2e3ebdSchin #endif 112da2e3ebdSchin #if !_lib_wcrtomb 113da2e3ebdSchin extern size_t wcrtomb(char*, wchar_t, mbstate_t*); 114da2e3ebdSchin #endif 115da2e3ebdSchin #if !_lib_wcslen 116da2e3ebdSchin extern size_t wcslen(const wchar_t*); 117da2e3ebdSchin #endif 118da2e3ebdSchin #if !_lib_wcstombs 119da2e3ebdSchin extern size_t wcstombs(char*, const wchar_t*, size_t); 120da2e3ebdSchin #endif 121da2e3ebdSchin 122da2e3ebdSchin extern int fwprintf(FILE*, const wchar_t*, ...); 123da2e3ebdSchin extern int fwscanf(FILE*, const wchar_t*, ...); 124da2e3ebdSchin extern wint_t fgetwc(FILE*); 125da2e3ebdSchin extern wchar_t* fgetws(wchar_t*, int, FILE*); 126da2e3ebdSchin extern wint_t fputwc(wchar_t, FILE*); 127da2e3ebdSchin extern int fputws(const wchar_t*, FILE*); 128da2e3ebdSchin extern int fwide(FILE*, int); 129da2e3ebdSchin extern wint_t getwc(FILE*); 130da2e3ebdSchin extern wint_t getwchar(void); 131da2e3ebdSchin extern wchar_t* getws(wchar_t*); 132da2e3ebdSchin extern wint_t putwc(wchar_t, FILE*); 133da2e3ebdSchin extern wint_t putwchar(wchar_t); 134da2e3ebdSchin extern int swprintf(wchar_t*, size_t, const wchar_t*, ...); 135da2e3ebdSchin extern int swscanf(const wchar_t*, const wchar_t*, ...); 136da2e3ebdSchin extern wint_t ungetwc(wint_t, FILE*); 137da2e3ebdSchin extern int vfwprintf(FILE*, const wchar_t*, va_list); 138da2e3ebdSchin extern int vfwscanf(FILE*, const wchar_t*, va_list); 139da2e3ebdSchin extern int vwprintf(const wchar_t*, va_list); 140da2e3ebdSchin extern int vwscanf(const wchar_t*, va_list); 141da2e3ebdSchin extern int vswprintf(wchar_t*, size_t, const wchar_t*, va_list); 142da2e3ebdSchin extern int vswscanf(const wchar_t*, const wchar_t*, va_list); 143da2e3ebdSchin extern int wprintf(const wchar_t*, ...); 144da2e3ebdSchin extern int wscanf(const wchar_t*, ...); 145da2e3ebdSchin 146da2e3ebdSchin #undef extern 147*b30d1939SAndy Fiddaman 148*b30d1939SAndy Fiddaman #else 149*b30d1939SAndy Fiddaman 150*b30d1939SAndy Fiddaman /* on some systems <wchar.h> is included multiple times with multiple effects */ 151*b30d1939SAndy Fiddaman 152*b30d1939SAndy Fiddaman #if _hdr_wchar && defined(_nxt_wchar) 153*b30d1939SAndy Fiddaman #include ${_nxt_wchar-_nxt_wchar} /* the native wchar.h */ 154*b30d1939SAndy Fiddaman #endif 155*b30d1939SAndy Fiddaman 156*b30d1939SAndy Fiddaman #endif 157da2e3ebdSchin! 158da2e3ebdSchin}end 159