Convert debug to using g_vasprintf for long debug

pk_{debug,warning,error} used g_vsnprintf with a fixed 1024 byte
buffer. Admittedly, using pk_debug with things exceeding that
is a bit silly, but still. This patch converts the debug
functions to using g_vasprintf, which means we can throw away
the fixed buffer entirely and get >1024 character messages.
This commit is contained in:
Tom Parker 2007-08-30 20:10:49 +02:00
parent cd9da2040c
commit 3197f7bf23

View File

@ -21,6 +21,7 @@
#include <glib.h>
#include <glib/gi18n.h>
#include <glib/gprintf.h>
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
@ -31,7 +32,6 @@
#include "pk-debug.h"
static gboolean do_verbose = FALSE; /* if we should print out debugging */
static gchar va_args_buffer [1025];
/**
* pk_print_line:
@ -64,16 +64,19 @@ pk_debug_real (const gchar *func,
const gchar *format, ...)
{
va_list args;
gchar *buffer = NULL;
if (do_verbose == FALSE) {
return;
}
va_start (args, format);
g_vsnprintf (va_args_buffer, 1024, format, args);
g_vasprintf (&buffer, format, args);
va_end (args);
pk_print_line (func, file, line, va_args_buffer);
pk_print_line (func, file, line, buffer);
g_free(buffer);
}
/**
@ -86,18 +89,21 @@ pk_warning_real (const gchar *func,
const gchar *format, ...)
{
va_list args;
gchar *buffer = NULL;
if (do_verbose == FALSE) {
return;
}
va_start (args, format);
g_vsnprintf (va_args_buffer, 1024, format, args);
g_vasprintf (&buffer, format, args);
va_end (args);
/* do extra stuff for a warning */
fprintf (stderr, "*** WARNING ***\n");
pk_print_line (func, file, line, va_args_buffer);
pk_print_line (func, file, line, buffer);
g_free(buffer);
}
/**
@ -110,14 +116,16 @@ pk_error_real (const gchar *func,
const gchar *format, ...)
{
va_list args;
gchar *buffer = NULL;
va_start (args, format);
g_vsnprintf (va_args_buffer, 1024, format, args);
g_vasprintf (&buffer, format, args);
va_end (args);
/* do extra stuff for a warning */
fprintf (stderr, "*** ERROR ***\n");
pk_print_line (func, file, line, va_args_buffer);
pk_print_line (func, file, line, buffer);
g_free(buffer);
exit (0);
}