Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2006-09-27 01:22:19 +0400
committerJeff Johnston <jjohnstn@redhat.com>2006-09-27 01:22:19 +0400
commite5e148d15bacc36f205aa49edea0fc53df2a38c0 (patch)
treeb3daac4ea5f2db51fa5c5e10722e04f3b63a57c5 /newlib/libc/stdio/local.h
parent1aeca89244e9560c7494792cf4524547038504e8 (diff)
2006-09-26 Jeff Johnston <jjohnstn@redhat.com>
* libc/include/stdio.h[_REENT_SMALL]: Do not allow macros for clearerr, feof, or fileno. * libc/include/sys/reent.h[_REENT_SMALL](struct _reent): Change the dummy std stream scheme to use pointers to const external fake files, one for each standard stream. * libc/stdio/local.h (CHECK_INIT): Change to take a file pointer argument. For _REENT_SMALL, reset the file pointer if it matches one of the fake std stream pointers. * libc/stdio/clearerr.c: Fix CHECK_INIT macro to add file pointer argument. * libc/stdio/fclose.c: Ditto. * libc/stdio/feof.c: Ditto. * libc/stdio/ferror.c: Ditto. * libc/stdio/fflush.c: Ditto. * libc/stdio/fgetc.c: Ditto. * libc/stdio/fgets.c: Ditto. * libc/stdio/fileno.c: Ditto. * libc/stdio/findfp.c: Ditto. * libc/stdio/fputc.c: Ditto. * libc/stdio/fputs.c: Ditto. * libc/stdio/fread.c: Ditto. * libc/stdio/freopen.c: Ditto. * libc/stdio/fseek.c: Ditto. * libc/stdio/ftell.c: Ditto. * libc/stdio/fwrite.c: Ditto. * libc/stdio/getc.c: Ditto. * libc/stdio/getdelim.c: Ditto. * libc/stdio/putc.c: Ditto. * libc/stdio/refill.c: Ditto. * libc/stdio/setvbuf.c: Ditto. * libc/stdio/ungetc.c: Ditto. * libc/stdio/vfprintf.c: Ditto. * libc/stdio/vfscanf.c: Ditto. * libc/stdio/wbuf.c: Ditto.: Ditto. * libc/stdio/wsetup.c: Ditto. * libc/stdio64/freopen64.c: Ditto. * libc/stdio64/fseeko64.c: Ditto. * libc/stdio64/ftello64.c: Ditto. * libc/machine/powerpc/vfprintf.c: Ditto. * libc/machine/powerpc/vfscanf.c: Ditto.
Diffstat (limited to 'newlib/libc/stdio/local.h')
-rw-r--r--newlib/libc/stdio/local.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/newlib/libc/stdio/local.h b/newlib/libc/stdio/local.h
index 301abce33..9ae9b4046 100644
--- a/newlib/libc/stdio/local.h
+++ b/newlib/libc/stdio/local.h
@@ -48,7 +48,31 @@ struct _glue * _EXFUN(__sfmoreglue,(struct _reent *,int n));
/* Called by the main entry point fns to ensure stdio has been initialized. */
-#define CHECK_INIT(ptr) \
+#ifdef _REENT_SMALL
+#define CHECK_INIT(ptr, fp) \
+ do \
+ { \
+ if ((ptr) && !(ptr)->__sdidinit) \
+ __sinit (ptr); \
+ if ((fp) == (FILE *)&__sf_fake_stdin) \
+ (fp) = stdin; \
+ else if ((fp) == (FILE *)&__sf_fake_stdout) \
+ (fp) = stdout; \
+ else if ((fp) == (FILE *)&__sf_fake_stderr) \
+ (fp) = stderr; \
+ } \
+ while (0)
+#else /* !_REENT_SMALL */
+#define CHECK_INIT(ptr, fp) \
+ do \
+ { \
+ if ((ptr) && !(ptr)->__sdidinit) \
+ __sinit (ptr); \
+ } \
+ while (0)
+#endif /* !_REENT_SMALL */
+
+#define CHECK_STD_INIT(ptr) \
do \
{ \
if ((ptr) && !(ptr)->__sdidinit) \