annotate netinstall/regedit.cc @ 4709:db7068430402

Add explicit GPL v2 or later notices to Bill Perry's code, where such notices are missing. This is done with Bill Perry's stated permission, in private email to me.
author Jerry James <james@xemacs.org>
date Mon, 05 Oct 2009 11:08:59 -0600
parents 146d342ff859
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
1 /*
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
2 * Copyright (c) 2000, Red Hat, Inc.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
3 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
4 * This program is free software; you can redistribute it and/or modify
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
5 * it under the terms of the GNU General Public License as published by
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
6 * the Free Software Foundation; either version 2 of the License, or
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
7 * (at your option) any later version.
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
8 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
9 * A copy of the GNU General Public License can be found at
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
10 * http://www.gnu.org/
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
11 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
12 * Written by DJ Delorie <dj@cygnus.com>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
13 *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
14 */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
15
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
16 /* Manipulate the registry for XEmacs. */
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
17
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
18 #include "win32.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
19
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
20 #include <stdio.h>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
21 #if defined(CYGWIN) || defined(MINGW)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
22 #include <cygwin/version.h>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
23 #include <sys/mount.h>
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
24 #endif
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
25
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
26 #include "reginfo.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
27 #include "regedit.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
28 #include "msg.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
29 #include "resource.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
30 #include "dialog.h"
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
31
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
32 static char *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
33 find_cygwin_mount (HKEY rkey, int *istext)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
34 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
35 char buf[1000];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
36 char *retval = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
37 HKEY key;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
38 DWORD retvallen = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
39 DWORD flags = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
40 DWORD type;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
41
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
42 #if defined(CYGWIN) || defined(MINGW)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
43 sprintf (buf, "Software\\%s\\%s\\%s\\/",
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
44 CYGWIN_INFO_CYGNUS_REGISTRY_NAME,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
45 CYGWIN_INFO_CYGWIN_REGISTRY_NAME,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
46 CYGWIN_INFO_CYGWIN_MOUNT_REGISTRY_NAME);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
47
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
48 if (RegOpenKeyEx (rkey, buf, 0, KEY_READ, &key) != ERROR_SUCCESS)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
49 return 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
50
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
51 if (RegQueryValueEx (key, "native", 0, &type, 0, &retvallen)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
52 == ERROR_SUCCESS)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
53 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
54 retval = new char[retvallen+1];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
55 if (RegQueryValueEx (key, "native", 0, &type, (BYTE *)retval, &retvallen)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
56 != ERROR_SUCCESS)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
57 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
58 delete retval;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
59 retval = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
60 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
61 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
62
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
63 retvallen = sizeof (flags);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
64 RegQueryValueEx (key, "flags", 0, &type, (BYTE *)&flags, &retvallen);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
65
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
66 RegCloseKey (key);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
67
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
68 if (retval)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
69 *istext = (flags & MOUNT_BINARY) ? 0 : 1;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
70 return retval;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
71 #else
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
72 return 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
73 #endif
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
74 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
75
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
76 static char *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
77 find_xemacs_root (HKEY rkey, int* isnative)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
78 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
79 char buf[1000];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
80 char *retval = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
81 HKEY key;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
82 DWORD retvallen = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
83 DWORD type;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
84 DWORD itype;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
85
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
86 sprintf (buf, "Software\\%s\\%s",
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
87 XEMACS_INFO_XEMACS_ORG_REGISTRY_NAME,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
88 XEMACS_INFO_XEMACS_REGISTRY_NAME);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
89
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
90 if (RegOpenKeyEx (rkey, buf, 0, KEY_READ, &key) != ERROR_SUCCESS)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
91 return 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
92
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
93 if (RegQueryValueEx (key, XEMACS_INFO_XEMACS_ROOT_KEY,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
94 0, &type, 0, &retvallen) == ERROR_SUCCESS)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
95 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
96 retval = new char[retvallen+1];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
97 if (RegQueryValueEx (key, XEMACS_INFO_XEMACS_ROOT_KEY,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
98 0, &type, (BYTE *)retval, &retvallen)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
99 != ERROR_SUCCESS)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
100 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
101 delete retval;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
102 retval = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
103 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
104 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
105
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
106 retvallen = sizeof (itype);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
107 RegQueryValueEx (key, XEMACS_INFO_XEMACS_ROOT_TYPE,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
108 0, &type, (BYTE *)&itype, &retvallen);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
109
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
110 if (itype == 1)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
111 *isnative = 1;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
112 else
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
113 *isnative = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
114
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
115 RegCloseKey (key);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
116
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
117 return retval;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
118 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
119
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
120 char *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
121 find_root_location (int *issystem, int *isnative)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
122 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
123 char *rv;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
124 if ((rv = find_xemacs_root (HKEY_CURRENT_USER, isnative)))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
125 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
126 *issystem = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
127 return rv;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
128 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
129 else if ((rv = find_xemacs_root (HKEY_LOCAL_MACHINE, isnative)))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
130 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
131 *issystem = 1;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
132 return rv;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
133 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
134 return 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
135 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
136
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
137 char *
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
138 find_cygwin_root (int *issystem)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
139 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
140 char *rv;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
141 int istext;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
142 if ((rv = find_cygwin_mount (HKEY_CURRENT_USER, &istext)))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
143 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
144 *issystem = 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
145 return rv;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
146 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
147 else if ((rv = find_cygwin_mount (HKEY_LOCAL_MACHINE, &istext)))
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
148 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
149 *issystem = 1;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
150 return rv;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
151 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
152 return 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
153 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
154
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
155 void
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
156 create_xemacs_root (char *path, int issystem, int isnative)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
157 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
158 char buf[1000];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
159 HKEY key;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
160 DWORD disposition;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
161 DWORD itype = isnative ? 1 : 0;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
162
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
163 remove_xemacs_root ();
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
164
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
165 sprintf (buf, "Software\\%s\\%s",
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
166 XEMACS_INFO_XEMACS_ORG_REGISTRY_NAME,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
167 XEMACS_INFO_XEMACS_REGISTRY_NAME);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
168
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
169 HKEY kr = issystem ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
170 if (RegCreateKeyEx (kr, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
171 0, &key, &disposition) != ERROR_SUCCESS)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
172 fatal ("create_xemacs_root");
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
173
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
174 RegSetValueEx (key, XEMACS_INFO_XEMACS_ROOT_KEY,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
175 0, REG_SZ, (BYTE *)path, strlen (path)+1);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
176 RegSetValueEx (key, XEMACS_INFO_XEMACS_ROOT_TYPE,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
177 0, REG_DWORD, (BYTE *)&itype, sizeof (itype));
452
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
178 // write out the package path
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
179 sprintf (buf, "~\\.xemacs;%s\\site-packages;%s\\xemacs-packages",
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
180 path, path);
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
181 RegSetValueEx (key, XEMACS_INFO_XEMACS_PACKAGE_KEY,
3d3049ae1304 Import from CVS: tag r21-2-41
cvs
parents: 448
diff changeset
182 0, REG_SZ, (BYTE *)buf, strlen (buf)+1);
657
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
183 RegCloseKey (key);
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
184 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
185
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
186 void
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
187 set_app_path (char *exe, char* path, int issystem)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
188 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
189 char buf[1000];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
190 HKEY key;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
191 DWORD disposition;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
192
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
193 sprintf (buf, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\%s",
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
194 exe);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
195
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
196 HKEY kr = issystem ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
197 RegDeleteKey (kr, buf);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
198
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
199 if (RegCreateKeyEx (kr, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
200 0, &key, &disposition) != ERROR_SUCCESS)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
201 fatal ("set_app_path");
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
202
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
203 RegSetValueEx (key, "Path",
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
204 0, REG_SZ, (BYTE *)path, strlen (path)+1);
657
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
205 RegCloseKey (key);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
206 }
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
207
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
208 void
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
209 set_install_path (char* path, int issystem)
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
210 {
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
211 char buf[1000];
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
212 HKEY key;
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
213 DWORD disposition;
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
214
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
215 sprintf (buf, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\XEmacs");
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
216
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
217 HKEY kr = issystem ? HKEY_LOCAL_MACHINE : HKEY_CURRENT_USER;
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
218 RegDeleteKey (kr, buf);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
219
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
220 if (RegCreateKeyEx (kr, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
221 0, &key, &disposition) != ERROR_SUCCESS)
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
222 fatal ("set_install_path");
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
223
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
224 RegSetValueEx (key, "DisplayName",
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
225 0, REG_SZ, (BYTE *)"XEmacs", strlen ("XEmacs")+1);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
226
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
227 sprintf (buf, "%s\\setup.exe -u", path);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
228 RegSetValueEx (key, "UninstallString",
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
229 0, REG_SZ, (BYTE *)buf, strlen (buf)+1);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
230 RegCloseKey (key);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
231 }
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
232
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
233 void
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
234 setup_explorer (char* file_type, char* name, char *exe)
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
235 {
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
236 char buf[1000];
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
237 char ftype[32];
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
238 HKEY key;
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
239 DWORD disposition;
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
240
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
241 sprintf (buf, ".%s", file_type);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
242 RegDeleteKey (HKEY_CLASSES_ROOT, buf);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
243
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
244 if (RegCreateKeyEx (HKEY_CLASSES_ROOT, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
245 0, &key, &disposition) != ERROR_SUCCESS)
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
246 fatal ("setup_explorer");
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
247
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
248 // set default key
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
249 sprintf (ftype, "%sfile", file_type);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
250 RegSetValueEx (key, NULL,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
251 0, REG_SZ, (BYTE *)ftype, strlen (ftype)+1);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
252 RegCloseKey (key);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
253
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
254 // create file type entry
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
255 RegDeleteKey (HKEY_CLASSES_ROOT, ftype);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
256 if (RegCreateKeyEx (HKEY_CLASSES_ROOT, ftype, 0, "XEmacs",
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
257 0, KEY_ALL_ACCESS,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
258 0, &key, &disposition) != ERROR_SUCCESS)
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
259 fatal ("setup_explorer");
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
260 RegSetValueEx (key, NULL,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
261 0, REG_SZ, (BYTE *)name, strlen (name)+1);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
262 RegSetValueEx (key, "AlwaysShowExt",
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
263 0, REG_SZ, (BYTE *)"", strlen ("")+1);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
264 RegCloseKey (key);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
265
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
266 // make xemacs file the default icon
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
267 sprintf(buf, "%s\\DefaultIcon", ftype);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
268 if (RegCreateKeyEx (HKEY_CLASSES_ROOT, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
269 0, &key, &disposition) != ERROR_SUCCESS)
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
270 fatal ("setup_explorer");
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
271
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
272 sprintf(buf, "%s,1", exe);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
273 RegSetValueEx (key, NULL,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
274 0, REG_SZ, (BYTE *)buf, strlen (buf)+1);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
275 RegCloseKey (key);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
276
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
277 // command default key (exe)
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
278 sprintf(buf, "%s\\shell\\Open\\command", ftype);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
279 if (RegCreateKeyEx (HKEY_CLASSES_ROOT, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
280 0, &key, &disposition) != ERROR_SUCCESS)
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
281 fatal ("setup_explorer");
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
282
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
283 sprintf(buf, "\"%s\"", exe); // Don't need %1 because dde will open the file
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
284 RegSetValueEx (key, NULL,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
285 0, REG_SZ, (BYTE *)buf, strlen (buf)+1);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
286 RegCloseKey (key);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
287
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
288 // ddeexec
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
289 sprintf(buf, "%s\\shell\\Open\\ddeexec", ftype);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
290 if (RegCreateKeyEx (HKEY_CLASSES_ROOT, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
291 0, &key, &disposition) != ERROR_SUCCESS)
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
292 fatal ("setup_explorer");
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
293
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
294 #define DDE_OPEN "Open(\"%1\")"
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
295 RegSetValueEx (key, NULL,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
296 0, REG_SZ, (BYTE *)DDE_OPEN, strlen (DDE_OPEN)+1);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
297 RegCloseKey (key);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
298
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
299 // ddeexec application
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
300 sprintf(buf, "%s\\shell\\Open\\ddeexec\\application", ftype);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
301 if (RegCreateKeyEx (HKEY_CLASSES_ROOT, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
302 0, &key, &disposition) != ERROR_SUCCESS)
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
303 fatal ("setup_explorer");
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
304 RegSetValueEx (key, NULL,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
305 0, REG_SZ, (BYTE *)"XEmacs", strlen ("XEmacs")+1);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
306 RegCloseKey (key);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
307
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
308 // ddeexec topic
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
309 sprintf(buf, "%s\\shell\\Open\\ddeexec\\topic", ftype);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
310 if (RegCreateKeyEx (HKEY_CLASSES_ROOT, buf, 0, "XEmacs", 0, KEY_ALL_ACCESS,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
311 0, &key, &disposition) != ERROR_SUCCESS)
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
312 fatal ("setup_explorer");
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
313 RegSetValueEx (key, NULL,
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
314 0, REG_SZ, (BYTE *)"system", strlen ("system")+1);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
315 RegCloseKey (key);
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
316 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
317
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
318 static void
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
319 remove1 (HKEY rkey)
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
320 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
321 char buf[1000];
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
322
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
323 sprintf (buf, "Software\\%s\\%s",
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
324 XEMACS_INFO_XEMACS_ORG_REGISTRY_NAME,
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
325 XEMACS_INFO_XEMACS_REGISTRY_NAME);
666
146d342ff859 [xemacs-hg @ 2001-09-25 02:35:32 by andyp]
andyp
parents: 657
diff changeset
326 RegDeleteKey (rkey, buf);
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
327
666
146d342ff859 [xemacs-hg @ 2001-09-25 02:35:32 by andyp]
andyp
parents: 657
diff changeset
328 sprintf (buf, "Software\\%s",
146d342ff859 [xemacs-hg @ 2001-09-25 02:35:32 by andyp]
andyp
parents: 657
diff changeset
329 XEMACS_INFO_XEMACS_ORG_REGISTRY_NAME);
448
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
330 RegDeleteKey (rkey, buf);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
331 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
332
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
333 void
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
334 remove_xemacs_root ()
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
335 {
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
336 remove1 (HKEY_LOCAL_MACHINE);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
337 remove1 (HKEY_CURRENT_USER);
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
338 }
3078fd1074e8 Import from CVS: tag r21-2-39
cvs
parents:
diff changeset
339
657
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
340 void
666
146d342ff859 [xemacs-hg @ 2001-09-25 02:35:32 by andyp]
andyp
parents: 657
diff changeset
341 remove_app_path (char *exe)
657
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
342 {
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
343 char buf[1000];
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
344 sprintf (buf, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\App Paths\\%s",
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
345 exe);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
346
666
146d342ff859 [xemacs-hg @ 2001-09-25 02:35:32 by andyp]
andyp
parents: 657
diff changeset
347 RegDeleteKey (HKEY_LOCAL_MACHINE, buf);
146d342ff859 [xemacs-hg @ 2001-09-25 02:35:32 by andyp]
andyp
parents: 657
diff changeset
348 RegDeleteKey (HKEY_CURRENT_USER, buf);
657
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
349 }
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
350
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
351 void
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
352 remove_uninstall_path ()
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
353 {
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
354 char buf[1000];
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
355 sprintf (buf, "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\XEmacs");
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
356
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
357 RegDeleteKey (HKEY_LOCAL_MACHINE, buf);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
358 RegDeleteKey (HKEY_CURRENT_USER, buf);
ce0b3f2eff35 [xemacs-hg @ 2001-09-09 04:37:41 by andyp]
andyp
parents: 452
diff changeset
359 }