Mercurial > emacs
annotate nt/addpm.c @ 25279:03cb8fb8ab28
(reftex-pop-to-bibtex-entry): Fixed
conflict with pop-up-frames.
(reftex-special-environment-parsers): New constant.
(reftex-label-alist): car of an entry can also be a function.
(reftex-what-special-env): new function.
(reftex-label-location): Call `reftex-what-special-env'.
(reftex-compile-variables): Check for symbol in
`reftex-label-alist'.
(reftex-what-environment): fixed bug with stacked environments of
same kind (e.g. enumerate).
(reftex-process-string): Preserve default directory.
(reftex-label-alist-builtin): changed prefixes of endnote and
footnote. Also the magic words.
(reftex-reference): Interprete new option
`reftex-fref-is-default'.
(reftex-replace-prefix-escapes): Interprete new `%S' format.
(reftex-toc-mouse-view-line): Command removed (had no binding).
(reftex-everything-regexp): New function.
(reftex-nearest-match): Made better.
(reftex-toc-find-section): Use new version of
`reftex-nearest-match'.
(reftex-insert-docstruct): adapted to work with the index stuff.
(reftex-parse-from-file): Find index entries as well.
(reftex-toc-toggle-index): New function
(reftex-toc-map): `i' is now used to togle the index, File
boundaries has been moved to `F'.
(reftex-select-label-map): Toggling display of file boundaries is
now on the `F' key, for consistency with `reftex-toc-map'.
(reftex-erase-all-selection-and-index-buffers): Renamed from
`reftex-erase-all-selection-buffer'. Now also kills the index
buffers.
(reftex-viewing-cross-references): Customization group renamed
from reftex-viewing-cross-references-and-citations.
(reftex-index-macro-regexp,
reftex-find-index-entry-regexp-format): New variables
(reftex-macros-with-index): New variable
(reftex-add-index-macros): New function
(reftex-renumber-simple-labels, reftex-translate): Allow for
multiple labels in a single ref command.
(reftex-index-support): New customization group
(reftex-support-index, reftex-index-special-chars,
reftex-index-macros, reftex-index-default-macro,
reftex-index-default-tag, reftex-index-math-format,
reftex-index-section-letters, reftex-index-include-context,
reftex-index-follow-mode, reftex-index-header-face,
reftex-index-section-face, reftex-index-tag-face,
reftex-index-face): New options
(reftex-index-map, reftex-index-menu, reftex-last-index-file,
reftex-index-tag, reftex-index-return-marker,
reftex-index-restriction-indicator, reftex-index-restriction-data,
reftex-index-macro-regexp, reftex-index-level-re,
reftex-index-key-end-re, reftex-find-index-entry-regexp-format,
reftex-everything-regexp-no-index, reftex-index-re,
reftex-macros-with-index, reftex-index-macro-alist): New variables
(reftex-index-help, reftex-index-macros-builtin,
reftex-key-to-index-macro-alist, reftex-query-index-macro-prompt,
reftex-query-index-macro-help): New constants
(reftex-index-selection-or-word, reftex-index,
reftex-default-index, reftex-update-default-index,
reftex-index-complete-tag, reftex-index-select-tag,
reftex-index-complete-key, reftex-index-update-taglist,
reftex-index-globally, reftex-index-mode, reftex-index-show-entry,
reftex-display-index, reftex-insert-index,
reftex-index-insert-new-letter, reftex-get-restriction,
reftex-index-pre-command-hook, reftex-index-post-command-hook,
reftex-index-show-help, reftex-index-next, reftex-index-previous,
reftex-index-toggle-follow, reftex-index-toggle-context,
reftex-index-view-entry, reftex-index-goto-entry-and-hide,
reftex-index-goto-entry, reftex-index-mouse-goto-line-and-hide,
reftex-index-quit, reftex-index-quit-and-kill,
reftex-index-goto-toc, reftex-index-rescan, reftex-index-Rescan,
reftex-index-revert, reftex-index-switch-index-tag,
reftex-index-restrict-to-section, reftex-index-widen,
reftex-index-restriction-forward,
reftex-index-restriction-backward, reftex-index-visit-location,
reftex-index-analyze-entry, reftex-index-globalize,
reftex-index-edit, reftex-index-toggle-range-beginning,
reftex-index-toggle-range-end, reftex-index-edit-key,
reftex-index-edit-attribute, reftex-index-edit-visual,
reftex-index-edit-part, reftex-index-level-down,
reftex-index-level-up, reftex-index-kill, reftex-index-undo,
reftex-index-change-entry, reftex-index-goto-letter,
reftex-add-index-macros, reftex-ensure-index-support,
reftex-index-info-safe, reftex-index-info): New functions.
Most of the code moved to other files.
author | Carsten Dominik <dominik@science.uva.nl> |
---|---|
date | Mon, 16 Aug 1999 07:38:41 +0000 |
parents | 903554be7bfc |
children | 4c7c77193f79 |
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}, |
19717
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
57 {"EMACSLOADPATH", "%emacs_dir%/site-lisp;%emacs_dir%/lisp"}, |
20011
f9429fb3dd05
addpm.c (env_vars): Fix misplaced % in SHELL entry.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19717
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"}, |
19717
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
62 /* We no longer set INFOPATH because Info-default-directory-list |
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
63 is then ignored. */ |
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
64 /* {"INFOPATH", "%emacs_dir%/info"}, */ |
15322
eb3d8a25866a
(env_vars): Use slashes, not backslashes.
Richard M. Stallman <rms@gnu.org>
parents:
15188
diff
changeset
|
65 {"EMACSDOC", "%emacs_dir%/etc"}, |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
66 {"TERM", "cmd"} |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
67 }; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
68 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
69 BOOL |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
70 add_registry (path) |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
71 char *path; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
72 { |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
73 HKEY hrootkey = NULL; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
74 DWORD dwDisp; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
75 int i; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
76 BOOL ok = TRUE; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
77 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
78 /* 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
|
79 have any resources. */ |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
80 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
81 if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, REG_ROOT, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
82 0, "", REG_OPTION_NON_VOLATILE, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
83 KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
84 && RegCreateKeyEx (HKEY_CURRENT_USER, REG_ROOT, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
85 0, "", REG_OPTION_NON_VOLATILE, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
86 KEY_WRITE, NULL, &hrootkey, &dwDisp) != ERROR_SUCCESS) |
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 return FALSE; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
89 } |
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 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
|
92 { |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
93 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
|
94 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
95 if (RegSetValueEx (hrootkey, env_vars[i].name, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
96 0, REG_EXPAND_SZ, |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
97 value, lstrlen (value) + 1) != ERROR_SUCCESS) |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
98 ok = FALSE; |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
99 } |
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 RegCloseKey (hrootkey); |
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 return (ok); |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
104 } |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
105 |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
106 int |
12329 | 107 main (argc, argv) |
108 int argc; | |
109 char *argv[]; | |
12181 | 110 { |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
111 DWORD idDde = 0; |
12329 | 112 HCONV HConversation; |
113 HSZ ProgMan; | |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
114 char modname[MAX_PATH]; |
12181 | 115 char additem[MAX_PATH*2 + 100]; |
19717
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
116 char *prog_name; |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
117 char *emacs_path; |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
118 char *p; |
12181 | 119 |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
120 /* 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
|
121 #if 0 |
12329 | 122 if (argc < 2 || argc > 3) |
12181 | 123 { |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
124 fprintf (stderr, "usage: addpm emacs_path [icon_path]\n"); |
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
125 exit (1); |
12181 | 126 } |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
127 #endif |
12329 | 128 |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
129 if (argc > 1) |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
130 emacs_path = argv[1]; |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
131 else |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
132 { |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
133 if (!GetModuleFileName (NULL, modname, MAX_PATH) || |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
134 (p = strrchr (modname, '\\')) == NULL) |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
135 { |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
136 fprintf (stderr, "fatal error"); |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
137 exit (1); |
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 *p = 0; |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
140 |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
141 /* 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
|
142 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
|
143 { |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
144 *p = 0; |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
145 emacs_path = modname; |
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 else |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
148 { |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
149 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
|
150 exit (1); |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
151 } |
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 /* 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
|
154 { |
22796
903554be7bfc
(main): Explicitly check result of message box for OK.
Geoff Voelker <voelker@cs.washington.edu>
parents:
20011
diff
changeset
|
155 int result; |
903554be7bfc
(main): Explicitly check result of message box for OK.
Geoff Voelker <voelker@cs.washington.edu>
parents:
20011
diff
changeset
|
156 |
19396
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
157 char msg[ MAX_PATH ]; |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
158 sprintf (msg, "Install Emacs at %s?\n", emacs_path); |
22796
903554be7bfc
(main): Explicitly check result of message box for OK.
Geoff Voelker <voelker@cs.washington.edu>
parents:
20011
diff
changeset
|
159 result = MessageBox (NULL, msg, "Install Emacs", MB_OKCANCEL | MB_ICONQUESTION); |
903554be7bfc
(main): Explicitly check result of message box for OK.
Geoff Voelker <voelker@cs.washington.edu>
parents:
20011
diff
changeset
|
160 if (result != IDOK) |
19396
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 fprintf (stderr, "Install cancelled\n"); |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
163 exit (1); |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
164 } |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
165 } |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
166 } |
d0ffa428c6e3
(env_vars): Set SHELL to cmdproxy.
Geoff Voelker <voelker@cs.washington.edu>
parents:
16828
diff
changeset
|
167 |
19717
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
168 prog_name = add_registry (emacs_path) ? "runemacs.exe" : "emacs.bat"; |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
169 |
12329 | 170 DdeInitialize (&idDde, (PFNCALLBACK)DdeCallback, APPCMD_CLIENTONLY, 0); |
171 | |
172 ProgMan = DdeCreateStringHandle (idDde, "PROGMAN", CP_WINANSI); | |
173 | |
19717
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
174 HConversation = DdeConnect (idDde, ProgMan, ProgMan, NULL); |
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
175 if (HConversation != 0) |
12181 | 176 { |
19717
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
177 DdeCommand ("[CreateGroup (\"Gnu Emacs\")]"); |
13438
705eb8c3d935
(env_vars): New variable.
Geoff Voelker <voelker@cs.washington.edu>
parents:
12329
diff
changeset
|
178 DdeCommand ("[ReplaceItem (Emacs)]"); |
19717
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
179 if (argc > 2) |
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
180 sprintf (additem, "[AddItem (\"%s\\bin\\%s\", Emacs, \"%s\")]", |
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
181 emacs_path, prog_name, argv[2]); |
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
182 else |
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
183 sprintf (additem, "[AddItem (\"%s\\bin\\%s\", Emacs)]", |
11f3ea181591
(env_vars): Put site-lisp before lisp in EMACSLOADPATH.
Geoff Voelker <voelker@cs.washington.edu>
parents:
19396
diff
changeset
|
184 emacs_path, prog_name); |
12329 | 185 DdeCommand (additem); |
186 | |
187 DdeDisconnect (HConversation); | |
12181 | 188 } |
189 | |
12329 | 190 DdeFreeStringHandle (idDde, ProgMan); |
12181 | 191 |
12329 | 192 DdeUninitialize (idDde); |
12181 | 193 |
194 return (0); | |
195 } |