From 0b86daff6bc58119f2b0ad5324fd18857dfdb3c5 Mon Sep 17 00:00:00 2001 From: Jed Barber Date: Tue, 2 Jan 2018 21:05:54 +1100 Subject: Update from before Christmas --- src/c_wayland_client.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 src/c_wayland_client.c (limited to 'src/c_wayland_client.c') diff --git a/src/c_wayland_client.c b/src/c_wayland_client.c new file mode 100644 index 0000000..bdd62e6 --- /dev/null +++ b/src/c_wayland_client.c @@ -0,0 +1,45 @@ + + +#include +#include +#include "c_wayland_client.h" + + +log_hook_t ada_handler; +char buf[256]; + + +void actual_log_handler(const char *c, va_list va) { + char *str = buf; + char *extra = NULL; + int len; + + if (c == NULL) { + (*ada_handler)(c,0); + return; + } + + len = vsnprintf(str, 256, c, va); + if (len >= 256) { + extra = malloc((len + 1) * sizeof(char)); + if (extra == NULL) { + (*ada_handler)(extra,1); + return; + } + str = extra; + vsnprintf(str, len + 1, c, va); + } + + (*ada_handler)(str,0); + + if (extra != NULL) { + free(extra); + } +} + + +void wayland_client_set_log_hook(log_hook_t func) { + ada_handler = func; + wl_log_set_handler_client(&actual_log_handler); +} + -- cgit