Browse Source

Patch from Bernhard Fischer:
fix compilation if PUTC_MACRO and/or GETC_MACRO is turned off

Eric Andersen 18 years ago
parent
commit
8682748233
3 changed files with 11 additions and 4 deletions
  1. 7 0
      include/stdio.h
  2. 2 0
      libc/stdio/getchar.c
  3. 2 4
      libc/stdio/gets.c

+ 7 - 0
include/stdio.h

@@ -840,7 +840,14 @@ extern void funlockfile (FILE *__stream) __THROW;
 #define fputc_unlocked(_ch, _fp)     __FPUTC_UNLOCKED(_ch, _fp)
 #endif
 
+#ifndef __STDIO_GETC_MACRO
+#define __stdin stdin
+#endif
 #define getchar()                    __GETC(__stdin)
+
+#ifndef __STDIO_PUTC_MACRO
+#define __stdout stdout
+#endif
 #define putchar(_ch)                 __PUTC((_ch), __stdout)
 
 #if defined __USE_POSIX || defined __USE_MISC

+ 2 - 0
libc/stdio/getchar.c

@@ -12,7 +12,9 @@ libc_hidden_proto(__fgetc_unlocked)
 #undef getchar
 #ifdef __DO_UNLOCKED
 
+/* the only use of the hidden getchar_unlocked is in gets.c */
 #undef getchar_unlocked
+libc_hidden_proto(getchar_unlocked)
 int getchar_unlocked(void)
 {
 	register FILE *stream = stdin;

+ 2 - 4
libc/stdio/gets.c

@@ -11,11 +11,9 @@ link_warning(gets, "the 'gets' function is dangerous and should not be used.")
 
 /* UNSAFE FUNCTION -- do not bother optimizing */
 
+/* disable macro, force actual function call */
+#undef getchar_unlocked
 libc_hidden_proto(getchar_unlocked)
-libc_hidden_proto(__fgetc_unlocked)
-#ifndef __STDIO_GETC_MACRO
-#define __stdin stdin
-#endif
 
 char *gets(char *s)
 {