diff options
Diffstat (limited to 'src/bar.c')
-rw-r--r-- | src/bar.c | 28 |
1 files changed, 1 insertions, 27 deletions
@@ -29,7 +29,6 @@ #include <stdlib.h> #include <string.h> #include <unistd.h> -#include <stdarg.h> #include "ratpoison.h" @@ -121,36 +120,11 @@ update_window_names (screen_info *s) void marked_message_printf (int mark_start, int mark_end, char *fmt, ...) { - int size, nchars; char *buffer; va_list ap; va_start (ap, fmt); - - /* A resonable starting value. */ - size = strlen (fmt) + 1; - buffer = (char *)xmalloc (size); - - nchars = vsnprintf (buffer, size, fmt, ap); - - /* From the GNU Libc manual: In versions of the GNU C library prior - to 2.1 the return value is the number of characters stored, not - including the terminating null; unless there was not enough space - in S to store the result in which case `-1' is returned. */ - if (nchars == -1) - { - do - { - size *= 2; - buffer = (char *)xrealloc (buffer, size); - } while (vsnprintf (buffer, size, fmt, ap) == -1); - } - else if (nchars >= size) - { - buffer = (char *)xrealloc (buffer, nchars + 1); - vsnprintf (buffer, nchars + 1, fmt, ap); - } - + buffer = xvsprintf (fmt, ap); va_end (ap); marked_message (buffer, mark_start, mark_end); |