[glib] Make gnulib vfprintf return the number of bytes actually written



commit b7774b182dcd4cb129a4af20d624b4168d28ff90
Author: Руслан Ижбулатов <lrn1986 gmail com>
Date:   Fri Apr 17 16:04:31 2015 +0000

    Make gnulib vfprintf return the number of bytes actually written
    
    To be honest, i don't remember what problems were caused by it returning the
    number of bytes it *wanted* to write instead of the number of bytes
    it actually wrote. Probably related to the fact that fwrite could
    independently fail, and ignoring its return value ignores that error.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=748064

 glib/gnulib/printf.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)
---
diff --git a/glib/gnulib/printf.c b/glib/gnulib/printf.c
index 6edca1a..66261b8 100644
--- a/glib/gnulib/printf.c
+++ b/glib/gnulib/printf.c
@@ -88,16 +88,16 @@ int _g_gnulib_vprintf (char const *format, va_list args)
 int _g_gnulib_vfprintf (FILE *file, char const *format, va_list args)
 {
   char *result;
-  size_t length;
+  size_t length, rlength;
 
   result = vasnprintf (NULL, &length, format, args);
   if (result == NULL) 
     return -1;
 
-  fwrite (result, 1, length, file);
+  rlength = fwrite (result, 1, length, file);
   free (result);
   
-  return length;
+  return rlength;
 }
 
 int _g_gnulib_vsprintf (char *string, char const *format, va_list args)


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]