From 4ddd19d6bd84676cce3ba512439b36365ce9406c Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Tue, 10 Jun 2014 15:08:03 +0200 Subject: [PATCH] Add a log_msg_va function This is useful for when we use libraries which want us to provide them with a logging callback. Signed-off-by: Hans de Goede Reviewed-by: Peter Hutterer Signed-off-by: Peter Hutterer --- src/libinput-private.h | 4 ++++ src/libinput.c | 17 ++++++++++++----- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/libinput-private.h b/src/libinput-private.h index c18447a6..f0bda1f8 100644 --- a/src/libinput-private.h +++ b/src/libinput-private.h @@ -97,6 +97,10 @@ typedef void (*libinput_source_dispatch_t)(void *data); void log_msg(enum libinput_log_priority priority, const char *format, ...); +void +log_msg_va(enum libinput_log_priority priority, + const char *format, + va_list args); int libinput_init(struct libinput *libinput, diff --git a/src/libinput.c b/src/libinput.c index aee373eb..5b10a10a 100644 --- a/src/libinput.c +++ b/src/libinput.c @@ -110,16 +110,23 @@ static struct log_data log_data = { .user_data = NULL, }; +void +log_msg_va(enum libinput_log_priority priority, + const char *format, + va_list args) +{ + if (log_data.handler && log_data.priority <= priority) + log_data.handler(priority, log_data.user_data, format, args); +} + void log_msg(enum libinput_log_priority priority, const char *format, ...) { va_list args; - if (log_data.handler && log_data.priority <= priority) { - va_start(args, format); - log_data.handler(priority, log_data.user_data, format, args); - va_end(args); - } + va_start(args, format); + log_msg_va(priority, format, args); + va_end(args); } LIBINPUT_EXPORT void