Merge commit 'a39d4083cab589d7cd6a13e8a4b8db8875261d75'
[gnulib.git] / lib / obstack_printf.c
index f546f00..7f9cd75 100644 (file)
@@ -1,5 +1,5 @@
 /* Formatted output to obstacks.
-   Copyright (C) 2008 Free Software Foundation, Inc.
+   Copyright (C) 2008-2014 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -12,8 +12,7 @@
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License along
-   with this program; if not, write to the Free Software Foundation,
-   Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  */
+   with this program; if not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 
@@ -58,22 +57,22 @@ obstack_vprintf (struct obstack *obs, const char *format, va_list args)
      stack-allocated buffer and copy, to reduce the likelihood of a
      small-size malloc.  Otherwise, print directly into the
      obstack.  */
-  const size_t cutoff = 1024;
-  char buf[cutoff];
+  enum { CUTOFF = 1024 };
+  char buf[CUTOFF];
   char *base = obstack_next_free (obs);
   size_t len = obstack_room (obs);
   char *str;
 
-  if (len < cutoff)
+  if (len < CUTOFF)
     {
       base = buf;
-      len = cutoff;
+      len = CUTOFF;
     }
   str = vasnprintf (base, &len, format, args);
   if (!str)
     {
       if (errno == ENOMEM)
-       obstack_alloc_failed_handler ();
+        obstack_alloc_failed_handler ();
       return -1;
     }
   if (str == base && str != buf)
@@ -83,10 +82,10 @@ obstack_vprintf (struct obstack *obs, const char *format, va_list args)
   else
     {
       /* The output exceeded available obstack space or we used buf;
-        copy the resulting string.  */
+         copy the resulting string.  */
       obstack_grow (obs, str, len);
       if (str != buf)
-       free (str);
+        free (str);
     }
   return len;
 }