[PATCH 01/11] tools/winedump: move string conversion of machine and language into dedicated helpers

Eric Pouech eric.pouech at gmail.com
Sat Aug 21 03:22:22 CDT 2021


Signed-off-by: Eric Pouech <eric.pouech at gmail.com>

---
 tools/winedump/msc.c |   96 ++++++++++++++++++++++++++++----------------------
 1 file changed, 53 insertions(+), 43 deletions(-)

diff --git a/tools/winedump/msc.c b/tools/winedump/msc.c
index fbbbfe4ab7f..d037cec89dd 100644
--- a/tools/winedump/msc.c
+++ b/tools/winedump/msc.c
@@ -264,6 +264,54 @@ static const char* get_property(unsigned prop)
     return tmp;
 }
 
+static const char* get_machine(unsigned m)
+{
+    const char*     machine;
+
+    switch (m)
+    {
+    case 0x00:      machine = "Intel 8080"; break;
+    case 0x01:      machine = "Intel 8086"; break;
+    case 0x02:      machine = "Intel 80286"; break;
+    case 0x03:      machine = "Intel 80386"; break;
+    case 0x04:      machine = "Intel 80486"; break;
+    case 0x05:      machine = "Intel Pentium"; break;
+    case 0x10:      machine = "MIPS R4000"; break;
+    default:
+        {
+            static char tmp[16];
+            sprintf(tmp, "machine=%x", m);
+            machine = tmp;
+        }
+        break;
+    }
+    return machine;
+}
+
+static const char* get_language(unsigned l)
+{
+    const char* lang;
+
+    switch (l)
+    {
+    case 0x00:      lang = "C"; break;
+    case 0x01:      lang = "C++"; break;
+    case 0x02:      lang = "Fortran"; break;
+    case 0x03:      lang = "Masm"; break;
+    case 0x04:      lang = "Pascal"; break;
+    case 0x05:      lang = "Basic"; break;
+    case 0x06:      lang = "Cobol"; break;
+    default:
+        {
+            static char tmp[16];
+            sprintf(tmp, "lang=%x", l);
+            lang = tmp;
+        }
+        break;
+    }
+    return lang;
+}
+
 static void do_field(const unsigned char* start, const unsigned char* end)
 {
     /*
@@ -1131,49 +1179,11 @@ BOOL codeview_dump_symbols(const void* root, unsigned long size)
             break;
 
         case S_COMPILE:
-            {
-                const char*     machine;
-                const char*     lang;
-
-                switch (sym->compiland_v1.unknown & 0xFF)
-                {
-                case 0x00:      machine = "Intel 8080"; break;
-                case 0x01:      machine = "Intel 8086"; break;
-                case 0x02:      machine = "Intel 80286"; break;
-                case 0x03:      machine = "Intel 80386"; break;
-                case 0x04:      machine = "Intel 80486"; break;
-                case 0x05:      machine = "Intel Pentium"; break;
-                case 0x10:      machine = "MIPS R4000"; break;
-                default:
-                    {
-                        static char tmp[16];
-                        sprintf(tmp, "machine=%x", sym->compiland_v1.unknown & 0xFF);
-                        machine = tmp;
-                    }
-                    break;
-                }
-                switch ((sym->compiland_v1.unknown >> 8) & 0xFF)
-                {
-                case 0x00:      lang = "C"; break;
-                case 0x01:      lang = "C++"; break;
-                case 0x02:      lang = "Fortran"; break;
-                case 0x03:      lang = "Masm"; break;
-                case 0x04:      lang = "Pascal"; break;
-                case 0x05:      lang = "Basic"; break;
-                case 0x06:      lang = "Cobol"; break;
-                default:
-                    {
-                        static char tmp[16];
-                        sprintf(tmp, "language=%x", (sym->compiland_v1.unknown >> 8) & 0xFF);
-                        lang = tmp;
-                    }
-                    break;
-                }
-
-                printf("\tS-Compiland V1 '%s' %s %s unk:%x\n",
-                       p_string(&sym->compiland_v1.p_name), machine, lang,
-                       sym->compiland_v1.unknown >> 16);
-            }
+            printf("\tS-Compiland V1 '%s' %s %s unk:%x\n",
+                   p_string(&sym->compiland_v1.p_name),
+                   get_machine(sym->compiland_v1.unknown & 0xFF),
+                   get_language((sym->compiland_v1.unknown >> 8) & 0xFF),
+                   sym->compiland_v1.unknown >> 16);
             break;
 
         case S_COMPILE2_ST:




More information about the wine-devel mailing list