1 #include <stdio.h> 2 #include <stdarg.h> 3 4 typedef void (wl_log_func_t)(const char *, va_list); 5 6 void wl_log_trampoline_to_rust_server(char const *fmt, va_list list); 7 8 void wl_log_rust_logger_server(char const *msg); 9 wl_log_trampoline_to_rust_server(char const * fmt,va_list list)10void wl_log_trampoline_to_rust_server(char const *fmt, va_list list) { 11 char buffer[256]; 12 int ret = vsnprintf(buffer, 256, fmt, list); 13 if (ret <= 0) { 14 // forward the unformatted message, in a best-effort attempt 15 wl_log_rust_logger_server(fmt); 16 } else { 17 wl_log_rust_logger_server(buffer); 18 } 19 }