diff options
Diffstat (limited to 'gdb/gdbtk.c')
-rw-r--r-- | gdb/gdbtk.c | 42 |
1 files changed, 24 insertions, 18 deletions
diff --git a/gdb/gdbtk.c b/gdb/gdbtk.c index eaa150e..f69a549 100644 --- a/gdb/gdbtk.c +++ b/gdb/gdbtk.c @@ -196,32 +196,38 @@ close_bfds () */ void -#ifdef ANSI_PROTOTYPES -TclDebug (const char *fmt, ...) -#else -TclDebug (va_alist) - va_dcl -#endif +TclDebug (char level, const char *fmt, ...) { va_list args; - char buf[512], *v[2], *merge; - -#ifdef ANSI_PROTOTYPES + char buf[512], *v[3], *merge, *priority; + + switch (level) + { + case 'W': + priority = "W"; + break; + case 'E': + priority = "E"; + break; + case 'X': + priority = "X"; + break; + default: + priority = "I"; + } + va_start (args, fmt); -#else - char *fmt; - va_start (args); - fmt = va_arg (args, char *); -#endif - v[0] = "debug"; - v[1] = buf; + v[0] = "dbug"; + v[1] = priority; + v[2] = buf; vsprintf (buf, fmt, args); va_end (args); - merge = Tcl_Merge (2, v); - Tcl_Eval (gdbtk_interp, merge); + merge = Tcl_Merge (3, v); + if (Tcl_Eval (gdbtk_interp, merge) != TCL_OK) + Tcl_BackgroundError(gdbtk_interp); Tcl_Free (merge); } |