OSDN Git Service

even more fixes for vda-made breakage in vXXXfprintf
authorDenis Vlasenko <vda.linux@googlemail.com>
Thu, 10 Apr 2008 20:39:07 +0000 (20:39 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Thu, 10 Apr 2008 20:39:07 +0000 (20:39 -0000)
(pointed out by Peter S.Mazinger)

libc/stdio/_vfprintf.c
libc/stdio/vsnprintf.c
libc/stdio/vswprintf.c

index b3deadd..685bb0d 100644 (file)
@@ -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;
index b54d54d..e5a14d5 100644 (file)
@@ -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;
index 59f7c2b..cddf1d5 100644 (file)
@@ -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) {