diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2008-04-10 20:39:07 +0000 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2008-04-10 20:39:07 +0000 |
commit | 2a915734a32c5aec9a6a76c13bcb074d30e64171 (patch) | |
tree | 8b5ac7073c8bf4bb6f150e33f3ebcdb07bf8beea | |
parent | c921d8a2c5cc4e31aad8f9c16fe8d8a7f3d9a4f9 (diff) |
even more fixes for vda-made breakage in vXXXfprintf
(pointed out by Peter S.Mazinger)
-rw-r--r-- | libc/stdio/_vfprintf.c | 4 | ||||
-rw-r--r-- | libc/stdio/vsnprintf.c | 11 | ||||
-rw-r--r-- | libc/stdio/vswprintf.c | 12 |
3 files changed, 12 insertions, 15 deletions
diff --git a/libc/stdio/_vfprintf.c b/libc/stdio/_vfprintf.c index b3deaddb1..685bb0dad 100644 --- a/libc/stdio/_vfprintf.c +++ b/libc/stdio/_vfprintf.c @@ -1866,7 +1866,7 @@ static int _do_one_spec(FILE * __restrict stream, libc_hidden_proto(fprintf) int VFPRINTF_internal (FILE * __restrict stream, - register const FMT_TYPE * __restrict format, + const FMT_TYPE * __restrict format, va_list arg) { ppfs_t ppfs; @@ -1954,7 +1954,7 @@ int VFPRINTF_internal (FILE * __restrict stream, libc_hidden_proto(VFPRINTF) int VFPRINTF (FILE * __restrict stream, - register const FMT_TYPE * __restrict format, + const FMT_TYPE * __restrict format, va_list arg) { int count; diff --git a/libc/stdio/vsnprintf.c b/libc/stdio/vsnprintf.c index b54d54d20..e5a14d51a 100644 --- a/libc/stdio/vsnprintf.c +++ b/libc/stdio/vsnprintf.c @@ -19,8 +19,7 @@ libc_hidden_proto(vfprintf) #endif /* __UCLIBC_MJN3_ONLY__ */ #ifdef __STDIO_BUFFERS - -/* NB: __USE_OLD_VFPRINTF__ is not defined in this case */ +/* NB: we can still have __USE_OLD_VFPRINTF__ defined in this case! */ int vsnprintf(char *__restrict buf, size_t size, const char * __restrict format, va_list arg) @@ -47,6 +46,10 @@ int vsnprintf(char *__restrict buf, size_t size, __INIT_MBSTATE(&(f.__state)); #endif /* __STDIO_MBSTATE */ +#if defined(__USE_OLD_VFPRINTF__) && defined(__UCLIBC_HAS_THREADS__) + f.__user_locking = 1; /* Set user locking. */ + __stdio_init_mutex(&f.__lock); +#endif f.__nextopen = NULL; if (size > SIZE_MAX - (size_t) buf) { @@ -62,7 +65,11 @@ int vsnprintf(char *__restrict buf, size_t size, __STDIO_STREAM_DISABLE_GETC(&f); __STDIO_STREAM_ENABLE_PUTC(&f); +#ifdef __USE_OLD_VFPRINTF__ + rv = vfprintf(&f, format, arg); +#else rv = _vfprintf_internal(&f, format, arg); +#endif if (size) { if (f.__bufpos == f.__bufend) { --f.__bufpos; diff --git a/libc/stdio/vswprintf.c b/libc/stdio/vswprintf.c index 59f7c2b57..cddf1d5d9 100644 --- a/libc/stdio/vswprintf.c +++ b/libc/stdio/vswprintf.c @@ -11,9 +11,7 @@ libc_hidden_proto(vswprintf) -#ifdef __USE_OLD_VFPRINTF__ -libc_hidden_proto(vfwprintf) -#endif +/* NB: this file is not used if __USE_OLD_VFPRINTF__ */ #ifndef __STDIO_BUFFERS #warning Skipping vswprintf since no buffering! @@ -42,10 +40,6 @@ int vswprintf(wchar_t *__restrict buf, size_t size, __INIT_MBSTATE(&(f.__state)); #endif /* __STDIO_MBSTATE */ -#if defined(__USE_OLD_VFPRINTF__) && defined(__UCLIBC_HAS_THREADS__) - f.__user_locking = 1; /* Set user locking. */ - __stdio_init_mutex(&f.__lock); -#endif f.__nextopen = NULL; if (size > ((SIZE_MAX - (size_t) buf)/sizeof(wchar_t))) { @@ -58,11 +52,7 @@ int vswprintf(wchar_t *__restrict buf, size_t size, __STDIO_STREAM_DISABLE_GETC(&f); __STDIO_STREAM_DISABLE_PUTC(&f); -#ifdef __USE_OLD_VFPRINTF__ - rv = vfwprintf(&f, format, arg); -#else rv = _vfwprintf_internal(&f, format, arg); -#endif /* NOTE: Return behaviour differs from snprintf... */ if (f.__bufpos == f.__bufend) { |