From 1df23ecc52e806d8e656807991e1992b90aa1295 Mon Sep 17 00:00:00 2001 From: Michael Lotz Date: Fri, 14 Apr 2006 12:38:31 +0000 Subject: [PATCH] Should finally fix the eaten up messages. We obviously must not use the output buffer to write the repeat count as the output buffer already contains the new message... git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17131 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/debug/debug.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/src/system/kernel/debug/debug.c b/src/system/kernel/debug/debug.c index 4d045f8383..a1b1cb2078 100644 --- a/src/system/kernel/debug/debug.c +++ b/src/system/kernel/debug/debug.c @@ -829,19 +829,25 @@ flush_pending_repeats(void) int32 length; if (sMessageRepeatCount > 1) { - length = snprintf(sOutputBuffer, OUTPUT_BUFFER_SIZE, + char temp[128]; + length = snprintf(temp, OUTPUT_BUFFER_SIZE, "Last message repeated %ld times.\n", sMessageRepeatCount); - } else { - // if we only have one repeat just reprint the buffer - length = strlen(sOutputBuffer); - } - if (sSerialDebugEnabled) - arch_debug_serial_puts(sOutputBuffer); - if (sSyslogOutputEnabled) - syslog_write(sOutputBuffer, length); - if (sBlueScreenEnabled || sDebugScreenEnabled) - blue_screen_puts(sOutputBuffer); + if (sSerialDebugEnabled) + arch_debug_serial_puts(temp); + if (sSyslogOutputEnabled) + syslog_write(temp, length); + if (sBlueScreenEnabled || sDebugScreenEnabled) + blue_screen_puts(temp); + } else { + // if we only have one repeat just reprint the last buffer + if (sSerialDebugEnabled) + arch_debug_serial_puts(sLastOutputBuffer); + if (sSyslogOutputEnabled) + syslog_write(sLastOutputBuffer, strlen(sLastOutputBuffer)); + if (sBlueScreenEnabled || sDebugScreenEnabled) + blue_screen_puts(sLastOutputBuffer); + } sMessageRepeatCount = 0; }