aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason Rumney2010-08-12 22:28:43 +0800
committerJason Rumney2010-08-12 22:28:43 +0800
commit856a6b7709a7257722a4e5b14859ca6a422dad52 (patch)
treefab0c36520902d2865893fd1a454708951d14d7a
parent7e82caa7c7cd4743a602d7de94fe05a2258f5c7c (diff)
downloademacs-856a6b7709a7257722a4e5b14859ca6a422dad52.tar.gz
emacs-856a6b7709a7257722a4e5b14859ca6a422dad52.zip
(add_registry): Set path for runemacs.exe to use.
-rw-r--r--nt/ChangeLog4
-rw-r--r--nt/addpm.c17
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 @@
12010-08-12 Jason Rumney <jasonr@gnu.org>
2
3 * addpm.c (add_registry): Set path for runemacs.exe to use.
4
12010-08-08 Óscar Fuentes <ofv@wanadoo.es> 52010-08-08 Óscar Fuentes <ofv@wanadoo.es>
2 6
3 * cmdproxy.c (main): Use _snprintf instead of wsprintf, 7 * 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,
62#define REG_GTK "SOFTWARE\\GTK\\2.0" 62#define REG_GTK "SOFTWARE\\GTK\\2.0"
63#define REG_APP_PATH \ 63#define REG_APP_PATH \
64 "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\emacs.exe" 64 "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\emacs.exe"
65#define REG_RUNEMACS_PATH \
66 "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\runemacs.exe"
65 67
66static struct entry 68static struct entry
67{ 69{
@@ -129,10 +131,25 @@ add_registry (char *path)
129 /* Make sure the emacs bin directory continues to be searched 131 /* Make sure the emacs bin directory continues to be searched
130 first by including it as well. */ 132 first by including it as well. */
131 char *dll_paths; 133 char *dll_paths;
134 HKEY runemacs_key = NULL;
132 len = strlen (path) + 5 + size; 135 len = strlen (path) + 5 + size;
133 dll_paths = (char *) alloca (size + strlen (path) + 1); 136 dll_paths = (char *) alloca (size + strlen (path) + 1);
134 sprintf (dll_paths, "%s\\bin;%s", path, gtk_path); 137 sprintf (dll_paths, "%s\\bin;%s", path, gtk_path);
135 RegSetValueEx (hrootkey, "Path", 0, REG_SZ, dll_paths, len); 138 RegSetValueEx (hrootkey, "Path", 0, REG_SZ, dll_paths, len);
139
140 /* Set the same path for runemacs.exe, as the Explorer shell
141 looks this up, so the above does not take effect when
142 emacs.exe is spawned from runemacs.exe. */
143 if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, REG_RUNEMACS_PATH,
144 0, "", REG_OPTION_NON_VOLATILE,
145 KEY_WRITE, NULL, &runemacs_key, NULL)
146 == ERROR_SUCCESS)
147 {
148 RegSetValueEx (runemacs_key, "Path", 0, REG_SZ,
149 dll_paths, len);
150
151 RegCloseKey (runemacs_key);
152 }
136 } 153 }
137 } 154 }
138 RegCloseKey (gtk_key); 155 RegCloseKey (gtk_key);