summaryrefslogtreecommitdiff
path: root/PC/import_nt.c
diff options
context:
space:
mode:
Diffstat (limited to 'PC/import_nt.c')
-rw-r--r--PC/import_nt.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/PC/import_nt.c b/PC/import_nt.c
index f0a27350b0..573106fd3f 100644
--- a/PC/import_nt.c
+++ b/PC/import_nt.c
@@ -34,7 +34,7 @@ FILE *PyWin_FindRegisteredModule(const char *moduleName,
#endif
struct filedescr *fdp = NULL;
FILE *fp;
- HKEY keyBase = HKEY_LOCAL_MACHINE;
+ HKEY keyBase = HKEY_CURRENT_USER;
int modNameSize;
long regStat;
@@ -56,8 +56,17 @@ FILE *PyWin_FindRegisteredModule(const char *moduleName,
modNameSize = pathLen;
regStat = RegQueryValue(keyBase, moduleKey, pathBuf, &modNameSize);
- if (regStat != ERROR_SUCCESS)
- return NULL;
+ if (regStat != ERROR_SUCCESS) {
+ /* No user setting - lookup in machine settings */
+ keyBase = HKEY_LOCAL_MACHINE;
+ /* be anal - failure may have reset size param */
+ modNameSize = pathLen;
+ regStat = RegQueryValue(keyBase, moduleKey,
+ pathBuf, &modNameSize);
+
+ if (regStat != ERROR_SUCCESS)
+ return NULL;
+ }
/* use the file extension to locate the type entry. */
for (fdp = _PyImport_Filetab; fdp->suffix != NULL; fdp++) {
size_t extLen = strlen(fdp->suffix);