From 06f8a796e2d4d88cfd89b21a2b7b195c3612ba81 Mon Sep 17 00:00:00 2001 From: "Peter S. Mazinger" Date: Fri, 9 Dec 2005 15:33:37 +0000 Subject: Implement hidden *scanf --- libc/stdio/scanf.c | 50 ++++++++++++++++++++++++++++++-------------------- 1 file changed, 30 insertions(+), 20 deletions(-) (limited to 'libc/stdio/scanf.c') diff --git a/libc/stdio/scanf.c b/libc/stdio/scanf.c index 555d9a267..04f30e0a5 100644 --- a/libc/stdio/scanf.c +++ b/libc/stdio/scanf.c @@ -147,17 +147,18 @@ _stdlib_strto_l(register const char * __restrict str, /**********************************************************************/ #ifdef L_fscanf -int fscanf(FILE * __restrict stream, const char * __restrict format, ...) +int attribute_hidden __fscanf(FILE * __restrict stream, const char * __restrict format, ...) { va_list arg; int rv; va_start(arg, format); - rv = vfscanf(stream, format, arg); + rv = __vfscanf(stream, format, arg); va_end(arg); return rv; } +strong_alias(__fscanf,fscanf) #endif /**********************************************************************/ @@ -169,7 +170,7 @@ int scanf(const char * __restrict format, ...) int rv; va_start(arg, format); - rv = vfscanf(stdin, format, arg); + rv = __vfscanf(stdin, format, arg); va_end(arg); return rv; @@ -181,17 +182,18 @@ int scanf(const char * __restrict format, ...) #ifdef __STDIO_HAS_VSSCANF -int sscanf(const char * __restrict str, const char * __restrict format, ...) +int attribute_hidden __sscanf(const char * __restrict str, const char * __restrict format, ...) { va_list arg; int rv; va_start(arg, format); - rv = vsscanf(str, format, arg); + rv = __vsscanf(str, format, arg); va_end(arg); return rv; } +strong_alias(__sscanf,sscanf) #else /* __STDIO_HAS_VSSCANF */ #warning Skipping sscanf since no vsscanf! @@ -201,10 +203,11 @@ int sscanf(const char * __restrict str, const char * __restrict format, ...) /**********************************************************************/ #ifdef L_vscanf -int vscanf(const char * __restrict format, va_list arg) +int attribute_hidden __vscanf(const char * __restrict format, va_list arg) { - return vfscanf(stdin, format, arg); + return __vfscanf(stdin, format, arg); } +strong_alias(__vscanf,vscanf) #endif /**********************************************************************/ @@ -216,7 +219,7 @@ int vscanf(const char * __restrict format, va_list arg) #ifdef __STDIO_BUFFERS -int vsscanf(__const char *sp, __const char *fmt, va_list ap) +int attribute_hidden __vsscanf(__const char *sp, __const char *fmt, va_list ap) { FILE f; @@ -254,12 +257,13 @@ int vsscanf(__const char *sp, __const char *fmt, va_list ap) __STDIO_STREAM_ENABLE_GETC(&f); __STDIO_STREAM_DISABLE_PUTC(&f); - return vfscanf(&f, fmt, ap); + return __vfscanf(&f, fmt, ap); } +strong_alias(__vsscanf,vsscanf) #elif !defined(__UCLIBC_HAS_WCHAR__) -int vsscanf(__const char *sp, __const char *fmt, va_list ap) +int attribute_hidden __vsscanf(__const char *sp, __const char *fmt, va_list ap) { __FILE_vsscanf f; @@ -292,23 +296,25 @@ int vsscanf(__const char *sp, __const char *fmt, va_list ap) #endif f.f.__nextopen = NULL; - return vfscanf(&f.f, fmt, ap); + return __vfscanf(&f.f, fmt, ap); } +strong_alias(__vsscanf,vsscanf) #elif defined(__UCLIBC_HAS_GLIBC_CUSTOM_STREAMS__) -int vsscanf(__const char *sp, __const char *fmt, va_list ap) +int attribute_hidden __vsscanf(__const char *sp, __const char *fmt, va_list ap) { FILE *f; int rv = EOF; if ((f = fmemopen((char *)sp, __strlen(sp), "r")) != NULL) { - rv = vfscanf(f, fmt, ap); + rv = __vfscanf(f, fmt, ap); fclose(f); } return rv; } +strong_alias(__vsscanf,vsscanf) #else #warning Skipping vsscanf since no buffering, no custom streams, and wchar enabled! @@ -327,7 +333,7 @@ int fwscanf(FILE * __restrict stream, const wchar_t * __restrict format, ...) int rv; va_start(arg, format); - rv = vfwscanf(stream, format, arg); + rv = __vfwscanf(stream, format, arg); va_end(arg); return rv; @@ -343,7 +349,7 @@ int wscanf(const wchar_t * __restrict format, ...) int rv; va_start(arg, format); - rv = vfwscanf(stdin, format, arg); + rv = __vfwscanf(stdin, format, arg); va_end(arg); return rv; @@ -362,7 +368,7 @@ int swscanf(const wchar_t * __restrict str, const wchar_t * __restrict format, int rv; va_start(arg, format); - rv = vswscanf(str, format, arg); + rv = __vswscanf(str, format, arg); va_end(arg); return rv; @@ -377,7 +383,7 @@ int swscanf(const wchar_t * __restrict str, const wchar_t * __restrict format, int vwscanf(const wchar_t * __restrict format, va_list arg) { - return vfwscanf(stdin, format, arg); + return __vfwscanf(stdin, format, arg); } #endif @@ -386,7 +392,7 @@ int vwscanf(const wchar_t * __restrict format, va_list arg) #ifdef __STDIO_BUFFERS -int vswscanf(const wchar_t * __restrict str, const wchar_t * __restrict format, +int attribute_hidden __vswscanf(const wchar_t * __restrict str, const wchar_t * __restrict format, va_list arg) { FILE f; @@ -423,8 +429,9 @@ int vswscanf(const wchar_t * __restrict str, const wchar_t * __restrict format, #endif f.__nextopen = NULL; - return vfwscanf(&f, format, arg); + return __vfwscanf(&f, format, arg); } +strong_alias(__vswscanf,vswscanf) #else /* __STDIO_BUFFERS */ #warning Skipping vswscanf since no buffering! #endif /* __STDIO_BUFFERS */ @@ -573,6 +580,7 @@ enum { #define Wchar wchar_t #define Wuchar __uwchar_t #define ISSPACE(C) iswspace((C)) +#define HIDDEN_VFSCANF __vfwscanf #define VFSCANF vfwscanf #define GETC(SC) (SC)->sc_getc((SC)) #else @@ -582,6 +590,7 @@ typedef unsigned char __uchar_t; #define Wchar char #define Wuchar __uchar_t #define ISSPACE(C) isspace((C)) +#define HIDDEN_VFSCANF __vfscanf #define VFSCANF vfscanf #ifdef __UCLIBC_HAS_WCHAR__ #define GETC(SC) (SC)->sc_getc((SC)) @@ -1139,7 +1148,7 @@ static const char fake_thousands_sep_str[] = ","; #endif /* L_vfwscanf */ -int VFSCANF (FILE *__restrict fp, const Wchar *__restrict format, va_list arg) +int attribute_hidden HIDDEN_VFSCANF (FILE *__restrict fp, const Wchar *__restrict format, va_list arg) { const Wuchar *fmt; unsigned char *b; @@ -1743,6 +1752,7 @@ int VFSCANF (FILE *__restrict fp, const Wchar *__restrict format, va_list arg) return psfs.cnt; } +strong_alias(HIDDEN_VFSCANF,VFSCANF) #endif /**********************************************************************/ #ifdef L___psfs_do_numeric -- cgit v1.2.3