Zebediah Figura : vkd3d-common: Correctly escape whitespace characters in debugstr_*().

Alexandre Julliard julliard at winehq.org
Mon Oct 5 15:46:14 CDT 2020


Module: vkd3d
Branch: master
Commit: 0c6cd3ba21ccdbb934dae16713b4fb2c6988ff0f
URL:    https://source.winehq.org/git/vkd3d.git/?a=commit;h=0c6cd3ba21ccdbb934dae16713b4fb2c6988ff0f

Author: Zebediah Figura <zfigura at 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 at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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)
         {




More information about the wine-cvs mailing list