Hugh McMaster : regedit/tests: Combine and rename the r_exec_import_*str functions.
Module: wine Branch: master Commit: ee11f6fff5f6332f58ce51a844cedab6719e57ee URL: http://source.winehq.org/git/wine.git/?a=commit;h=ee11f6fff5f6332f58ce51a844... Author: Hugh McMaster <hugh.mcmaster(a)outlook.com> Date: Mon Sep 18 08:27:43 2017 +0000 regedit/tests: Combine and rename the r_exec_import_*str functions. Signed-off-by: Hugh McMaster <hugh.mcmaster(a)outlook.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- 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 1f2284f..5912c25 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)
participants (1)
-
Alexandre Julliard