18:36. incorporated proposed cleanups from gtk-devel-list.
[platform/upstream/glib.git] / glib / gutils.c
index 513af9f..5e558e4 100644 (file)
@@ -155,7 +155,13 @@ g_snprintf (gchar  *str,
   va_start (args, fmt);
   retval = vsnprintf (str, n, fmt, args);
   va_end (args);
-  
+
+  if (retval < 0)
+    {
+      str[n-1] = '\0';
+      retval = strlen (str);
+    }
+
   return retval;
 #else  /* !HAVE_VSNPRINTF */
   gchar *printed;
@@ -185,6 +191,12 @@ g_vsnprintf (gchar  *str,
   
   retval = vsnprintf (str, n, fmt, args);
   
+  if (retval < 0)
+    {
+      str[n-1] = '\0';
+      retval = strlen (str);
+    }
+
   return retval;
 #else  /* !HAVE_VSNPRINTF */
   gchar *printed;