From b939b5a9f43ff446a3d420c0d1f146d505cdb7b1 Mon Sep 17 00:00:00 2001 From: PulkoMandy Date: Mon, 1 Dec 2025 20:43:19 +0100 Subject: [PATCH] debug_printf: return number of printed characters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For compatibility with other printf functions Change-Id: I52c85d590b8480427952740cb896112bb4e71c18 Reviewed-on: https://review.haiku-os.org/c/haiku/+/10044 Reviewed-by: waddlesplash Tested-by: Commit checker robot Reviewed-by: Axel Dörfler --- headers/os/kernel/OS.h | 4 ++-- src/system/libroot/os/debug.c | 15 ++++++++++----- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/headers/os/kernel/OS.h b/headers/os/kernel/OS.h index 301686e9e2..0c6855587e 100644 --- a/headers/os/kernel/OS.h +++ b/headers/os/kernel/OS.h @@ -424,9 +424,9 @@ extern void debugger(const char *message); extern int disable_debugger(int state); /* TODO: Remove. Temporary debug helper. */ -extern void debug_printf(const char *format, ...) +extern int debug_printf(const char *format, ...) __attribute__ ((format (__printf__, 1, 2))); -extern void debug_vprintf(const char *format, va_list args); +extern int debug_vprintf(const char *format, va_list args); extern void ktrace_printf(const char *format, ...) __attribute__ ((format (__printf__, 1, 2))); extern void ktrace_vprintf(const char *format, va_list args); diff --git a/src/system/libroot/os/debug.c b/src/system/libroot/os/debug.c index 2e7a5c7be6..5dc12397f8 100644 --- a/src/system/libroot/os/debug.c +++ b/src/system/libroot/os/debug.c @@ -268,27 +268,32 @@ _debuggerAssert(const char *file, int line, const char *message) return 0; } + // TODO: Remove. Temporary debug helper. // (accidently these are more or less the same as _sPrintf()) - -void +int debug_printf(const char *format, ...) { + int count; + va_list list; va_start(list, format); - debug_vprintf(format, list); + count = debug_vprintf(format, list); va_end(list); + return count; } -void + +int debug_vprintf(const char *format, va_list args) { char buffer[1024]; - vsnprintf(buffer, sizeof(buffer), format, args); + int count = vsnprintf(buffer, sizeof(buffer), format, args); _kern_debug_output(buffer); + return count; }