Eric Pouech : winedbg: Simplify character output.
Alexandre Julliard
julliard at winehq.org
Tue May 24 15:55:01 CDT 2022
Module: wine
Branch: master
Commit: 66c3b8176b74dc933e21786010bb88b789baa6fb
URL: https://source.winehq.org/git/wine.git/?a=commit;h=66c3b8176b74dc933e21786010bb88b789baa6fb
Author: Eric Pouech <eric.pouech at gmail.com>
Date: Fri May 20 17:03:27 2022 +0200
winedbg: Simplify character output.
Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
---
programs/winedbg/memory.c | 24 ++++++++++++------------
1 file changed, 12 insertions(+), 12 deletions(-)
diff --git a/programs/winedbg/memory.c b/programs/winedbg/memory.c
index 16d322cd82c..aa5c32b42f2 100644
--- a/programs/winedbg/memory.c
+++ b/programs/winedbg/memory.c
@@ -500,7 +500,6 @@ static void print_typed_basic(const struct dbg_lvalue* lvalue)
case btInt:
case btLong:
if (!memory_fetch_integer(lvalue, size, TRUE, &val_int)) return;
- if (size == 1) goto print_char;
dbg_print_hex(size, val_int);
break;
case btUInt:
@@ -513,17 +512,18 @@ static void print_typed_basic(const struct dbg_lvalue* lvalue)
dbg_printf("%f", val_real);
break;
case btChar:
- case btWChar:
- /* sometimes WCHAR is defined as btChar with size = 2, so discrimate
- * Ansi/Unicode based on size, not on basetype
- */
if (!memory_fetch_integer(lvalue, size, TRUE, &val_int)) return;
- print_char:
- if ((size == 1 && isprint((char)val_int)) ||
- (size == 2 && val_int < 127 && isprint((char)val_int)))
+ if (size == 1 && isprint((char)val_int))
dbg_printf("'%c'", (char)val_int);
else
- dbg_printf("%d", (int)val_int);
+ dbg_print_hex(size, val_int);
+ break;
+ case btWChar:
+ if (!memory_fetch_integer(lvalue, size, TRUE, &val_int)) return;
+ if (size == 2 && iswprint((WCHAR)val_int))
+ dbg_printf("L'%lc'", (WCHAR)val_int);
+ else
+ dbg_print_hex(size, val_int);
break;
case btBool:
if (!memory_fetch_integer(lvalue, size, TRUE, &val_int)) return;
@@ -549,11 +549,11 @@ static void print_typed_basic(const struct dbg_lvalue* lvalue)
char buffer[1024];
if (!val_ptr) dbg_printf("0x0");
- else if (((bt == btChar || bt == btInt) && size64 == 1) || (bt == btUInt && size64 == 2))
+ else if ((bt == btChar && size64 == 1) || (bt == btWChar && size64 == 2))
{
if (memory_get_string(dbg_curr_process, val_ptr, sub_lvalue.in_debuggee,
- size64 == 2, buffer, sizeof(buffer)))
- dbg_printf("\"%s\"", buffer);
+ bt == btWChar, buffer, sizeof(buffer)))
+ dbg_printf("%s\"%s\"", bt == btWChar ? "L" : "", buffer);
else
dbg_printf("*** invalid address %p ***", val_ptr);
break;
More information about the wine-cvs
mailing list