1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-27 07:37:33 +00:00

(add_registry): Set path for runemacs.exe to use.

This commit is contained in:
Jason Rumney 2010-08-12 22:28:43 +08:00
parent 7e82caa7c7
commit 856a6b7709
2 changed files with 21 additions and 0 deletions

View File

@ -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,

View File

@ -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);