X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fobstack_printf.c;h=7f9cd758497697d60196471c374250a3916bd804;hb=46f5f314f34a08c9305758482d7d2fdb0e999d09;hp=f546f006b9cefb7da55cfedea9d4a739e099f6e6;hpb=7a8101a246b1c7aa64cd2f95ad2a43a2bf2ee891;p=gnulib.git diff --git a/lib/obstack_printf.c b/lib/obstack_printf.c index f546f006b..7f9cd7584 100644 --- a/lib/obstack_printf.c +++ b/lib/obstack_printf.c @@ -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 . */ #include @@ -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; }