Module: vkd3d Branch: master Commit: 0c6cd3ba21ccdbb934dae16713b4fb2c6988ff0f URL: https://source.winehq.org/git/vkd3d.git/?a=commit;h=0c6cd3ba21ccdbb934dae167...
Author: Zebediah Figura zfigura@codeweavers.com Date: Sat Oct 3 16:25:11 2020 -0500
vkd3d-common: Correctly escape whitespace characters in debugstr_*().
Signed-off-by: Zebediah Figura zfigura@codeweavers.com Signed-off-by: Henri Verbeet hverbeet@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
libs/vkd3d-common/debug.c | 66 +++++++++++++++-------------------------------- 1 file changed, 21 insertions(+), 45 deletions(-)
diff --git a/libs/vkd3d-common/debug.c b/libs/vkd3d-common/debug.c index 33deed6..5e49cf1 100644 --- a/libs/vkd3d-common/debug.c +++ b/libs/vkd3d-common/debug.c @@ -114,6 +114,24 @@ const char *vkd3d_dbg_sprintf(const char *fmt, ...) return buffer; }
+static int get_escape_char(int c) +{ + switch (c) + { + case '"': + case '\': + return c; + case '\t': + return 't'; + case '\n': + return 'n'; + case '\r': + return 'r'; + default: + return 0; + } +} + const char *debugstr_a(const char *str) { char *buffer, *ptr; @@ -127,21 +145,7 @@ const char *debugstr_a(const char *str) *ptr++ = '"'; while ((c = *str++) && ptr <= buffer + VKD3D_DEBUG_BUFFER_SIZE - 8) { - int escape_char; - - switch (c) - { - case '"': - case '\': - case '\n': - case '\r': - case '\t': - escape_char = c; - break; - default: - escape_char = 0; - break; - } + int escape_char = get_escape_char(c);
if (escape_char) { @@ -187,21 +191,7 @@ static const char *debugstr_w16(const uint16_t *wstr) *ptr++ = '"'; while ((c = *wstr++) && ptr <= buffer + VKD3D_DEBUG_BUFFER_SIZE - 10) { - int escape_char; - - switch (c) - { - case '"': - case '\': - case '\n': - case '\r': - case '\t': - escape_char = c; - break; - default: - escape_char = 0; - break; - } + int escape_char = get_escape_char(c);
if (escape_char) { @@ -247,21 +237,7 @@ static const char *debugstr_w32(const uint32_t *wstr) *ptr++ = '"'; while ((c = *wstr++) && ptr <= buffer + VKD3D_DEBUG_BUFFER_SIZE - 10) { - int escape_char; - - switch (c) - { - case '"': - case '\': - case '\n': - case '\r': - case '\t': - escape_char = c; - break; - default: - escape_char = 0; - break; - } + int escape_char = get_escape_char(c);
if (escape_char) {