emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r101058: (add_registry): Set path for


From: Jason Rumney
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r101058: (add_registry): Set path for runemacs.exe to use.
Date: Thu, 12 Aug 2010 22:28:43 +0800
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 101058
committer: Jason Rumney <address@hidden>
branch nick: trunk
timestamp: Thu 2010-08-12 22:28:43 +0800
message:
  (add_registry): Set path for runemacs.exe to use.
modified:
  nt/ChangeLog
  nt/addpm.c
=== modified file 'nt/ChangeLog'
--- a/nt/ChangeLog      2010-08-08 21:12:29 +0000
+++ b/nt/ChangeLog      2010-08-12 14:28:43 +0000
@@ -1,3 +1,7 @@
+2010-08-12  Jason Rumney  <address@hidden>
+
+       * addpm.c (add_registry): Set path for runemacs.exe to use.
+
 2010-08-08  Óscar Fuentes  <address@hidden>
 
        * cmdproxy.c (main): Use _snprintf instead of wsprintf,

=== modified file 'nt/addpm.c'
--- a/nt/addpm.c        2010-07-20 20:21:03 +0000
+++ b/nt/addpm.c        2010-08-12 14:28:43 +0000
@@ -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);


reply via email to

[Prev in Thread] Current Thread [Next in Thread]