From: Elizabeth Figura zfigura@codeweavers.com
--- programs/cmd/builtins.c | 12 +++++------- programs/cmd/tests/test_builtins.cmd.exp | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/programs/cmd/builtins.c b/programs/cmd/builtins.c index 832e9eeb797..5a7ad82f783 100644 --- a/programs/cmd/builtins.c +++ b/programs/cmd/builtins.c @@ -3953,17 +3953,15 @@ RETURN_CODE WCMD_assoc(const WCHAR *args, BOOL assoc) lstrcpyW(subkey, keyValue); if (!assoc) lstrcatW(subkey, L"\Shell\Open\Command");
- if (RegOpenKeyExW(key, subkey, 0, accessOptions, &readKey) == ERROR_SUCCESS) { - - valueLen = sizeof(keyValue); - rc = RegQueryValueExW(readKey, NULL, NULL, NULL, (LPBYTE)keyValue, &valueLen); + valueLen = sizeof(keyValue); + if (RegOpenKeyExW(key, subkey, 0, accessOptions, &readKey) == ERROR_SUCCESS && + RegQueryValueExW(readKey, NULL, NULL, NULL, (LPBYTE)keyValue, &valueLen) == ERROR_SUCCESS) { WCMD_output_asis(args); WCMD_output_asis(L"="); - /* If no default value found, leave line empty after '=' */ - if (rc == ERROR_SUCCESS) WCMD_output_asis(keyValue); + WCMD_output_asis(keyValue); WCMD_output_asis(L"\r\n"); RegCloseKey(readKey); - errorlevel = rc == ERROR_SUCCESS ? NO_ERROR : ERROR_INVALID_FUNCTION; + errorlevel = NO_ERROR; } else { WCHAR msgbuffer[MAXSTRING];
diff --git a/programs/cmd/tests/test_builtins.cmd.exp b/programs/cmd/tests/test_builtins.cmd.exp index aa3f6af3a60..f57336358d4 100644 --- a/programs/cmd/tests/test_builtins.cmd.exp +++ b/programs/cmd/tests/test_builtins.cmd.exp @@ -1771,7 +1771,7 @@ footype=cmd.exe /c "echo '%*'" @todo_wine@' one two three'@or_broken@Skipped as not enough permissions foobar@or_broken@Skipped as not enough permissions --- resetting association -@todo_wine@original value@or_broken@buggyXP@or_broken@!WINE_FOO! +original value@or_broken@buggyXP@or_broken@!WINE_FOO! ------------ Testing CALL ------------ --- external script foo@space@