summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarren Salt <linux@youmustbejoking.demon.co.uk>2008-06-11 18:19:51 +0100
committerDarren Salt <linux@youmustbejoking.demon.co.uk>2008-06-11 18:19:51 +0100
commitabf81e0f348655b62a3e784572c269aab5c8e352 (patch)
treec2f2feb86331a49efd780be6360c9158b8b63118
parent224cd3a6d96fd943d3375e0385841972e29e95d0 (diff)
downloadxine-lib-abf81e0f348655b62a3e784572c269aab5c8e352.tar.gz
xine-lib-abf81e0f348655b62a3e784572c269aab5c8e352.tar.bz2
Fix va_list-related breakage. Multiple use needs va_copy().
-rw-r--r--src/input/vcd/xine-extra.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/input/vcd/xine-extra.c b/src/input/vcd/xine-extra.c
index 79c962a79..e3b6da912 100644
--- a/src/input/vcd/xine-extra.c
+++ b/src/input/vcd/xine-extra.c
@@ -45,8 +45,10 @@ static xine_t *my_xine = NULL;
void
xine_vlog_msg(xine_t *this, int buf, const char *format, va_list args)
{
+ va_list copy;
+ va_copy (copy, args);
xine_vlog(this, buf, format, args);
- vfprintf(stdout, format, args);
+ vfprintf(stdout, format, copy);
}
/*! This routine is like xine_log, except it takes a va_list instead
@@ -59,8 +61,10 @@ xine_vlog_msg(xine_t *this, int buf, const char *format, va_list args)
void
xine_vlog_err(xine_t *this, int buf, const char *format, va_list args)
{
+ va_list copy;
+ va_copy (copy, args);
xine_vlog(this, buf, format, args);
- vfprintf(stderr, format, args);
+ vfprintf(stderr, format, copy);
}
/*! Call this before calling any of the xine_log_msg or xine_log_err
@@ -116,8 +120,8 @@ xine_log_err(const char *format, ...)
{
va_list args;
- va_start(args, format);
if (NULL == my_xine) return false;
+ va_start(args, format);
xine_vlog_err(my_xine, XINE_LOG_MSG, format, args);
va_end(args);
return true;