# HG changeset patch # User Andrew Innes # Date 925640935 0 # Node ID 8387918b52c6a8c523f150426ab5802d76c6e3cf # Parent 65ebab3569e04fd288b0cbe6737f21bd8f2fd921 (w32_get_string_resource): Check for name in current user area, and if not found look in the local machine area. diff -r 65ebab3569e0 -r 8387918b52c6 src/w32reg.c --- a/src/w32reg.c Sun May 02 10:27:27 1999 +0000 +++ b/src/w32reg.c Sun May 02 10:28:55 1999 +0000 @@ -40,13 +40,16 @@ DWORD dwType; DWORD cbData; BOOL ok = FALSE; + HKEY hive = HKEY_CURRENT_USER; + trykey: + BLOCK_INPUT; - /* Check both the current user and the local machine to see if we have any resources */ - - if (RegOpenKeyEx (HKEY_CURRENT_USER, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS - || RegOpenKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS) + /* Check both the current user and the local machine to see if we have + any resources */ + + if (RegOpenKeyEx (hive, REG_ROOT, 0, KEY_READ, &hrootkey) == ERROR_SUCCESS) { char *keyname; @@ -76,13 +79,19 @@ if (!ok) { - if (lpvalue) xfree (lpvalue); + if (lpvalue) + { + xfree (lpvalue); + lpvalue = NULL; + } + if (hive == HKEY_CURRENT_USER) + { + hive = HKEY_LOCAL_MACHINE; + goto trykey; + } return (NULL); } - else - { - return (lpvalue); - } + return (lpvalue); } /* Retrieve the string resource specified by NAME with CLASS from