[PATCH 12/13] reg: Export REG_DWORD values

Hugh McMaster hugh.mcmaster at outlook.com
Sun Dec 3 00:50:23 CST 2017


Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
 programs/reg/export.c    | 15 +++++++++++++++
 programs/reg/tests/reg.c |  4 ++--
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/programs/reg/export.c b/programs/reg/export.c
index 6e59ca4c8d..b5662633a5 100644
--- a/programs/reg/export.c
+++ b/programs/reg/export.c
@@ -118,6 +118,14 @@ static void export_string_data(WCHAR **buf, WCHAR *data, size_t size)
     heap_free(str);
 }
 
+static void export_dword_data(WCHAR **buf, DWORD *data)
+{
+    static const WCHAR fmt[] = {'d','w','o','r','d',':','%','0','8','x',0};
+
+    *buf = heap_xalloc(15 * sizeof(WCHAR));
+    sprintfW(*buf, fmt, *data);
+}
+
 static size_t export_hex_data_type(HANDLE hFile, DWORD type)
 {
     static const WCHAR hex[] = {'h','e','x',':',0};
@@ -192,6 +200,13 @@ static void export_data(HANDLE hFile, WCHAR *value_name, DWORD value_len,
     case REG_SZ:
         export_string_data(&buf, data, size);
         break;
+    case REG_DWORD:
+        if (size)
+        {
+            export_dword_data(&buf, data);
+            break;
+        }
+        /* fall through */
     case REG_NONE:
     case REG_EXPAND_SZ:
     case REG_BINARY:
diff --git a/programs/reg/tests/reg.c b/programs/reg/tests/reg.c
index 88ec308954..1ec9ca0bd9 100644
--- a/programs/reg/tests/reg.c
+++ b/programs/reg/tests/reg.c
@@ -4451,7 +4451,7 @@ static void test_export(void)
 
     run_reg_exe("reg export HKEY_CURRENT_USER\\" KEY_BASE " file.reg", &r);
     ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
-    ok(compare_export("file.reg", simple_test, TODO_REG_COMPARE), "compare_export() failed\n");
+    ok(compare_export("file.reg", simple_test, 0), "compare_export() failed\n");
 
     /* Test registry export with a complex data structure */
     add_key(hkey, "Subkey1", &subkey);
@@ -4573,7 +4573,7 @@ static void test_export(void)
 
     run_reg_exe("reg export HKEY_CURRENT_USER\\" KEY_BASE " file.reg", &r);
     ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
-    ok(compare_export("file.reg", hex_types_test, TODO_REG_COMPARE), "compare_export() failed\n");
+    ok(compare_export("file.reg", hex_types_test, 0), "compare_export() failed\n");
 
     delete_key(HKEY_CURRENT_USER, KEY_BASE);
 }
-- 
2.15.0




More information about the wine-devel mailing list