From df627aeb42567b12718f730b95d06154b41060ff Mon Sep 17 00:00:00 2001 From: Rafal Kupiec Date: Fri, 16 Feb 2024 22:36:48 +0100 Subject: [PATCH] Turn %p format compliant with POSIX, add %P XTOS extension to print pointers uppercase --- xtoskrnl/rtl/widestr.c | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/xtoskrnl/rtl/widestr.c b/xtoskrnl/rtl/widestr.c index 43ba75a..12caa5b 100644 --- a/xtoskrnl/rtl/widestr.c +++ b/xtoskrnl/rtl/widestr.c @@ -857,7 +857,14 @@ RtlpFormatWideStringArgumentSpecifier(IN PRTL_PRINT_CONTEXT Context, FormatProperties.Radix = 8; break; case L'p': - /* Pointer argument as hexadecimal number (uppercase) */ + /* Pointer argument as hexadecimal number (lowercase) */ + FormatProperties.VariableType = Integer; + FormatProperties.IntegerSize = sizeof(UINT_PTR); + FormatProperties.Radix = 16; + FormatProperties.PrintRadix = TRUE; + break; + case L'P': + /* XTOS extension: Pointer argument as hexadecimal number (uppercase) */ FormatProperties.VariableType = Integer; FormatProperties.IntegerSize = sizeof(UINT_PTR); FormatProperties.Radix = 16; @@ -1504,17 +1511,8 @@ RtlpWriteWideStringIntegerValue(IN PRTL_PRINT_CONTEXT Context, Prefix[PrefixLength] = L'0'; PrefixLength += 1; - /* Check if uppercase is required */ - if(FormatProperties->PrintUpperCase != 0) - { - /* Write uppercase 'X' character */ - Prefix[PrefixLength] = L'X'; - } - else - { - /* Write lowercase 'x' character */ - Prefix[PrefixLength] = L'x'; - } + /* Write lowercase 'x' character */ + Prefix[PrefixLength] = L'x'; PrefixLength += 1; }