Commit cb013cb5 authored by Guy L. Albertelli's avatar Guy L. Albertelli Committed by Alexandre Julliard

Change the message trace indentation to be consistent by thread.

parent faf2880f
...@@ -1573,7 +1573,6 @@ static const SPY_NOTIFY *end_spnfy_array; /* ptr to last good entry in array ...@@ -1573,7 +1573,6 @@ static const SPY_NOTIFY *end_spnfy_array; /* ptr to last good entry in array
static BOOL16 SPY_Exclude[SPY_MAX_MSGNUM+1]; static BOOL16 SPY_Exclude[SPY_MAX_MSGNUM+1];
static BOOL16 SPY_ExcludeDWP = 0; static BOOL16 SPY_ExcludeDWP = 0;
static int SPY_IndentLevel = 0;
#define SPY_EXCLUDE(msg) \ #define SPY_EXCLUDE(msg) \
(SPY_Exclude[(msg) > SPY_MAX_MSGNUM ? SPY_MAX_MSGNUM : (msg)]) (SPY_Exclude[(msg) > SPY_MAX_MSGNUM ? SPY_MAX_MSGNUM : (msg)])
...@@ -1594,6 +1593,25 @@ typedef struct ...@@ -1594,6 +1593,25 @@ typedef struct
/* This is defined so that the external entry point can return the addr */ /* This is defined so that the external entry point can return the addr */
static SPY_INSTANCE ext_sp_e; static SPY_INSTANCE ext_sp_e;
static int indent_tls_index;
/***********************************************************************
* get_indent_level
*/
inline static int get_indent_level(void)
{
return (int)TlsGetValue( indent_tls_index );
}
/***********************************************************************
* set_indent_level
*/
inline static void set_indent_level( int level )
{
TlsSetValue( indent_tls_index, (void *)level );
}
/*********************************************************************** /***********************************************************************
* SPY_GetMsgInternal * SPY_GetMsgInternal
...@@ -1934,6 +1952,7 @@ void SPY_EnterMessage( INT iFlag, HWND hWnd, UINT msg, ...@@ -1934,6 +1952,7 @@ void SPY_EnterMessage( INT iFlag, HWND hWnd, UINT msg,
WPARAM wParam, LPARAM lParam ) WPARAM wParam, LPARAM lParam )
{ {
SPY_INSTANCE sp_e; SPY_INSTANCE sp_e;
int indent;
if (!TRACE_ON(message) || SPY_EXCLUDE(msg)) return; if (!TRACE_ON(message) || SPY_EXCLUDE(msg)) return;
...@@ -1943,19 +1962,20 @@ void SPY_EnterMessage( INT iFlag, HWND hWnd, UINT msg, ...@@ -1943,19 +1962,20 @@ void SPY_EnterMessage( INT iFlag, HWND hWnd, UINT msg,
sp_e.wParam = wParam; sp_e.wParam = wParam;
SPY_GetWndName(&sp_e); SPY_GetWndName(&sp_e);
SPY_GetMsgStuff(&sp_e); SPY_GetMsgStuff(&sp_e);
indent = get_indent_level();
/* each SPY_SENDMESSAGE must be complemented by call to SPY_ExitMessage */ /* each SPY_SENDMESSAGE must be complemented by call to SPY_ExitMessage */
switch(iFlag) switch(iFlag)
{ {
case SPY_DISPATCHMESSAGE16: case SPY_DISPATCHMESSAGE16:
TRACE("%*s(%04x) %-16s message [%04x] %s dispatched wp=%04x lp=%08lx\n", TRACE("%*s(%04x) %-16s message [%04x] %s dispatched wp=%04x lp=%08lx\n",
SPY_IndentLevel, "", WIN_Handle16(hWnd), indent, "", WIN_Handle16(hWnd),
debugstr_w(sp_e.wnd_name), msg, sp_e.msg_name, wParam, lParam); debugstr_w(sp_e.wnd_name), msg, sp_e.msg_name, wParam, lParam);
break; break;
case SPY_DISPATCHMESSAGE: case SPY_DISPATCHMESSAGE:
TRACE("%*s(%08x) %-16s message [%04x] %s dispatched wp=%08x lp=%08lx\n", TRACE("%*s(%08x) %-16s message [%04x] %s dispatched wp=%08x lp=%08lx\n",
SPY_IndentLevel, "", hWnd, debugstr_w(sp_e.wnd_name), msg, indent, "", hWnd, debugstr_w(sp_e.wnd_name), msg,
sp_e.msg_name, wParam, lParam); sp_e.msg_name, wParam, lParam);
break; break;
...@@ -1975,11 +1995,11 @@ void SPY_EnterMessage( INT iFlag, HWND hWnd, UINT msg, ...@@ -1975,11 +1995,11 @@ void SPY_EnterMessage( INT iFlag, HWND hWnd, UINT msg,
if (iFlag == SPY_SENDMESSAGE16) if (iFlag == SPY_SENDMESSAGE16)
TRACE("%*s(%04x) %-16s message [%04x] %s sent from %s wp=%04x lp=%08lx\n", TRACE("%*s(%04x) %-16s message [%04x] %s sent from %s wp=%04x lp=%08lx\n",
SPY_IndentLevel, "", WIN_Handle16(hWnd), debugstr_w(sp_e.wnd_name), msg, indent, "", WIN_Handle16(hWnd), debugstr_w(sp_e.wnd_name), msg,
sp_e.msg_name, taskName, wParam, lParam ); sp_e.msg_name, taskName, wParam, lParam );
else else
{ TRACE("%*s(%08x) %-16s message [%04x] %s sent from %s wp=%08x lp=%08lx\n", { TRACE("%*s(%08x) %-16s message [%04x] %s sent from %s wp=%08x lp=%08lx\n",
SPY_IndentLevel, "", hWnd, debugstr_w(sp_e.wnd_name), msg, indent, "", hWnd, debugstr_w(sp_e.wnd_name), msg,
sp_e.msg_name, taskName, wParam, lParam ); sp_e.msg_name, taskName, wParam, lParam );
SPY_DumpStructure(&sp_e, TRUE); SPY_DumpStructure(&sp_e, TRUE);
} }
...@@ -1989,17 +2009,17 @@ void SPY_EnterMessage( INT iFlag, HWND hWnd, UINT msg, ...@@ -1989,17 +2009,17 @@ void SPY_EnterMessage( INT iFlag, HWND hWnd, UINT msg,
case SPY_DEFWNDPROC16: case SPY_DEFWNDPROC16:
if( SPY_ExcludeDWP ) return; if( SPY_ExcludeDWP ) return;
TRACE("%*s(%04x) DefWindowProc16: %s [%04x] wp=%04x lp=%08lx\n", TRACE("%*s(%04x) DefWindowProc16: %s [%04x] wp=%04x lp=%08lx\n",
SPY_IndentLevel, "", WIN_Handle16(hWnd), sp_e.msg_name, msg, wParam, lParam ); indent, "", WIN_Handle16(hWnd), sp_e.msg_name, msg, wParam, lParam );
break; break;
case SPY_DEFWNDPROC: case SPY_DEFWNDPROC:
if( SPY_ExcludeDWP ) return; if( SPY_ExcludeDWP ) return;
TRACE("%*s(%08x) DefWindowProc32: %s [%04x] wp=%08x lp=%08lx\n", TRACE("%*s(%08x) DefWindowProc32: %s [%04x] wp=%08x lp=%08lx\n",
SPY_IndentLevel, "", hWnd, sp_e.msg_name, indent, "", hWnd, sp_e.msg_name,
msg, wParam, lParam ); msg, wParam, lParam );
break; break;
} }
SPY_IndentLevel += SPY_INDENT_UNIT; set_indent_level( indent + SPY_INDENT_UNIT );
} }
...@@ -2010,6 +2030,7 @@ void SPY_ExitMessage( INT iFlag, HWND hWnd, UINT msg, LRESULT lReturn, ...@@ -2010,6 +2030,7 @@ void SPY_ExitMessage( INT iFlag, HWND hWnd, UINT msg, LRESULT lReturn,
WPARAM wParam, LPARAM lParam ) WPARAM wParam, LPARAM lParam )
{ {
SPY_INSTANCE sp_e; SPY_INSTANCE sp_e;
int indent;
if (!TRACE_ON(message) || SPY_EXCLUDE(msg) || if (!TRACE_ON(message) || SPY_EXCLUDE(msg) ||
(SPY_ExcludeDWP && (iFlag == SPY_RESULT_DEFWND16 || iFlag == SPY_RESULT_DEFWND)) ) (SPY_ExcludeDWP && (iFlag == SPY_RESULT_DEFWND16 || iFlag == SPY_RESULT_DEFWND)) )
...@@ -2022,41 +2043,45 @@ void SPY_ExitMessage( INT iFlag, HWND hWnd, UINT msg, LRESULT lReturn, ...@@ -2022,41 +2043,45 @@ void SPY_ExitMessage( INT iFlag, HWND hWnd, UINT msg, LRESULT lReturn,
SPY_GetWndName(&sp_e); SPY_GetWndName(&sp_e);
SPY_GetMsgStuff(&sp_e); SPY_GetMsgStuff(&sp_e);
if (SPY_IndentLevel) SPY_IndentLevel -= SPY_INDENT_UNIT; if ((indent = get_indent_level()))
{
indent -= SPY_INDENT_UNIT;
set_indent_level( indent );
}
switch(iFlag) switch(iFlag)
{ {
case SPY_RESULT_DEFWND16: case SPY_RESULT_DEFWND16:
TRACE(" %*s(%04x) DefWindowProc16: %s [%04x] returned %08lx\n", TRACE(" %*s(%04x) DefWindowProc16: %s [%04x] returned %08lx\n",
SPY_IndentLevel, "", WIN_Handle16(hWnd), sp_e.msg_name, msg, lReturn ); indent, "", WIN_Handle16(hWnd), sp_e.msg_name, msg, lReturn );
break; break;
case SPY_RESULT_DEFWND: case SPY_RESULT_DEFWND:
TRACE(" %*s(%08x) DefWindowProc32: %s [%04x] returned %08lx\n", TRACE(" %*s(%08x) DefWindowProc32: %s [%04x] returned %08lx\n",
SPY_IndentLevel, "", hWnd, sp_e.msg_name, msg, lReturn ); indent, "", hWnd, sp_e.msg_name, msg, lReturn );
break; break;
case SPY_RESULT_OK16: case SPY_RESULT_OK16:
TRACE(" %*s(%04x) %-16s message [%04x] %s returned %08lx\n", TRACE(" %*s(%04x) %-16s message [%04x] %s returned %08lx\n",
SPY_IndentLevel, "", WIN_Handle16(hWnd), debugstr_w(sp_e.wnd_name), msg, indent, "", WIN_Handle16(hWnd), debugstr_w(sp_e.wnd_name), msg,
sp_e.msg_name, lReturn ); sp_e.msg_name, lReturn );
break; break;
case SPY_RESULT_OK: case SPY_RESULT_OK:
TRACE(" %*s(%08x) %-16s message [%04x] %s returned %08lx\n", TRACE(" %*s(%08x) %-16s message [%04x] %s returned %08lx\n",
SPY_IndentLevel, "", hWnd, debugstr_w(sp_e.wnd_name), msg, indent, "", hWnd, debugstr_w(sp_e.wnd_name), msg,
sp_e.msg_name, lReturn ); sp_e.msg_name, lReturn );
SPY_DumpStructure(&sp_e, FALSE); SPY_DumpStructure(&sp_e, FALSE);
break; break;
case SPY_RESULT_INVALIDHWND16: case SPY_RESULT_INVALIDHWND16:
WARN(" %*s(%04x) %-16s message [%04x] %s HAS INVALID HWND\n", WARN(" %*s(%04x) %-16s message [%04x] %s HAS INVALID HWND\n",
SPY_IndentLevel, "", WIN_Handle16(hWnd), debugstr_w(sp_e.wnd_name), msg, sp_e.msg_name ); indent, "", WIN_Handle16(hWnd), debugstr_w(sp_e.wnd_name), msg, sp_e.msg_name );
break; break;
case SPY_RESULT_INVALIDHWND: case SPY_RESULT_INVALIDHWND:
WARN(" %*s(%08x) %-16s message [%04x] %s HAS INVALID HWND\n", WARN(" %*s(%08x) %-16s message [%04x] %s HAS INVALID HWND\n",
SPY_IndentLevel, "", hWnd, debugstr_w(sp_e.wnd_name), msg, indent, "", hWnd, debugstr_w(sp_e.wnd_name), msg,
sp_e.msg_name ); sp_e.msg_name );
break; break;
} }
...@@ -2076,6 +2101,7 @@ int SPY_Init(void) ...@@ -2076,6 +2101,7 @@ int SPY_Init(void)
if (!TRACE_ON(message)) return TRUE; if (!TRACE_ON(message)) return TRUE;
indent_tls_index = TlsAlloc();
buffer[0] = 0; buffer[0] = 0;
if(!RegOpenKeyA(HKEY_LOCAL_MACHINE, "Software\\Wine\\Wine\\Config\\Spy", &hkey)) if(!RegOpenKeyA(HKEY_LOCAL_MACHINE, "Software\\Wine\\Wine\\Config\\Spy", &hkey))
{ {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment