Mercurial > emacs
annotate nt/addpm.c @ 19584:17db1ee36bbb
(last): Accept optional second argument.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Wed, 27 Aug 1997 22:34:30 +0000 |
parents | d0ffa428c6e3 |
children | 11f3ea181591 |
rev | line source |
---|---|
12181 | 1 /* Add entries to the GNU Emacs Program Manager folder. |
2 Copyright (C) 1995 Free Software Foundation, Inc. | |
3 | |
14185
aba3b91c8b3d
Update FSF's ddress in preamble
Erik Naggum <erik@naggum.no>
parents:
13438
diff
changeset
|
4 This file is part of GNU Emacs. |
12181 | 5 |
14185
aba3b91c8b3d
Update FSF's ddress in preamble
Erik Naggum <erik@naggum.no>
parents:
13438
diff
changeset
|
6 GNU Emacs is free software; you can redistribute it and/or modify |
aba3b91c8b3d
Update FSF's ddress in preamble
Erik Naggum <erik@naggum.no>
parents:
13438
diff
changeset
|
7 it under the terms of the GNU General Public License as published by |
aba3b91c8b3d
Update FSF's ddress in preamble
Erik Naggum <erik@naggum.no>
parents:
13438
diff
changeset
|
8 the Free Software Foundation; either version 2, or (at your option) |
aba3b91c8b3d
Update FSF's ddress in preamble
Erik Naggum <erik@naggum.no>
parents:
13438
diff
changeset
|
9 any later version. |
12181 | 10 |
14185
aba3b91c8b3d
Update FSF's ddress in preamble
Erik Naggum <erik@naggum.no>
parents:
13438
diff
changeset
|
11 GNU Emacs is distributed in the hope that it will be useful, |
aba3b91c8b3d
Update FSF's ddress in preamble
Erik Naggum <erik@naggum.no>
parents:
13438
diff
changeset
|
12 but WITHOUT ANY WARRANTY; without even the implied warranty of |
aba3b91c8b3d
Update FSF's ddress in preamble
Erik Naggum <erik@naggum.no>
parents:
13438
diff
changeset
|
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
aba3b91c8b3d
Update FSF's ddress in preamble
Erik Naggum <erik@naggum.no>
parents:
13438
diff
changeset
|
14 GNU General Public License for more details. |
12181 | 15 |
14185
aba3b91c8b3d
Update FSF's ddress in preamble
Erik Naggum <erik@naggum.no>
parents:
13438
diff
changeset
|
16 You should have received a copy of the GNU General Public License |
aba3b91c8b3d
Update FSF's ddress in preamble
Erik Naggum <erik@naggum.no>
parents:
13438
diff
changeset
|
17 along with GNU Emacs; see the file COPYING. If not, write to |
aba3b91c8b3d
Update FSF's ddress in preamble
Erik Naggum <erik@naggum.no>
parents:
13438
diff
changeset
|
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, |
aba3b91c8b3d
Update FSF's ddress in preamble
Erik Naggum <erik@naggum.no>
parents:
13438
diff
changeset
|
19 Boston, MA 02111-1307, USA. */ |
12181 | 20 |
12329 | 21 /**************************************************************************** |
22 * | |
23 * Program: addpm (adds emacs to the Windows program manager) | |
24 * | |
25 * Usage: | |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
26 * argv[1] = install path for emacs |
12329 | 27 * argv[2] = full path to icon for emacs (optional) |
12181 | 28 */ |
29 | |
12329 | 30 #include <windows.h> |
31 #include <ddeml.h> | |
32 #include <stdlib.h> | |
33 #include <stdio.h> | |
12181 | 34 |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
35 HDDEDATA CALLBACK |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
36 DdeCallback (UINT uType, UINT uFmt, HCONV hconv, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
37 HSZ hsz1, HSZ hsz2, HDDEDATA hdata, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
38 DWORD dwData1, DWORD dwData2) |
12329 | 39 { |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
40 return ((HDDEDATA) NULL); |
12329 | 41 } |
12181 | 42 |
12329 | 43 #define DdeCommand(str) \ |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
44 DdeClientTransaction (str, strlen (str)+1, HConversation, (HSZ)NULL, \ |
12329 | 45 CF_TEXT, XTYP_EXECUTE, 30000, NULL) |
12181 | 46 |
15130
493eee829532
(REG_ROOT): Don't use a trailing backslash.
Geoff Voelker <voelker@cs.washington.edu>
parents:
14185
diff
changeset
|
47 #define REG_ROOT "SOFTWARE\\GNU\\Emacs" |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
48 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
49 static struct entry |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
50 { |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
51 char *name; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
52 char *value; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
53 } |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
54 env_vars[] = |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
55 { |
15130
493eee829532
(REG_ROOT): Don't use a trailing backslash.
Geoff Voelker <voelker@cs.washington.edu>
parents:
14185
diff
changeset
|
56 {"emacs_dir", NULL}, |
16828
0a7ce510e9c5
(env_vars): Add site-lisp to EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
15322
diff
changeset
|
57 {"EMACSLOADPATH", "%emacs_dir%/lisp;%emacs_dir%/site-lisp"}, |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
58 {"SHELL", "%emacs_dir/bin/cmdproxy.exe%"}, |
15322
eb3d8a25866a
(env_vars): Use slashes, not backslashes.
Richard M. Stallman <rms@gnu.org>
parents:
15188
diff
changeset
|
59 {"EMACSDATA", "%emacs_dir%/etc"}, |
eb3d8a25866a
(env_vars): Use slashes, not backslashes.
Richard M. Stallman <rms@gnu.org>
parents:
15188
diff
changeset
|
60 {"EMACSPATH", "%emacs_dir%/bin"}, |
eb3d8a25866a
(env_vars): Use slashes, not backslashes.
Richard M. Stallman <rms@gnu.org>
parents:
15188
diff
changeset
|
61 {"EMACSLOCKDIR", "%emacs_dir%/lock"}, |
eb3d8a25866a
(env_vars): Use slashes, not backslashes.
Richard M. Stallman <rms@gnu.org>
parents:
15188
diff
changeset
|
62 {"INFOPATH", "%emacs_dir%/info"}, |
eb3d8a25866a
(env_vars): Use slashes, not backslashes.
Richard M. Stallman <rms@gnu.org>
parents:
15188
diff
changeset
|
63 {"EMACSDOC", "%emacs_dir%/etc"}, |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
64 {"TERM", "cmd"} |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
65 }; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
66 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
67 BOOL |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
68 add_registry (path) |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
69 char *path; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
70 { |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
71 HKEY hrootkey = NULL; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
72 DWORD dwDisp; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
73 int i; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
74 BOOL ok = TRUE; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
75 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
76 /* Check both the current user and the local machine to see if we |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
77 have any resources. */ |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
78 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
79 if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
80 0, "", REG_OPTION_NON_VOLATILE, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
81 KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
82 && RegCreateKeyEx (HKEY_CURRENT_USER, REG_ROOT, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
83 0, "", REG_OPTION_NON_VOLATILE, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
84 KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS) |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
85 { |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
86 return FALSE; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
87 } |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
88 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
89 for (i = 0; i < (sizeof (env_vars) / sizeof (env_vars[0])); i++) |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
90 { |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
91 char * value = env_vars[i].value ? env_vars[i].value : path; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
92 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
93 if (RegSetValueEx (hrootkey, env_vars[i].name, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
94 0, REG_EXPAND_SZ, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
95 value, lstrlen (value) + 1) != ERROR_SUCCESS) |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
96 ok = FALSE; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
97 } |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
98 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
99 RegCloseKey (hrootkey); |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
100 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
101 return (ok); |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
102 } |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
103 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
104 int |
12329 | 105 main (argc, argv) |
106 int argc; | |
107 char *argv[]; | |
12181 | 108 { |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
109 DWORD idDde = 0; |
12329 | 110 HCONV HConversation; |
111 HSZ ProgMan; | |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
112 char modname[MAX_PATH]; |
12181 | 113 char additem[MAX_PATH*2 + 100]; |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
114 char *lpext; |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
115 char *emacs_path; |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
116 char *p; |
12181 | 117 |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
118 /* If no args specified, use our location to set emacs_path. */ |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
119 #if 0 |
12329 | 120 if (argc < 2 || argc > 3) |
12181 | 121 { |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
122 fprintf (stderr, "usage: addpm emacs_path [icon_path]\n"); |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
123 exit (1); |
12181 | 124 } |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
125 #endif |
12329 | 126 |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
127 if (argc > 1) |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
128 emacs_path = argv[1]; |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
129 else |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
130 { |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
131 if (!GetModuleFileName (NULL, modname, MAX_PATH) || |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
132 (p = strrchr (modname, '\\')) == NULL) |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
133 { |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
134 fprintf (stderr, "fatal error"); |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
135 exit (1); |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
136 } |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
137 *p = 0; |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
138 |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
139 /* Set emacs_path to emacs_dir if we are in "%emacs_dir%\bin". */ |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
140 if ((p = strrchr (modname, '\\')) && stricmp (p, "\\bin") == 0) |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
141 { |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
142 *p = 0; |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
143 emacs_path = modname; |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
144 } |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
145 else |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
146 { |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
147 fprintf (stderr, "usage: addpm emacs_path [icon_path]\n"); |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
148 exit (1); |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
149 } |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
150 |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
151 /* Tell user what we are going to do. */ |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
152 { |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
153 char msg[ MAX_PATH ]; |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
154 sprintf (msg, "Install Emacs at %s?\n", emacs_path); |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
155 if (!MessageBox (NULL, msg, "Install Emacs", MB_OKCANCEL | MB_ICONQUESTION)) |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
156 { |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
157 fprintf (stderr, "Install cancelled\n"); |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
158 exit (1); |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
159 } |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
160 } |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
161 } |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
162 |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
163 lpext = add_registry (emacs_path) ? "exe" : "bat"; |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
164 |
12329 | 165 DdeInitialize (&idDde, (PFNCALLBACK)DdeCallback, APPCMD_CLIENTONLY, 0); |
166 | |
167 ProgMan = DdeCreateStringHandle (idDde, "PROGMAN", CP_WINANSI); | |
168 | |
169 if (HConversation = DdeConnect (idDde, ProgMan, ProgMan, NULL)) | |
12181 | 170 { |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
171 DdeCommand ("[CreateGroup (Gnu Emacs)]"); |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
172 DdeCommand ("[ReplaceItem (Emacs)]"); |
15130
493eee829532
(REG_ROOT): Don't use a trailing backslash.
Geoff Voelker <voelker@cs.washington.edu>
parents:
14185
diff
changeset
|
173 sprintf (additem, "[AddItem (%s\\bin\\runemacs.%s, Emacs%c%s)]", |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
174 emacs_path, lpext, (argc>2 ? ',' : ' '), |
12329 | 175 (argc>2 ? argv[2] : "")); |
176 DdeCommand (additem); | |
177 | |
178 DdeDisconnect (HConversation); | |
12181 | 179 } |
180 | |
12329 | 181 DdeFreeStringHandle (idDde, ProgMan); |
12181 | 182 |
12329 | 183 DdeUninitialize (idDde); |
12181 | 184 |
185 return (0); | |
186 } |