[PATCH 2/3] regedit/tests: Combine and rename the r_exec_import_*str functions

Hugh McMaster hugh.mcmaster at outlook.com
Mon Sep 18 03:27:43 CDT 2017


Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
---
 programs/regedit/tests/regedit.c | 56 +++++++++++++++++-----------------------
 1 file changed, 23 insertions(+), 33 deletions(-)

diff --git a/programs/regedit/tests/regedit.c b/programs/regedit/tests/regedit.c
index 1f2284f836..5912c25be5 100644
--- a/programs/regedit/tests/regedit.c
+++ b/programs/regedit/tests/regedit.c
@@ -67,48 +67,38 @@ static BOOL write_file(const void *str, DWORD size)
     return ret;
 }
 
-#define exec_import_str(c) r_exec_import_str(__LINE__, c)
-static BOOL r_exec_import_str(unsigned line, const char *file_contents)
-{
-    BOOL br;
-
-    if (!write_file(file_contents, strlen(file_contents)))
-        return FALSE;
-
-    run_regedit_exe("regedit.exe /s test.reg");
-
-    br = DeleteFileA("test.reg");
-    lok(br, "DeleteFile failed: %u\n", GetLastError());
+#define exec_import_str(c)  import_reg(__LINE__,c,FALSE)
+#define exec_import_wstr(c) import_reg(__LINE__,c,TRUE)
 
-    return br;
-}
-
-#define exec_import_wstr(c) r_exec_import_wstr(__LINE__, c)
-static BOOL r_exec_import_wstr(unsigned line, const char *file_contents)
+static BOOL import_reg(unsigned line, const char *contents, BOOL unicode)
 {
-    int lenA, len, memsize;
-    WCHAR *wstr;
-    BOOL br = FALSE;
+    int lenA;
+    BOOL ret;
 
-    lenA = strlen(file_contents);
+    lenA = strlen(contents);
 
-    len = MultiByteToWideChar(CP_UTF8, 0, file_contents, lenA, NULL, 0);
-    memsize = len * sizeof(WCHAR);
-    wstr = HeapAlloc(GetProcessHeap(), 0, memsize);
-    if (!wstr) return FALSE;
-    MultiByteToWideChar(CP_UTF8, 0, file_contents, lenA, wstr, len);
+    if (unicode)
+    {
+        int len = MultiByteToWideChar(CP_UTF8, 0, contents, lenA, NULL, 0);
+        int size = len * sizeof(WCHAR);
+        WCHAR *wstr = HeapAlloc(GetProcessHeap(), 0, size);
+        if (!wstr) return FALSE;
+        MultiByteToWideChar(CP_UTF8, 0, contents, lenA, wstr, len);
+
+        ret = write_file(wstr, size);
+        HeapFree(GetProcessHeap(), 0, wstr);
+    }
+    else
+        ret = write_file(contents, lenA);
 
-    if (!write_file(wstr, memsize))
-        goto exit;
+    if (!ret) return FALSE;
 
     run_regedit_exe("regedit.exe /s test.reg");
 
-    br = DeleteFileA("test.reg");
-    lok(br, "DeleteFile failed: %u\n", GetLastError());
+    ret = DeleteFileA("test.reg");
+    lok(ret, "DeleteFile failed: %u\n", GetLastError());
 
-exit:
-    HeapFree(GetProcessHeap(), 0, wstr);
-    return br;
+    return ret;
 }
 
 #define TODO_REG_TYPE    (0x0001u)
-- 
2.14.1




More information about the wine-patches mailing list