summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
authorDenis Vlasenko <vda.linux@googlemail.com>2008-04-10 20:39:07 +0000
committerDenis Vlasenko <vda.linux@googlemail.com>2008-04-10 20:39:07 +0000
commit2a915734a32c5aec9a6a76c13bcb074d30e64171 (patch)
tree8b5ac7073c8bf4bb6f150e33f3ebcdb07bf8beea /libc
parentc921d8a2c5cc4e31aad8f9c16fe8d8a7f3d9a4f9 (diff)
even more fixes for vda-made breakage in vXXXfprintf
(pointed out by Peter S.Mazinger)
Diffstat (limited to 'libc')
-rw-r--r--libc/stdio/_vfprintf.c4
-rw-r--r--libc/stdio/vsnprintf.c11
-rw-r--r--libc/stdio/vswprintf.c12
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) {