Mercurial > emacs
annotate lisp/help-macro.el @ 24419:30e478cd167e
(shell-command-default-error-buffer): Renamed from
shell-command-on-region-default-error-buffer.
(shell-command-on-region): Mention in echo area when there
is some error output. Mention success or failure, too.
Accumulate multiple error outputs
going forward, with formfeed in between. Display the error buffer
when we have put something in it.
(shell-command): Add the ERROR-BUFFER argument feature.
author | Karl Heuer <kwzh@gnu.org> |
---|---|
date | Mon, 01 Mar 1999 03:19:32 +0000 |
parents | 8e860ff326de |
children | 866b59632531 |
rev | line source |
---|---|
2530
1e1a30d5d523
Name changed to fit in a 14-character limit.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2456
diff
changeset
|
1 ;;; help-macro.el --- Makes command line help such as help-for-help |
2456 | 2 |
7298 | 3 ;; Copyright (C) 1993, 1994 Free Software Foundation, Inc. |
2456 | 4 |
5 ;; Author: Lynn Slater <lrs@indetech.com> | |
17976 | 6 ;; Maintainer: FSF |
2456 | 7 ;; Created: : Mon Oct 1 11:42:39 1990 |
8 ;; Adapted-By: ESR | |
9 | |
10 ;; This file is part of GNU Emacs. | |
11 | |
12 ;; GNU Emacs is free software; you can redistribute it and/or modify | |
13 ;; it under the terms of the GNU General Public License as published by | |
14 ;; the Free Software Foundation; either version 2, or (at your option) | |
15 ;; any later version. | |
16 | |
17 ;; GNU Emacs is distributed in the hope that it will be useful, | |
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 ;; GNU General Public License for more details. | |
21 | |
22 ;; You should have received a copy of the GNU General Public License | |
14169 | 23 ;; along with GNU Emacs; see the file COPYING. If not, write to the |
24 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, | |
25 ;; Boston, MA 02111-1307, USA. | |
2456 | 26 |
27 ;;; Commentary: | |
14169 | 28 |
29 ;; This file supplies the macro make-help-screen which constructs | |
2456 | 30 ;; single character dispatching with browsable help such as that provided |
31 ;; by help-for-help. This can be used to make many modes easier to use; for | |
32 ;; example, the Gnu Emacs Empire Tool uses this for every "nested" mode map | |
33 ;; called from the main mode map. | |
34 | |
2530
1e1a30d5d523
Name changed to fit in a 14-character limit.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2456
diff
changeset
|
35 ;; The name of this package was changed from help-screen.el to |
1e1a30d5d523
Name changed to fit in a 14-character limit.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2456
diff
changeset
|
36 ;; help-macro.el in order to fit in a 14-character limit. |
1e1a30d5d523
Name changed to fit in a 14-character limit.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2456
diff
changeset
|
37 |
2456 | 38 ;;-> *********************** Example of use ********************************* |
39 | |
40 ;;->(make-help-screen help-for-empire-redistribute-map | |
41 ;;-> "c:civ m:mil p:population f:food ?" | |
42 ;;-> "You have discovered the GEET redistribution commands | |
43 ;;-> From here, you can use the following options: | |
44 ;;-> | |
45 ;;->c Redistribute civs from overfull sectors into connected underfull ones | |
46 ;;-> The functions typically named by empire-ideal-civ-fcn control | |
47 ;;-> based in part on empire-sector-civ-threshold | |
48 ;;->m Redistribute military using levels given by empire-ideal-mil-fcn | |
49 ;;->p Redistribute excess population to highways for max pop growth | |
50 ;;-> Excess is any sector so full babies will not be born. | |
51 ;;->f Even out food on highways to highway min and leave levels | |
52 ;;-> This is good to pump max food to all warehouses/dist pts | |
53 ;;-> | |
54 ;;-> | |
55 ;;->Use \\[help-for-empire-redistribute-map] for help on redistribution. | |
56 ;;->Use \\[help-for-empire-extract-map] for help on data extraction. | |
57 ;;->Please use \\[describe-key] to find out more about any of the other keys." | |
58 ;;-> empire-shell-redistribute-map) | |
59 | |
60 ;;-> (define-key c-mp "\C-h" 'help-for-empire-redistribute-map) | |
61 ;;-> (define-key c-mp help-character 'help-for-empire-redistribute-map) | |
62 | |
63 ;;; Change Log: | |
64 ;; | |
65 ;; 22-Jan-1991 Lynn Slater x2048 | |
66 ;; Last Modified: Mon Oct 1 11:43:52 1990 #3 (Lynn Slater) | |
67 ;; documented better | |
68 | |
69 ;;; Code: | |
70 | |
2696
479c78c63f89
Provide help-macro, not help-screen.
Richard M. Stallman <rms@gnu.org>
parents:
2530
diff
changeset
|
71 (provide 'help-macro) |
2456 | 72 (require 'backquote) |
73 | |
5679
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
74 ;;;###autoload |
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
75 (defvar three-step-help nil |
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
76 "*Non-nil means give more info about Help command in three steps. |
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
77 The three steps are simple prompt, prompt with all options, |
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
78 and window listing and describing the options. |
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
79 A value of nil means skip the middle step, so that |
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
80 \\[help-command] \\[help-command] gives the window that lists the options.") |
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
81 |
2456 | 82 (defmacro make-help-screen (fname help-line help-text helped-map) |
5378
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
83 "Construct help-menu function name FNAME. |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
84 When invoked, FNAME shows HELP-LINE and reads a command using HELPED-MAP. |
8709 | 85 If the command is the help character, FNAME displays HELP-TEXT |
5378
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
86 and continues trying to read a command using HELPED-MAP. |
23331
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
87 If HELP-TEXT contains the sequence `%THIS-KEY%', that is replaced |
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
88 with the key sequence that invoked FNAME. |
5378
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
89 When FNAME finally does get a command, it executes that command |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
90 and then returns." |
23331
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
91 (let ((doc-fn (intern (concat (symbol-name fname) "-doc")))) |
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
92 `(progn |
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
93 (defun ,doc-fn () ,help-text) |
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
94 (defun ,fname () |
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
95 "Help command." |
2456 | 96 (interactive) |
97 (let ((line-prompt | |
23331
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
98 (substitute-command-keys ,help-line))) |
5679
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
99 (if three-step-help |
14316
d3b19c9e0bac
(make-help-screen): Pass proper format string to message.
Karl Heuer <kwzh@gnu.org>
parents:
14169
diff
changeset
|
100 (message "%s" line-prompt)) |
23331
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
101 (let* ((help-screen (documentation (quote ,doc-fn))) |
8242
824eeccd8203
(make-help-screen): Bind overriding-local-map
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
102 ;; We bind overriding-local-map for very small |
824eeccd8203
(make-help-screen): Bind overriding-local-map
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
103 ;; sections, *excluding* where we switch buffers |
824eeccd8203
(make-help-screen): Bind overriding-local-map
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
104 ;; and where we execute the chosen help command. |
824eeccd8203
(make-help-screen): Bind overriding-local-map
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
105 (local-map (make-sparse-keymap)) |
5640
f0f285e628d0
(make-help-screen): Use overriding-local-map.
Richard M. Stallman <rms@gnu.org>
parents:
5378
diff
changeset
|
106 (minor-mode-map-alist nil) |
8260
1ad35b4d9128
(make-help-screen): Handle case where *Help* comes up in a separate frame.
Richard M. Stallman <rms@gnu.org>
parents:
8242
diff
changeset
|
107 (prev-frame (selected-frame)) |
1ad35b4d9128
(make-help-screen): Handle case where *Help* comes up in a separate frame.
Richard M. Stallman <rms@gnu.org>
parents:
8242
diff
changeset
|
108 config new-frame key char) |
23331
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
109 (if (string-match "%THIS-KEY%" help-screen) |
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
110 (setq help-screen |
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
111 (replace-match (key-description (substring (this-command-keys) 0 -1)) |
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
112 t t help-screen))) |
3128
2417a8dc0f14
(make-help-screen): Handle mouse events.
Richard M. Stallman <rms@gnu.org>
parents:
2696
diff
changeset
|
113 (unwind-protect |
2417a8dc0f14
(make-help-screen): Handle mouse events.
Richard M. Stallman <rms@gnu.org>
parents:
2696
diff
changeset
|
114 (progn |
23331
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
115 (setcdr local-map ,helped-map) |
8242
824eeccd8203
(make-help-screen): Bind overriding-local-map
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
116 (define-key local-map [t] 'undefined) |
20029
857e1ce3f14b
(make-help-screen): Make scroll bar work normally.
Richard M. Stallman <rms@gnu.org>
parents:
18656
diff
changeset
|
117 ;; Make the scroll bar keep working normally. |
857e1ce3f14b
(make-help-screen): Make scroll bar work normally.
Richard M. Stallman <rms@gnu.org>
parents:
18656
diff
changeset
|
118 (define-key local-map [vertical-scroll-bar] |
857e1ce3f14b
(make-help-screen): Make scroll bar work normally.
Richard M. Stallman <rms@gnu.org>
parents:
18656
diff
changeset
|
119 (lookup-key global-map [vertical-scroll-bar])) |
5679
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
120 (if three-step-help |
11424
29493ce2d1ca
(make-help-screen): Explicitly translate key thru function-key-map.
Richard M. Stallman <rms@gnu.org>
parents:
10478
diff
changeset
|
121 (progn |
29493ce2d1ca
(make-help-screen): Explicitly translate key thru function-key-map.
Richard M. Stallman <rms@gnu.org>
parents:
10478
diff
changeset
|
122 (setq key (let ((overriding-local-map local-map)) |
29493ce2d1ca
(make-help-screen): Explicitly translate key thru function-key-map.
Richard M. Stallman <rms@gnu.org>
parents:
10478
diff
changeset
|
123 (read-key-sequence nil))) |
29493ce2d1ca
(make-help-screen): Explicitly translate key thru function-key-map.
Richard M. Stallman <rms@gnu.org>
parents:
10478
diff
changeset
|
124 ;; Make the HELP key translate to C-h. |
29493ce2d1ca
(make-help-screen): Explicitly translate key thru function-key-map.
Richard M. Stallman <rms@gnu.org>
parents:
10478
diff
changeset
|
125 (if (lookup-key function-key-map key) |
29493ce2d1ca
(make-help-screen): Explicitly translate key thru function-key-map.
Richard M. Stallman <rms@gnu.org>
parents:
10478
diff
changeset
|
126 (setq key (lookup-key function-key-map key))) |
29493ce2d1ca
(make-help-screen): Explicitly translate key thru function-key-map.
Richard M. Stallman <rms@gnu.org>
parents:
10478
diff
changeset
|
127 (setq char (aref key 0))) |
5679
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
128 (setq char ??)) |
12423
ee433b44920d
(make-help-screen): Handle help-event-list.
Richard M. Stallman <rms@gnu.org>
parents:
11424
diff
changeset
|
129 (if (or (eq char ??) (eq char help-char) |
ee433b44920d
(make-help-screen): Handle help-event-list.
Richard M. Stallman <rms@gnu.org>
parents:
11424
diff
changeset
|
130 (memq char help-event-list)) |
3128
2417a8dc0f14
(make-help-screen): Handle mouse events.
Richard M. Stallman <rms@gnu.org>
parents:
2696
diff
changeset
|
131 (progn |
2417a8dc0f14
(make-help-screen): Handle mouse events.
Richard M. Stallman <rms@gnu.org>
parents:
2696
diff
changeset
|
132 (setq config (current-window-configuration)) |
2417a8dc0f14
(make-help-screen): Handle mouse events.
Richard M. Stallman <rms@gnu.org>
parents:
2696
diff
changeset
|
133 (switch-to-buffer-other-window "*Help*") |
8661
7615ef8778de
(make-help-screen): Don't call window-frame in a non-multi-frame Emacs.
Richard M. Stallman <rms@gnu.org>
parents:
8260
diff
changeset
|
134 (and (fboundp 'make-frame) |
7615ef8778de
(make-help-screen): Don't call window-frame in a non-multi-frame Emacs.
Richard M. Stallman <rms@gnu.org>
parents:
8260
diff
changeset
|
135 (not (eq (window-frame (selected-window)) |
7615ef8778de
(make-help-screen): Don't call window-frame in a non-multi-frame Emacs.
Richard M. Stallman <rms@gnu.org>
parents:
8260
diff
changeset
|
136 prev-frame)) |
7615ef8778de
(make-help-screen): Don't call window-frame in a non-multi-frame Emacs.
Richard M. Stallman <rms@gnu.org>
parents:
8260
diff
changeset
|
137 (setq new-frame (window-frame (selected-window)) |
7615ef8778de
(make-help-screen): Don't call window-frame in a non-multi-frame Emacs.
Richard M. Stallman <rms@gnu.org>
parents:
8260
diff
changeset
|
138 config nil)) |
18449
b32c3c07962c
(make-help-screen): Clear buffer-read-only.
Richard M. Stallman <rms@gnu.org>
parents:
17976
diff
changeset
|
139 (setq buffer-read-only nil) |
3128
2417a8dc0f14
(make-help-screen): Handle mouse events.
Richard M. Stallman <rms@gnu.org>
parents:
2696
diff
changeset
|
140 (erase-buffer) |
5378
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
141 (insert help-screen) |
9855
9caa80b065fc
(make-help-screen): Set help-mode in *Help* buffer.
Karl Heuer <kwzh@gnu.org>
parents:
8709
diff
changeset
|
142 (help-mode) |
3128
2417a8dc0f14
(make-help-screen): Handle mouse events.
Richard M. Stallman <rms@gnu.org>
parents:
2696
diff
changeset
|
143 (goto-char (point-min)) |
12423
ee433b44920d
(make-help-screen): Handle help-event-list.
Richard M. Stallman <rms@gnu.org>
parents:
11424
diff
changeset
|
144 (while (or (memq char (append help-event-list |
20029
857e1ce3f14b
(make-help-screen): Make scroll bar work normally.
Richard M. Stallman <rms@gnu.org>
parents:
18656
diff
changeset
|
145 (cons help-char '(?? ?\C-v ?\ ?\177 delete backspace vertical-scroll-bar ?\M-v)))) |
8260
1ad35b4d9128
(make-help-screen): Handle case where *Help* comes up in a separate frame.
Richard M. Stallman <rms@gnu.org>
parents:
8242
diff
changeset
|
146 (eq (car-safe char) 'switch-frame) |
5640
f0f285e628d0
(make-help-screen): Use overriding-local-map.
Richard M. Stallman <rms@gnu.org>
parents:
5378
diff
changeset
|
147 (equal key "\M-v")) |
5378
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
148 (condition-case nil |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
149 (progn |
8260
1ad35b4d9128
(make-help-screen): Handle case where *Help* comes up in a separate frame.
Richard M. Stallman <rms@gnu.org>
parents:
8242
diff
changeset
|
150 (if (eq (car-safe char) 'switch-frame) |
1ad35b4d9128
(make-help-screen): Handle case where *Help* comes up in a separate frame.
Richard M. Stallman <rms@gnu.org>
parents:
8242
diff
changeset
|
151 (handle-switch-frame char)) |
5378
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
152 (if (memq char '(?\C-v ?\ )) |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
153 (scroll-up)) |
12423
ee433b44920d
(make-help-screen): Handle help-event-list.
Richard M. Stallman <rms@gnu.org>
parents:
11424
diff
changeset
|
154 (if (or (memq char '(?\177 ?\M-v |
ee433b44920d
(make-help-screen): Handle help-event-list.
Richard M. Stallman <rms@gnu.org>
parents:
11424
diff
changeset
|
155 delete backspace)) |
5640
f0f285e628d0
(make-help-screen): Use overriding-local-map.
Richard M. Stallman <rms@gnu.org>
parents:
5378
diff
changeset
|
156 (equal key "\M-v")) |
5378
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
157 (scroll-down))) |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
158 (error nil)) |
8242
824eeccd8203
(make-help-screen): Bind overriding-local-map
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
159 (let ((cursor-in-echo-area t) |
824eeccd8203
(make-help-screen): Bind overriding-local-map
Richard M. Stallman <rms@gnu.org>
parents:
7298
diff
changeset
|
160 (overriding-local-map local-map)) |
5679
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
161 (setq key (read-key-sequence |
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
162 (format "Type one of the options listed%s: " |
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
163 (if (pos-visible-in-window-p |
90ba98c692b5
(three-step-help): New option.
Richard M. Stallman <rms@gnu.org>
parents:
5640
diff
changeset
|
164 (point-max)) |
21120
116fb3c03737
(make-help-screen): Mention DEL in the prompt.
Richard M. Stallman <rms@gnu.org>
parents:
20029
diff
changeset
|
165 "" ", or SPACE or DEL to scroll"))) |
20029
857e1ce3f14b
(make-help-screen): Make scroll bar work normally.
Richard M. Stallman <rms@gnu.org>
parents:
18656
diff
changeset
|
166 char (aref key 0))) |
857e1ce3f14b
(make-help-screen): Make scroll bar work normally.
Richard M. Stallman <rms@gnu.org>
parents:
18656
diff
changeset
|
167 |
857e1ce3f14b
(make-help-screen): Make scroll bar work normally.
Richard M. Stallman <rms@gnu.org>
parents:
18656
diff
changeset
|
168 ;; If this is a scroll bar command, just run it. |
857e1ce3f14b
(make-help-screen): Make scroll bar work normally.
Richard M. Stallman <rms@gnu.org>
parents:
18656
diff
changeset
|
169 (when (eq char 'vertical-scroll-bar) |
857e1ce3f14b
(make-help-screen): Make scroll bar work normally.
Richard M. Stallman <rms@gnu.org>
parents:
18656
diff
changeset
|
170 (command-execute (lookup-key local-map key) nil key))))) |
18656
52a3dec2b6cc
(make-help-screen): Clear the prompt when we get a real command.
Richard M. Stallman <rms@gnu.org>
parents:
18449
diff
changeset
|
171 ;; We don't need the prompt any more. |
52a3dec2b6cc
(make-help-screen): Clear the prompt when we get a real command.
Richard M. Stallman <rms@gnu.org>
parents:
18449
diff
changeset
|
172 (message "") |
5378
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
173 ;; Mouse clicks are not part of the help feature, |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
174 ;; so reexecute them in the standard environment. |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
175 (if (listp char) |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
176 (setq unread-command-events |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
177 (cons char unread-command-events) |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
178 config nil) |
10477
b0ac61aef336
(make-help-screen): Use *only* local-map to look up keys.
Richard M. Stallman <rms@gnu.org>
parents:
9855
diff
changeset
|
179 (let ((defn (lookup-key local-map key))) |
5378
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
180 (if defn |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
181 (progn |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
182 (if config |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
183 (progn |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
184 (set-window-configuration config) |
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
185 (setq config nil))) |
8260
1ad35b4d9128
(make-help-screen): Handle case where *Help* comes up in a separate frame.
Richard M. Stallman <rms@gnu.org>
parents:
8242
diff
changeset
|
186 (if new-frame |
1ad35b4d9128
(make-help-screen): Handle case where *Help* comes up in a separate frame.
Richard M. Stallman <rms@gnu.org>
parents:
8242
diff
changeset
|
187 (progn (iconify-frame new-frame) |
1ad35b4d9128
(make-help-screen): Handle case where *Help* comes up in a separate frame.
Richard M. Stallman <rms@gnu.org>
parents:
8242
diff
changeset
|
188 (setq new-frame nil))) |
5378
32a291ab0c5f
(make-help-screen): Use read-key-sequence.
Richard M. Stallman <rms@gnu.org>
parents:
3128
diff
changeset
|
189 (call-interactively defn)) |
3128
2417a8dc0f14
(make-help-screen): Handle mouse events.
Richard M. Stallman <rms@gnu.org>
parents:
2696
diff
changeset
|
190 (ding))))) |
8260
1ad35b4d9128
(make-help-screen): Handle case where *Help* comes up in a separate frame.
Richard M. Stallman <rms@gnu.org>
parents:
8242
diff
changeset
|
191 (if new-frame (iconify-frame new-frame)) |
3128
2417a8dc0f14
(make-help-screen): Handle mouse events.
Richard M. Stallman <rms@gnu.org>
parents:
2696
diff
changeset
|
192 (if config |
2417a8dc0f14
(make-help-screen): Handle mouse events.
Richard M. Stallman <rms@gnu.org>
parents:
2696
diff
changeset
|
193 (set-window-configuration config)))))) |
23331
8e860ff326de
(make-help-screen): Keep HELP-TEXT
Richard M. Stallman <rms@gnu.org>
parents:
21120
diff
changeset
|
194 ))) |
2456 | 195 |
2530
1e1a30d5d523
Name changed to fit in a 14-character limit.
Eric S. Raymond <esr@snark.thyrsus.com>
parents:
2456
diff
changeset
|
196 ;;; help-macro.el |
2456 | 197 |