"Dimitrie O. Paun" dpaun@rogers.com writes:
If we detect that we're appending, we just have to skip over the class:channel:function preamble (that's trivial, the preamble ends at the first space (' ')).
This way we can eliminate the DPRINTF macro which is rarely used, and thus confusing. Alexandre?
No objection. Something like this should do the trick:
Index: dlls/ntdll/debugtools.c =================================================================== RCS file: /opt/cvs-commit/wine/dlls/ntdll/debugtools.c,v retrieving revision 1.28 diff -u -r1.28 debugtools.c --- dlls/ntdll/debugtools.c 18 Feb 2003 23:29:48 -0000 1.28 +++ dlls/ntdll/debugtools.c 13 Mar 2003 18:36:05 -0000 @@ -304,12 +304,17 @@ const char *function, const char *format, va_list args ) { static const char *classes[] = { "fixme", "err", "warn", "trace" }; + struct debug_info *info = get_info(); int ret = 0;
- if (TRACE_ON(tid)) - ret = wine_dbg_printf( "%04lx:", NtCurrentTeb()->tid ); - if (cls < sizeof(classes)/sizeof(classes[0])) - ret += wine_dbg_printf( "%s:%s:%s ", classes[cls], channel + 1, function ); + /* only print header if we are at the beginning of the line */ + if (info->out_pos == info->output || info->out_pos[-1] == '\n') + { + if (TRACE_ON(tid)) + ret = wine_dbg_printf( "%04lx:", NtCurrentTeb()->tid ); + if (cls < sizeof(classes)/sizeof(classes[0])) + ret += wine_dbg_printf( "%s:%s:%s ", classes[cls], channel + 1, function ); + } if (format) ret += NTDLL_dbg_vprintf( format, args ); return ret;