diff --git a/src/debug/debug_gui.cpp b/src/debug/debug_gui.cpp index c44fb1ba..cc961d51 100644 --- a/src/debug/debug_gui.cpp +++ b/src/debug/debug_gui.cpp @@ -37,37 +37,35 @@ struct _LogGroup { bool enabled; }; -namespace { - _LogGroup loggrp[LOG_MAX]={"",true,0}; - - FILE* debuglog; -}; +static _LogGroup loggrp[LOG_MAX]={"",true,0}; +static FILE* debuglog; extern int old_cursor_state; -void DEBUG_ShowMsg(Bit32u entry, char * format,...) { +void DEBUG_ShowMsg(char * format,...) { - if (!(entry & LOG_ERROR) && entry && !loggrp[entry].enabled) return; - - char buf[1024]; - strcpy(buf,loggrp[entry&127].front); + char buf[512]; va_list msg; va_start(msg,format); - vsprintf(&buf[strlen(buf)],format,msg); + vsprintf(buf,format,msg); va_end(msg); wprintw(dbg.win_out,"%10d: %s\n",cycle_count,buf); wrefresh(dbg.win_out); if(debuglog) fprintf(debuglog,"%10d: %s\n",cycle_count,buf); } + void LOG::operator() (char* format, ...){ - char buf[1024]; + char buf[512]; va_list msg; va_start(msg,format); vsprintf(buf,format,msg); va_end(msg); - DEBUG_ShowMsg(this->d_type|this->d_severity,buf); + + if (d_type>=LOG_MAX) return; + if ((d_severity!=LOG_ERROR) && (!loggrp[d_type].enabled)) return; + DEBUG_ShowMsg("%s:%s",loggrp[d_type].front,buf); } @@ -159,6 +157,7 @@ static void LOG_Init(Section * sec) { for (Bitu i=1;iGet_bool(buf); } } @@ -166,30 +165,33 @@ static void LOG_Init(Section * sec) { void LOG_StartUp(void) { /* Setup logging groups */ - loggrp[LOG_VGA].front="VGA:"; - loggrp[LOG_VGAGFX].front="VGAGFX:"; - loggrp[LOG_VGAMISC].front="VGAMISC:"; - loggrp[LOG_INT10].front="INT10:"; - loggrp[LOG_SB].front="SBLASTER:"; - loggrp[LOG_DMA].front="DMA:"; + loggrp[LOG_ALL].front="ALL"; + loggrp[LOG_VGA].front="VGA"; + loggrp[LOG_VGAGFX].front="VGAGFX"; + loggrp[LOG_VGAMISC].front="VGAMISC"; + loggrp[LOG_INT10].front="INT10"; + loggrp[LOG_SB].front="SBLASTER"; + loggrp[LOG_DMA].front="DMA"; - loggrp[LOG_FPU].front="FPU:"; - loggrp[LOG_CPU].front="CPU:"; + loggrp[LOG_FPU].front="FPU"; + loggrp[LOG_CPU].front="CPU"; - loggrp[LOG_FCB].front="FCB:"; - loggrp[LOG_FILES].front="FILES:"; - loggrp[LOG_IOCTL].front="IOCTL:"; + loggrp[LOG_FCB].front="FCB"; + loggrp[LOG_FILES].front="FILES"; + loggrp[LOG_IOCTL].front="IOCTL"; loggrp[LOG_EXEC].front="EXEC"; - loggrp[LOG_DOSMISC].front="DOSMISC:"; + loggrp[LOG_DOSMISC].front="DOSMISC"; - loggrp[LOG_PIT].front="PIT:"; - loggrp[LOG_KEYBOARD].front="KEYBOARD:"; - loggrp[LOG_PIC].front="PIC:"; + loggrp[LOG_PIT].front="PIT"; + loggrp[LOG_KEYBOARD].front="KEYBOARD"; + loggrp[LOG_PIC].front="PIC"; - loggrp[LOG_MOUSE].front="MOUSE:"; - loggrp[LOG_BIOS].front="BIOS:"; - loggrp[LOG_GUI].front="GUI:"; - loggrp[LOG_MISC].front="MISC:"; + loggrp[LOG_MOUSE].front="MOUSE"; + loggrp[LOG_BIOS].front="BIOS"; + loggrp[LOG_GUI].front="GUI"; + loggrp[LOG_MISC].front="MISC"; + + loggrp[LOG_IO].front="IO"; /* Register the log section */ Section_prop * sect=control->AddSection_prop("log",LOG_Init);