diff options
author | Jason Rumney <jasonr@wanchan> | 2010-08-12 22:28:43 +0800 |
---|---|---|
committer | Jason Rumney <jasonr@wanchan> | 2010-08-12 22:28:43 +0800 |
commit | 856a6b7709a7257722a4e5b14859ca6a422dad52 (patch) | |
tree | fab0c36520902d2865893fd1a454708951d14d7a /nt | |
parent | 7e82caa7c7cd4743a602d7de94fe05a2258f5c7c (diff) | |
download | emacs-856a6b7709a7257722a4e5b14859ca6a422dad52.tar.gz |
(add_registry): Set path for runemacs.exe to use.
Diffstat (limited to 'nt')
-rw-r--r-- | nt/ChangeLog | 4 | ||||
-rw-r--r-- | nt/addpm.c | 17 |
2 files changed, 21 insertions, 0 deletions
diff --git a/nt/ChangeLog b/nt/ChangeLog index 72920c2b58f..07550e1b2d2 100644 --- a/nt/ChangeLog +++ b/nt/ChangeLog @@ -1,3 +1,7 @@ +2010-08-12 Jason Rumney <jasonr@gnu.org> + + * addpm.c (add_registry): Set path for runemacs.exe to use. + 2010-08-08 Óscar Fuentes <ofv@wanadoo.es> * cmdproxy.c (main): Use _snprintf instead of wsprintf, diff --git a/nt/addpm.c b/nt/addpm.c index 20b289f6761..4fcebe2ca14 100644 --- a/nt/addpm.c +++ b/nt/addpm.c @@ -62,6 +62,8 @@ DdeCallback (UINT uType, UINT uFmt, HCONV hconv, #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 @@ add_registry (char *path) /* 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); |