]> pd.if.org Git - pdclib/blobdiff - functions/stdio/vfprintf.c
PDCLIB-20 #resolve Add support for "unusual" cases. Ammend test suite to verify support.
[pdclib] / functions / stdio / vfprintf.c
index ffb4bbe6e49794509ccf20d018e924e22d0ac22c..7dd7f2dfe1e6b4855c99b2217e063fce91ebf1da 100644 (file)
@@ -9,10 +9,12 @@
 #include <stdio.h>
 #include <stdarg.h>
 #include <stdint.h>
+#include <limits.h>
 
 #ifndef REGTEST
+#include <_PDCLIB_io.h>
 
-int vfprintf_unlocked( struct _PDCLIB_file_t * _PDCLIB_restrict stream, 
+int _PDCLIB_vfprintf_unlocked( FILE * _PDCLIB_restrict stream, 
                        const char * _PDCLIB_restrict format, 
                        va_list arg )
 {
@@ -20,7 +22,7 @@ int vfprintf_unlocked( struct _PDCLIB_file_t * _PDCLIB_restrict stream,
     struct _PDCLIB_status_t status;
     status.base = 0;
     status.flags = 0;
-    status.n = SIZE_MAX;
+    status.n = UINT_MAX;
     status.i = 0;
     status.current = 0;
     status.s = NULL;
@@ -35,7 +37,7 @@ int vfprintf_unlocked( struct _PDCLIB_file_t * _PDCLIB_restrict stream,
         if ( ( *format != '%' ) || ( ( rc = _PDCLIB_print( format, &status ) ) == format ) )
         {
             /* No conversion specifier, print verbatim */
-            putc( *(format++), stream );
+            _PDCLIB_putc_unlocked( *(format++), stream );
             status.i++;
         }
         else
@@ -48,13 +50,13 @@ int vfprintf_unlocked( struct _PDCLIB_file_t * _PDCLIB_restrict stream,
     return status.i;
 }
 
-int vfprintf( struct _PDCLIB_file_t * _PDCLIB_restrict stream, 
+int vfprintf( FILE * _PDCLIB_restrict stream, 
               const char * _PDCLIB_restrict format, 
               va_list arg )
 {
-    flockfile( stream );
-    int r = vfprintf_unlocked( stream, format, arg );
-    funlockfile( stream );
+    _PDCLIB_flockfile( stream );
+    int r = _PDCLIB_vfprintf_unlocked( stream, format, arg );
+    _PDCLIB_funlockfile( stream );
     return r;
 }
 
@@ -63,7 +65,7 @@ int vfprintf( struct _PDCLIB_file_t * _PDCLIB_restrict stream,
 #ifdef TEST
 #define _PDCLIB_FILEID "stdio/vfprintf.c"
 #define _PDCLIB_FILEIO
-
+#include <stddef.h>
 #include <_PDCLIB_test.h>
 
 static int testprintf( FILE * stream, const char * format, ... )