Module: wine Branch: master Commit: 3eaecf04761812caa7478af4bf812d2cd812b09c URL: http://source.winehq.org/git/wine.git/?a=commit;h=3eaecf04761812caa7478af4bf...
Author: Andrey Turkin andrey.turkin@gmail.com Date: Mon Oct 5 21:42:22 2009 +0400
kernel32: Always use ANSI version of OutputDebugString.
---
dlls/kernel32/debugger.c | 17 ++++++++--------- include/wine/server_protocol.h | 5 +---- server/debugger.c | 1 - server/protocol.def | 4 +--- server/request.h | 3 +-- server/trace.c | 4 +--- 6 files changed, 12 insertions(+), 22 deletions(-)
diff --git a/dlls/kernel32/debugger.c b/dlls/kernel32/debugger.c index bb0b5fa..f0dae2d 100644 --- a/dlls/kernel32/debugger.c +++ b/dlls/kernel32/debugger.c @@ -118,7 +118,7 @@ BOOL WINAPI WaitForDebugEvent( break; case OUTPUT_DEBUG_STRING_EVENT: event->u.DebugString.lpDebugStringData = wine_server_get_ptr( data.output_string.string ); - event->u.DebugString.fUnicode = data.output_string.unicode; + event->u.DebugString.fUnicode = FALSE; event->u.DebugString.nDebugStringLength = data.output_string.length; break; case RIP_EVENT: @@ -243,7 +243,6 @@ void WINAPI OutputDebugStringA( LPCSTR str ) SERVER_START_REQ( output_debug_string ) { req->string = wine_server_client_ptr( str ); - req->unicode = 0; req->length = strlen(str) + 1; wine_server_call( req ); } @@ -267,15 +266,15 @@ void WINAPI OutputDebugStringA( LPCSTR str ) */ void WINAPI OutputDebugStringW( LPCWSTR str ) { - SERVER_START_REQ( output_debug_string ) + UNICODE_STRING strW; + STRING strA; + + RtlInitUnicodeString( &strW, str ); + if (!RtlUnicodeStringToAnsiString( &strA, &strW, TRUE )) { - req->string = wine_server_client_ptr( str ); - req->unicode = 1; - req->length = (lstrlenW(str) + 1) * sizeof(WCHAR); - wine_server_call( req ); + OutputDebugStringA( strA.Buffer ); + RtlFreeAnsiString( &strA ); } - SERVER_END_REQ; - WARN("%s\n", debugstr_w(str)); }
diff --git a/include/wine/server_protocol.h b/include/wine/server_protocol.h index 0b18b50..7683e8a 100644 --- a/include/wine/server_protocol.h +++ b/include/wine/server_protocol.h @@ -115,7 +115,6 @@ typedef union struct { int code; - int unicode; client_ptr_t string; data_size_t length; } output_string; @@ -2048,8 +2047,6 @@ struct output_debug_string_request struct request_header __header; data_size_t length; client_ptr_t string; - int unicode; - char __pad_28[4]; }; struct output_debug_string_reply { @@ -5347,6 +5344,6 @@ union generic_reply struct set_window_layered_info_reply set_window_layered_info_reply; };
-#define SERVER_PROTOCOL_VERSION 390 +#define SERVER_PROTOCOL_VERSION 391
#endif /* __WINE_WINE_SERVER_PROTOCOL_H */ diff --git a/server/debugger.c b/server/debugger.c index faade98..795a24a 100644 --- a/server/debugger.c +++ b/server/debugger.c @@ -699,7 +699,6 @@ DECL_HANDLER(output_debug_string) debug_event_t data;
data.output_string.string = req->string; - data.output_string.unicode = req->unicode; data.output_string.length = req->length; generate_debug_event( current, OUTPUT_DEBUG_STRING_EVENT, &data ); } diff --git a/server/protocol.def b/server/protocol.def index 9748931..d7b31f4 100644 --- a/server/protocol.def +++ b/server/protocol.def @@ -131,9 +131,8 @@ typedef union struct { int code; /* OUTPUT_DEBUG_STRING_EVENT */ - int unicode; /* is it Unicode? */ - client_ptr_t string; /* string to display (in debugged process address space) */ data_size_t length; /* string length */ + client_ptr_t string; /* string to display (in debugged process address space) */ } output_string; struct { @@ -1580,7 +1579,6 @@ enum char_info_mode @REQ(output_debug_string) data_size_t length; /* string length */ client_ptr_t string; /* string to display (in debugged process address space) */ - int unicode; /* is it Unicode? */ @END
diff --git a/server/request.h b/server/request.h index c726130..02c7984 100644 --- a/server/request.h +++ b/server/request.h @@ -1102,8 +1102,7 @@ C_ASSERT( FIELD_OFFSET(struct get_exception_status_request, handle) == 12 ); C_ASSERT( sizeof(struct get_exception_status_reply) == 8 ); C_ASSERT( FIELD_OFFSET(struct output_debug_string_request, length) == 12 ); C_ASSERT( FIELD_OFFSET(struct output_debug_string_request, string) == 16 ); -C_ASSERT( FIELD_OFFSET(struct output_debug_string_request, unicode) == 24 ); -C_ASSERT( sizeof(struct output_debug_string_request) == 32 ); +C_ASSERT( sizeof(struct output_debug_string_request) == 24 ); C_ASSERT( FIELD_OFFSET(struct continue_debug_event_request, pid) == 12 ); C_ASSERT( FIELD_OFFSET(struct continue_debug_event_request, tid) == 16 ); C_ASSERT( FIELD_OFFSET(struct continue_debug_event_request, status) == 20 ); diff --git a/server/trace.c b/server/trace.c index 511c460..10c731c 100644 --- a/server/trace.c +++ b/server/trace.c @@ -656,8 +656,7 @@ static void dump_varargs_debug_event( const char *prefix, data_size_t size ) case OUTPUT_DEBUG_STRING_EVENT: fprintf( stderr, "%s{output_string", prefix ); dump_uint64( ",string=", &event.output_string.string ); - fprintf( stderr, ",unicode=%d,len=%u}", - event.output_string.unicode, event.output_string.length ); + fprintf( stderr, ",len=%u}", event.output_string.length ); break; case RIP_EVENT: fprintf( stderr, "%s{rip,err=%d,type=%d}", prefix, @@ -1994,7 +1993,6 @@ static void dump_output_debug_string_request( const struct output_debug_string_r { fprintf( stderr, " length=%u", req->length ); dump_uint64( ", string=", &req->string ); - fprintf( stderr, ", unicode=%d", req->unicode ); }
static void dump_continue_debug_event_request( const struct continue_debug_event_request *req )