kernel32: Don't clear WINEDEBUG in the debugger process if +winedbg is set.

Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Zebediah Figura 2018-08-15 20:34:00 -05:00 committed by Alexandre Julliard
parent 7973699a8b
commit a1d12ad5c6
1 changed files with 11 additions and 7 deletions

View File

@ -54,6 +54,7 @@
#include "wine/debug.h" #include "wine/debug.h"
WINE_DEFAULT_DEBUG_CHANNEL(seh); WINE_DEFAULT_DEBUG_CHANNEL(seh);
WINE_DECLARE_DEBUG_CHANNEL(winedbg);
static PTOP_LEVEL_EXCEPTION_FILTER top_filter; static PTOP_LEVEL_EXCEPTION_FILTER top_filter;
@ -289,15 +290,18 @@ static BOOL start_debugger(PEXCEPTION_POINTERS epointers, HANDLE hEvent)
/* make WINEDEBUG empty in the environment */ /* make WINEDEBUG empty in the environment */
env = GetEnvironmentStringsA(); env = GetEnvironmentStringsA();
for (p = env; *p; p += strlen(p) + 1) if (!TRACE_ON(winedbg))
{ {
if (!memcmp( p, "WINEDEBUG=", sizeof("WINEDEBUG=")-1 )) for (p = env; *p; p += strlen(p) + 1)
{ {
char *next = p + strlen(p); if (!memcmp( p, "WINEDEBUG=", sizeof("WINEDEBUG=")-1 ))
char *end = next + 1; {
while (*end) end += strlen(end) + 1; char *next = p + strlen(p);
memmove( p + sizeof("WINEDEBUG=") - 1, next, end + 1 - next ); char *end = next + 1;
break; while (*end) end += strlen(end) + 1;
memmove( p + sizeof("WINEDEBUG=") - 1, next, end + 1 - next );
break;
}
} }
} }