Mercurial > emacs
changeset 109756:23910b0d49d9
(add_registry): Set path for runemacs.exe to use.
author | Jason Rumney <jasonr@wanchan> |
---|---|
date | Thu, 12 Aug 2010 22:28:43 +0800 |
parents | 1aa7bc345918 |
children | 818e325e0469 |
files | nt/ChangeLog nt/addpm.c |
diffstat | 2 files changed, 21 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- 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 <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,
--- 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);