diff --git a/include/stdio.h b/include/stdio.h index 52fb7f7951d..f7af47a1cf6 100644 --- a/include/stdio.h +++ b/include/stdio.h @@ -134,11 +134,14 @@ typedef struct __sFILE { fpos_t _offset; /* current lseek offset (see WARNING) */ } FILE; +#ifndef _STDSTREAM_DECLARED __BEGIN_DECLS extern FILE *__stdinp; extern FILE *__stdoutp; extern FILE *__stderrp; __END_DECLS +#define _STDSTREAM_DECLARED +#endif #define __SLBF 0x0001 /* line buffered */ #define __SNBF 0x0002 /* unbuffered */ diff --git a/include/wchar.h b/include/wchar.h index b8bb90a14a4..5bfac56df5e 100644 --- a/include/wchar.h +++ b/include/wchar.h @@ -171,6 +171,18 @@ wchar_t *wmemset(wchar_t *, wchar_t, size_t); int wprintf(const wchar_t * __restrict, ...); int wscanf(const wchar_t * __restrict, ...); +#ifndef _STDSTREAM_DECLARED +extern struct __sFILE *__stdinp; +extern struct __sFILE *__stdoutp; +extern struct __sFILE *__stderrp; +#define _STDSTREAM_DECLARED +#endif + +#define getwc(fp) fgetwc(fp) +#define getwchar() fgetwc(__stdinp) +#define putwc(wc, fp) fputwc(x, fp) +#define putwchar(wc) fputwc(wc, __stdoutp) + #if __ISO_C_VISIBLE >= 1999 int vfwscanf(struct __sFILE * __restrict, const wchar_t * __restrict, __va_list);