# HG changeset patch # User Jason Rumney # Date 1281623323 -28800 # Node ID 23910b0d49d98129560eb261d9498780290c4f37 # Parent 1aa7bc345918634c6694de089d458431099d7b13 (add_registry): Set path for runemacs.exe to use. diff -r 1aa7bc345918 -r 23910b0d49d9 nt/ChangeLog --- a/nt/ChangeLog Thu Aug 12 14:46:24 2010 +0200 +++ b/nt/ChangeLog Thu Aug 12 22:28:43 2010 +0800 @@ -1,3 +1,7 @@ +2010-08-12 Jason Rumney + + * addpm.c (add_registry): Set path for runemacs.exe to use. + 2010-08-08 Óscar Fuentes * cmdproxy.c (main): Use _snprintf instead of wsprintf, diff -r 1aa7bc345918 -r 23910b0d49d9 nt/addpm.c --- a/nt/addpm.c Thu Aug 12 14:46:24 2010 +0200 +++ b/nt/addpm.c Thu Aug 12 22:28:43 2010 +0800 @@ -62,6 +62,8 @@ #define REG_GTK "SOFTWARE\\GTK\\2.0" #define REG_APP_PATH \ "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\emacs.exe" +#define REG_RUNEMACS_PATH \ + "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\runemacs.exe" static struct entry { @@ -129,10 +131,25 @@ /* Make sure the emacs bin directory continues to be searched first by including it as well. */ char *dll_paths; + HKEY runemacs_key = NULL; len = strlen (path) + 5 + size; dll_paths = (char *) alloca (size + strlen (path) + 1); sprintf (dll_paths, "%s\\bin;%s", path, gtk_path); RegSetValueEx (hrootkey, "Path", 0, REG_SZ, dll_paths, len); + + /* Set the same path for runemacs.exe, as the Explorer shell + looks this up, so the above does not take effect when + emacs.exe is spawned from runemacs.exe. */ + if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, REG_RUNEMACS_PATH, + 0, "", REG_OPTION_NON_VOLATILE, + KEY_WRITE, NULL, &runemacs_key, NULL) + == ERROR_SUCCESS) + { + RegSetValueEx (runemacs_key, "Path", 0, REG_SZ, + dll_paths, len); + + RegCloseKey (runemacs_key); + } } } RegCloseKey (gtk_key);