Hugh McMaster : reg: Print the full key path without a trailing backslash.
Alexandre Julliard
julliard at winehq.org
Wed Apr 21 15:57:54 CDT 2021
Module: wine
Branch: master
Commit: e685718c3b701b67e1920a8e4f2ddce31d3ca800
URL: https://source.winehq.org/git/wine.git/?a=commit;h=e685718c3b701b67e1920a8e4f2ddce31d3ca800
Author: Hugh McMaster <hugh.mcmaster at outlook.com>
Date: Wed Apr 21 23:24:48 2021 +1000
reg: Print the full key path without a trailing backslash.
Signed-off-by: Hugh McMaster <hugh.mcmaster at outlook.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
programs/reg/reg.c | 14 +++++++++++---
programs/reg/tests/query.c | 2 +-
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/programs/reg/reg.c b/programs/reg/reg.c
index 69107d54b92..8ffbc5054d9 100644
--- a/programs/reg/reg.c
+++ b/programs/reg/reg.c
@@ -205,10 +205,10 @@ WCHAR *build_subkey_path(WCHAR *path, DWORD path_len, WCHAR *subkey_name, DWORD
WCHAR *get_long_key(HKEY root, WCHAR *path)
{
- DWORD i, array_size = ARRAY_SIZE(root_rels), len;
+ int i, len, path_len;
WCHAR *long_key;
- for (i = 0; i < array_size; i++)
+ for (i = 0; i < ARRAY_SIZE(root_rels); i++)
{
if (root == root_rels[i].key)
break;
@@ -223,7 +223,15 @@ WCHAR *get_long_key(HKEY root, WCHAR *path)
return long_key;
}
- len += lstrlenW(path) + 1; /* add one for the backslash */
+ path_len = lstrlenW(path);
+
+ if (path[path_len - 1] == '\\')
+ {
+ path[path_len - 1] = 0;
+ path_len--;
+ }
+
+ len += path_len + 1; /* add one for the concatenating backslash */
long_key = malloc((len + 1) * sizeof(WCHAR));
swprintf(long_key, len + 1, L"%s\\%s", root_rels[i].long_name, path);
return long_key;
diff --git a/programs/reg/tests/query.c b/programs/reg/tests/query.c
index 5c97554648e..34196c77aa4 100644
--- a/programs/reg/tests/query.c
+++ b/programs/reg/tests/query.c
@@ -251,7 +251,7 @@ static void test_query(void)
read_reg_output("reg query HKCU\\" KEY_BASE "\\ /s", buf, sizeof(buf), &r);
ok(r == REG_EXIT_SUCCESS, "got exit code %d, expected 0\n", r);
- compare_query(buf, test6, FALSE, TODO_REG_COMPARE);
+ compare_query(buf, test6, FALSE, 0);
read_reg_output("reg query HKCU\\" KEY_BASE " /v Wine /s", buf, sizeof(buf), &r);
ok(r == REG_EXIT_SUCCESS || r == REG_EXIT_FAILURE /* WinXP */,
More information about the wine-cvs
mailing list