aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Nicolaescu2010-10-10 16:12:30 -0700
committerDan Nicolaescu2010-10-10 16:12:30 -0700
commita0310a6c2226b23bc25c2dd66c8dd9664fdeb022 (patch)
tree31c8181c70d9f9a3d0532f128b38a0fcb62f9d8c
parentdab0271f8dfd284e0ecd5022745a67c182410b81 (diff)
downloademacs-a0310a6c2226b23bc25c2dd66c8dd9664fdeb022.tar.gz
emacs-a0310a6c2226b23bc25c2dd66c8dd9664fdeb022.zip
Declare and define in one step various mode maps.
* lisp/shell.el (shell-mode-map): * lisp/progmodes/modula2.el (m2-mode-map): * lisp/progmodes/inf-lisp.el (inferior-lisp-mode-map): * lisp/play/mpuz.el (mpuz-mode-map): * lisp/play/landmark.el (lm-mode-map): * lisp/play/decipher.el (decipher-mode-map): * lisp/play/5x5.el (5x5-mode-map): * lisp/net/telnet.el (telnet-mode-map): * lisp/net/quickurl.el (quickurl-list-mode-map): * lisp/net/mairix.el (mairix-searches-mode-map): * lisp/net/eudc-hotlist.el (eudc-hotlist-mode-map): * lisp/net/dig.el (dig-mode-map): * lisp/mail/mspools.el (mspools-mode-map): * lisp/hexl.el (hexl-mode-map): * lisp/emulation/ws-mode.el (wordstar-C-k-map, wordstar-mode-map) (wordstar-C-o-map, wordstar-C-q-map): * lisp/emacs-lisp/edebug.el (edebug-eval-mode-map): * lisp/emacs-lisp/chart.el (chart-map): * lisp/edmacro.el (edmacro-mode-map): * lisp/array.el (array-mode-map): Declare and define in one step. * lisp/erc/erc-list.el (erc-list-menu-mode-map): Declare and define in one step.
-rw-r--r--lisp/ChangeLog22
-rw-r--r--lisp/array.el46
-rw-r--r--lisp/edmacro.el10
-rw-r--r--lisp/emacs-lisp/chart.el6
-rw-r--r--lisp/emacs-lisp/edebug.el22
-rw-r--r--lisp/emulation/ws-mode.el300
-rw-r--r--lisp/erc/erc-list.el21
-rw-r--r--lisp/hexl.el188
-rw-r--r--lisp/mail/mspools.el26
-rw-r--r--lisp/net/dig.el11
-rw-r--r--lisp/net/eudc-hotlist.el21
-rw-r--r--lisp/net/mairix.el32
-rw-r--r--lisp/net/quickurl.el30
-rw-r--r--lisp/net/telnet.el20
-rw-r--r--lisp/play/5x5.el10
-rw-r--r--lisp/play/decipher.el61
-rw-r--r--lisp/play/landmark.el88
-rw-r--r--lisp/play/mpuz.el51
-rw-r--r--lisp/progmodes/inf-lisp.el24
-rw-r--r--lisp/progmodes/modula2.el8
-rw-r--r--lisp/shell.el39
21 files changed, 511 insertions, 525 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b871f5cf1ac..c2f222d4d9b 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,27 @@
12010-10-10 Dan Nicolaescu <dann@ics.uci.edu> 12010-10-10 Dan Nicolaescu <dann@ics.uci.edu>
2 2
3 * shell.el (shell-mode-map):
4 * progmodes/modula2.el (m2-mode-map):
5 * progmodes/inf-lisp.el (inferior-lisp-mode-map):
6 * play/mpuz.el (mpuz-mode-map):
7 * play/landmark.el (lm-mode-map):
8 * play/decipher.el (decipher-mode-map):
9 * play/5x5.el (5x5-mode-map):
10 * net/telnet.el (telnet-mode-map):
11 * net/quickurl.el (quickurl-list-mode-map):
12 * net/mairix.el (mairix-searches-mode-map):
13 * net/eudc-hotlist.el (eudc-hotlist-mode-map):
14 * net/dig.el (dig-mode-map):
15 * mail/mspools.el (mspools-mode-map):
16 * hexl.el (hexl-mode-map):
17 * emulation/ws-mode.el (wordstar-C-k-map, wordstar-mode-map)
18 (wordstar-C-o-map, wordstar-C-q-map):
19 * emacs-lisp/edebug.el (edebug-eval-mode-map):
20 * emacs-lisp/chart.el (chart-map):
21 * edmacro.el (edmacro-mode-map):
22 * erc/erc-list.el (erc-list-menu-mode-map):
23 * array.el (array-mode-map): Declare and define in one step.
24
3 * vc/log-view.el (log-view-mode-map): Bind revert-buffer. 25 * vc/log-view.el (log-view-mode-map): Bind revert-buffer.
4 26
52010-10-10 Daiki Ueno <ueno@unixuser.org> 272010-10-10 Daiki Ueno <ueno@unixuser.org>
diff --git a/lisp/array.el b/lisp/array.el
index d68aaa5cf62..d22d58ca059 100644
--- a/lisp/array.el
+++ b/lisp/array.el
@@ -775,32 +775,30 @@ Return COLUMN."
775 775
776;;; Array mode. 776;;; Array mode.
777 777
778(defvar array-mode-map nil 778(defvar array-mode-map
779 (let ((map (make-keymap)))
780 (define-key map "\M-ad" 'array-display-local-variables)
781 (define-key map "\M-am" 'array-make-template)
782 (define-key map "\M-ae" 'array-expand-rows)
783 (define-key map "\M-ar" 'array-reconfigure-rows)
784 (define-key map "\M-a=" 'array-what-position)
785 (define-key map "\M-ag" 'array-goto-cell)
786 (define-key map "\M-af" 'array-fill-rectangle)
787 (define-key map "\C-n" 'array-next-row)
788 (define-key map "\C-p" 'array-previous-row)
789 (define-key map "\C-f" 'array-forward-column)
790 (define-key map "\C-b" 'array-backward-column)
791 (define-key map "\M-n" 'array-copy-down)
792 (define-key map "\M-p" 'array-copy-up)
793 (define-key map "\M-f" 'array-copy-forward)
794 (define-key map "\M-b" 'array-copy-backward)
795 (define-key map "\M-\C-n" 'array-copy-row-down)
796 (define-key map "\M-\C-p" 'array-copy-row-up)
797 (define-key map "\M-\C-f" 'array-copy-column-forward)
798 (define-key map "\M-\C-b" 'array-copy-column-backward)
799 map)
779 "Keymap used in array mode.") 800 "Keymap used in array mode.")
780 801
781(if array-mode-map
782 ()
783 (setq array-mode-map (make-keymap))
784 ;; Bind keys.
785 (define-key array-mode-map "\M-ad" 'array-display-local-variables)
786 (define-key array-mode-map "\M-am" 'array-make-template)
787 (define-key array-mode-map "\M-ae" 'array-expand-rows)
788 (define-key array-mode-map "\M-ar" 'array-reconfigure-rows)
789 (define-key array-mode-map "\M-a=" 'array-what-position)
790 (define-key array-mode-map "\M-ag" 'array-goto-cell)
791 (define-key array-mode-map "\M-af" 'array-fill-rectangle)
792 (define-key array-mode-map "\C-n" 'array-next-row)
793 (define-key array-mode-map "\C-p" 'array-previous-row)
794 (define-key array-mode-map "\C-f" 'array-forward-column)
795 (define-key array-mode-map "\C-b" 'array-backward-column)
796 (define-key array-mode-map "\M-n" 'array-copy-down)
797 (define-key array-mode-map "\M-p" 'array-copy-up)
798 (define-key array-mode-map "\M-f" 'array-copy-forward)
799 (define-key array-mode-map "\M-b" 'array-copy-backward)
800 (define-key array-mode-map "\M-\C-n" 'array-copy-row-down)
801 (define-key array-mode-map "\M-\C-p" 'array-copy-row-up)
802 (define-key array-mode-map "\M-\C-f" 'array-copy-column-forward)
803 (define-key array-mode-map "\M-\C-b" 'array-copy-column-backward))
804 802
805(put 'array-mode 'mode-class 'special) 803(put 'array-mode 'mode-class 'special)
806 804
diff --git a/lisp/edmacro.el b/lisp/edmacro.el
index 123d8c1aacb..f98d901ddec 100644
--- a/lisp/edmacro.el
+++ b/lisp/edmacro.el
@@ -81,11 +81,11 @@
81 "*Non-nil if `edit-kbd-macro' should leave 8-bit characters intact. 81 "*Non-nil if `edit-kbd-macro' should leave 8-bit characters intact.
82Default nil means to write characters above \\177 in octal notation.") 82Default nil means to write characters above \\177 in octal notation.")
83 83
84(defvar edmacro-mode-map nil) 84(defvar edmacro-mode-map
85(unless edmacro-mode-map 85 (let ((map (make-sparse-keymap)))
86 (setq edmacro-mode-map (make-sparse-keymap)) 86 (define-key map "\C-c\C-c" 'edmacro-finish-edit)
87 (define-key edmacro-mode-map "\C-c\C-c" 'edmacro-finish-edit) 87 (define-key map "\C-c\C-q" 'edmacro-insert-key)
88 (define-key edmacro-mode-map "\C-c\C-q" 'edmacro-insert-key)) 88 map))
89 89
90(defvar edmacro-store-hook) 90(defvar edmacro-store-hook)
91(defvar edmacro-finish-hook) 91(defvar edmacro-finish-hook)
diff --git a/lisp/emacs-lisp/chart.el b/lisp/emacs-lisp/chart.el
index d2abdcffe0d..88da7aab3be 100644
--- a/lisp/emacs-lisp/chart.el
+++ b/lisp/emacs-lisp/chart.el
@@ -62,11 +62,7 @@
62(require 'eieio) 62(require 'eieio)
63 63
64;;; Code: 64;;; Code:
65(defvar chart-map nil "Keymap used in chart mode.") 65(defvar chart-map (make-sparse-keymap) "Keymap used in chart mode.")
66(if chart-map
67 ()
68 (setq chart-map (make-sparse-keymap))
69 )
70 66
71(defvar chart-local-object nil 67(defvar chart-local-object nil
72 "Local variable containing the locally displayed chart object.") 68 "Local variable containing the locally displayed chart object.")
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 43fb5762647..145498b9059 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -4011,18 +4011,16 @@ May only be called from within `edebug-recursive-edit'."
4011 4011
4012 4012
4013 4013
4014(defvar edebug-eval-mode-map nil 4014(defvar edebug-eval-mode-map
4015 "Keymap for Edebug Eval mode. Superset of Lisp Interaction mode.") 4015 (let ((map (make-sparse-keymap)))
4016 4016 (set-keymap-parent map lisp-interaction-mode-map)
4017(unless edebug-eval-mode-map 4017 (define-key map "\C-c\C-w" 'edebug-where)
4018 (setq edebug-eval-mode-map (make-sparse-keymap)) 4018 (define-key map "\C-c\C-d" 'edebug-delete-eval-item)
4019 (set-keymap-parent edebug-eval-mode-map lisp-interaction-mode-map) 4019 (define-key map "\C-c\C-u" 'edebug-update-eval-list)
4020 4020 (define-key map "\C-x\C-e" 'edebug-eval-last-sexp)
4021 (define-key edebug-eval-mode-map "\C-c\C-w" 'edebug-where) 4021 (define-key map "\C-j" 'edebug-eval-print-last-sexp)
4022 (define-key edebug-eval-mode-map "\C-c\C-d" 'edebug-delete-eval-item) 4022 map)
4023 (define-key edebug-eval-mode-map "\C-c\C-u" 'edebug-update-eval-list) 4023"Keymap for Edebug Eval mode. Superset of Lisp Interaction mode.")
4024 (define-key edebug-eval-mode-map "\C-x\C-e" 'edebug-eval-last-sexp)
4025 (define-key edebug-eval-mode-map "\C-j" 'edebug-eval-print-last-sexp))
4026 4024
4027(put 'edebug-eval-mode 'mode-class 'special) 4025(put 'edebug-eval-mode 'mode-class 'special)
4028 4026
diff --git a/lisp/emulation/ws-mode.el b/lisp/emulation/ws-mode.el
index 220ac7d67dc..35f54b71d61 100644
--- a/lisp/emulation/ws-mode.el
+++ b/lisp/emulation/ws-mode.el
@@ -27,158 +27,156 @@
27;; This emulates WordStar, with a major mode. 27;; This emulates WordStar, with a major mode.
28 28
29;;; Code: 29;;; Code:
30 30(defvar wordstar-C-k-map
31(defvar wordstar-mode-map nil "") 31 (let ((map (make-keymap)))
32 (define-key map " " ())
33 (define-key map "0" 'ws-set-marker-0)
34 (define-key map "1" 'ws-set-marker-1)
35 (define-key map "2" 'ws-set-marker-2)
36 (define-key map "3" 'ws-set-marker-3)
37 (define-key map "4" 'ws-set-marker-4)
38 (define-key map "5" 'ws-set-marker-5)
39 (define-key map "6" 'ws-set-marker-6)
40 (define-key map "7" 'ws-set-marker-7)
41 (define-key map "8" 'ws-set-marker-8)
42 (define-key map "9" 'ws-set-marker-9)
43 (define-key map "b" 'ws-begin-block)
44 (define-key map "\C-b" 'ws-begin-block)
45 (define-key map "c" 'ws-copy-block)
46 (define-key map "\C-c" 'ws-copy-block)
47 (define-key map "d" 'save-buffers-kill-emacs)
48 (define-key map "\C-d" 'save-buffers-kill-emacs)
49 (define-key map "f" 'find-file)
50 (define-key map "\C-f" 'find-file)
51 (define-key map "h" 'ws-show-markers)
52 (define-key map "\C-h" 'ws-show-markers)
53 (define-key map "i" 'ws-indent-block)
54 (define-key map "\C-i" 'ws-indent-block)
55 (define-key map "k" 'ws-end-block)
56 (define-key map "\C-k" 'ws-end-block)
57 (define-key map "p" 'ws-print-block)
58 (define-key map "\C-p" 'ws-print-block)
59 (define-key map "q" 'kill-emacs)
60 (define-key map "\C-q" 'kill-emacs)
61 (define-key map "r" 'insert-file)
62 (define-key map "\C-r" 'insert-file)
63 (define-key map "s" 'save-some-buffers)
64 (define-key map "\C-s" 'save-some-buffers)
65 (define-key map "t" 'ws-mark-word)
66 (define-key map "\C-t" 'ws-mark-word)
67 (define-key map "u" 'ws-exdent-block)
68 (define-key map "\C-u" 'keyboard-quit)
69 (define-key map "v" 'ws-move-block)
70 (define-key map "\C-v" 'ws-move-block)
71 (define-key map "w" 'ws-write-block)
72 (define-key map "\C-w" 'ws-write-block)
73 (define-key map "x" 'save-buffers-kill-emacs)
74 (define-key map "\C-x" 'save-buffers-kill-emacs)
75 (define-key map "y" 'ws-delete-block)
76 (define-key map "\C-y" 'ws-delete-block)
77 map)
78 "")
79
80(defvar wordstar-C-o-map
81 (let ((map (make-keymap)))
82 (define-key map " " ())
83 (define-key map "c" 'wordstar-center-line)
84 (define-key map "\C-c" 'wordstar-center-line)
85 (define-key map "b" 'switch-to-buffer)
86 (define-key map "\C-b" 'switch-to-buffer)
87 (define-key map "j" 'justify-current-line)
88 (define-key map "\C-j" 'justify-current-line)
89 (define-key map "k" 'kill-buffer)
90 (define-key map "\C-k" 'kill-buffer)
91 (define-key map "l" 'list-buffers)
92 (define-key map "\C-l" 'list-buffers)
93 (define-key map "m" 'auto-fill-mode)
94 (define-key map "\C-m" 'auto-fill-mode)
95 (define-key map "r" 'set-fill-column)
96 (define-key map "\C-r" 'set-fill-column)
97 (define-key map "\C-u" 'keyboard-quit)
98 (define-key map "wd" 'delete-other-windows)
99 (define-key map "wh" 'split-window-horizontally)
100 (define-key map "wo" 'other-window)
101 (define-key map "wv" 'split-window-vertically)
102 map)
103 "")
104
105(defvar wordstar-C-q-map
106 (let ((map (make-keymap)))
107 (define-key map " " ())
108 (define-key map "0" 'ws-find-marker-0)
109 (define-key map "1" 'ws-find-marker-1)
110 (define-key map "2" 'ws-find-marker-2)
111 (define-key map "3" 'ws-find-marker-3)
112 (define-key map "4" 'ws-find-marker-4)
113 (define-key map "5" 'ws-find-marker-5)
114 (define-key map "6" 'ws-find-marker-6)
115 (define-key map "7" 'ws-find-marker-7)
116 (define-key map "8" 'ws-find-marker-8)
117 (define-key map "9" 'ws-find-marker-9)
118 (define-key map "a" 'ws-query-replace)
119 (define-key map "\C-a" 'ws-query-replace)
120 (define-key map "b" 'ws-goto-block-begin)
121 (define-key map "\C-b" 'ws-goto-block-begin)
122 (define-key map "c" 'end-of-buffer)
123 (define-key map "\C-c" 'end-of-buffer)
124 (define-key map "d" 'end-of-line)
125 (define-key map "\C-d" 'end-of-line)
126 (define-key map "f" 'ws-search)
127 (define-key map "\C-f" 'ws-search)
128 (define-key map "k" 'ws-goto-block-end)
129 (define-key map "\C-k" 'ws-goto-block-end)
130 (define-key map "l" 'ws-undo)
131 (define-key map "\C-l" 'ws-undo)
132 (define-key map "p" 'ws-last-cursorp)
133 (define-key map "\C-p" 'ws-last-cursorp)
134 (define-key map "r" 'beginning-of-buffer)
135 (define-key map "\C-r" 'beginning-of-buffer)
136 (define-key map "s" 'beginning-of-line)
137 (define-key map "\C-s" 'beginning-of-line)
138 (define-key map "\C-u" 'keyboard-quit)
139 (define-key map "w" 'ws-last-error)
140 (define-key map "\C-w" 'ws-last-error)
141 (define-key map "y" 'ws-kill-eol)
142 (define-key map "\C-y" 'ws-kill-eol)
143 (define-key map "\177" 'ws-kill-bol)
144 map)
145 "")
146
147(defvar wordstar-mode-map
148 (let ((map (make-keymap)))
149 (define-key map "\C-a" 'backward-word)
150 (define-key map "\C-b" 'fill-paragraph)
151 (define-key map "\C-c" 'scroll-up)
152 (define-key map "\C-d" 'forward-char)
153 (define-key map "\C-e" 'previous-line)
154 (define-key map "\C-f" 'forward-word)
155 (define-key map "\C-g" 'delete-char)
156 (define-key map "\C-h" 'backward-char)
157 (define-key map "\C-i" 'indent-for-tab-command)
158 (define-key map "\C-j" 'help-for-help)
159 (define-key map "\C-k" wordstar-C-k-map)
160 (define-key map "\C-l" 'ws-repeat-search)
161 (define-key map "\C-n" 'open-line)
162 (define-key map "\C-o" wordstar-C-o-map)
163 (define-key map "\C-p" 'quoted-insert)
164 (define-key map "\C-q" wordstar-C-q-map)
165 (define-key map "\C-r" 'scroll-down)
166 (define-key map "\C-s" 'backward-char)
167 (define-key map "\C-t" 'kill-word)
168 (define-key map "\C-u" 'keyboard-quit)
169 (define-key map "\C-v" 'overwrite-mode)
170 (define-key map "\C-w" 'scroll-down-line)
171 (define-key map "\C-x" 'next-line)
172 (define-key map "\C-y" 'kill-complete-line)
173 (define-key map "\C-z" 'scroll-up-line)
174 map)
175 "")
176
177;; wordstar-C-j-map not yet implemented
32(defvar wordstar-C-j-map nil "") 178(defvar wordstar-C-j-map nil "")
33(defvar wordstar-C-k-map nil "") 179
34(defvar wordstar-C-o-map nil "")
35(defvar wordstar-C-q-map nil "")
36
37(if wordstar-mode-map
38 ()
39 (setq wordstar-mode-map (make-keymap))
40 ;; (setq wordstar-C-j-map (make-keymap)) ; later, perhaps
41 (setq wordstar-C-k-map (make-keymap))
42 (setq wordstar-C-o-map (make-keymap))
43 (setq wordstar-C-q-map (make-keymap))
44
45 (define-key wordstar-mode-map "\C-a" 'backward-word)
46 (define-key wordstar-mode-map "\C-b" 'fill-paragraph)
47 (define-key wordstar-mode-map "\C-c" 'scroll-up)
48 (define-key wordstar-mode-map "\C-d" 'forward-char)
49 (define-key wordstar-mode-map "\C-e" 'previous-line)
50 (define-key wordstar-mode-map "\C-f" 'forward-word)
51 (define-key wordstar-mode-map "\C-g" 'delete-char)
52 (define-key wordstar-mode-map "\C-h" 'backward-char)
53 (define-key wordstar-mode-map "\C-i" 'indent-for-tab-command)
54 (define-key wordstar-mode-map "\C-j" 'help-for-help)
55 (define-key wordstar-mode-map "\C-k" wordstar-C-k-map)
56 (define-key wordstar-mode-map "\C-l" 'ws-repeat-search)
57 (define-key wordstar-mode-map "\C-n" 'open-line)
58 (define-key wordstar-mode-map "\C-o" wordstar-C-o-map)
59 (define-key wordstar-mode-map "\C-p" 'quoted-insert)
60 (define-key wordstar-mode-map "\C-q" wordstar-C-q-map)
61 (define-key wordstar-mode-map "\C-r" 'scroll-down)
62 (define-key wordstar-mode-map "\C-s" 'backward-char)
63 (define-key wordstar-mode-map "\C-t" 'kill-word)
64 (define-key wordstar-mode-map "\C-u" 'keyboard-quit)
65 (define-key wordstar-mode-map "\C-v" 'overwrite-mode)
66 (define-key wordstar-mode-map "\C-w" 'scroll-down-line)
67 (define-key wordstar-mode-map "\C-x" 'next-line)
68 (define-key wordstar-mode-map "\C-y" 'kill-complete-line)
69 (define-key wordstar-mode-map "\C-z" 'scroll-up-line)
70
71 ;; wordstar-C-k-map
72
73 (define-key wordstar-C-k-map " " ())
74 (define-key wordstar-C-k-map "0" 'ws-set-marker-0)
75 (define-key wordstar-C-k-map "1" 'ws-set-marker-1)
76 (define-key wordstar-C-k-map "2" 'ws-set-marker-2)
77 (define-key wordstar-C-k-map "3" 'ws-set-marker-3)
78 (define-key wordstar-C-k-map "4" 'ws-set-marker-4)
79 (define-key wordstar-C-k-map "5" 'ws-set-marker-5)
80 (define-key wordstar-C-k-map "6" 'ws-set-marker-6)
81 (define-key wordstar-C-k-map "7" 'ws-set-marker-7)
82 (define-key wordstar-C-k-map "8" 'ws-set-marker-8)
83 (define-key wordstar-C-k-map "9" 'ws-set-marker-9)
84 (define-key wordstar-C-k-map "b" 'ws-begin-block)
85 (define-key wordstar-C-k-map "\C-b" 'ws-begin-block)
86 (define-key wordstar-C-k-map "c" 'ws-copy-block)
87 (define-key wordstar-C-k-map "\C-c" 'ws-copy-block)
88 (define-key wordstar-C-k-map "d" 'save-buffers-kill-emacs)
89 (define-key wordstar-C-k-map "\C-d" 'save-buffers-kill-emacs)
90 (define-key wordstar-C-k-map "f" 'find-file)
91 (define-key wordstar-C-k-map "\C-f" 'find-file)
92 (define-key wordstar-C-k-map "h" 'ws-show-markers)
93 (define-key wordstar-C-k-map "\C-h" 'ws-show-markers)
94 (define-key wordstar-C-k-map "i" 'ws-indent-block)
95 (define-key wordstar-C-k-map "\C-i" 'ws-indent-block)
96 (define-key wordstar-C-k-map "k" 'ws-end-block)
97 (define-key wordstar-C-k-map "\C-k" 'ws-end-block)
98 (define-key wordstar-C-k-map "p" 'ws-print-block)
99 (define-key wordstar-C-k-map "\C-p" 'ws-print-block)
100 (define-key wordstar-C-k-map "q" 'kill-emacs)
101 (define-key wordstar-C-k-map "\C-q" 'kill-emacs)
102 (define-key wordstar-C-k-map "r" 'insert-file)
103 (define-key wordstar-C-k-map "\C-r" 'insert-file)
104 (define-key wordstar-C-k-map "s" 'save-some-buffers)
105 (define-key wordstar-C-k-map "\C-s" 'save-some-buffers)
106 (define-key wordstar-C-k-map "t" 'ws-mark-word)
107 (define-key wordstar-C-k-map "\C-t" 'ws-mark-word)
108 (define-key wordstar-C-k-map "u" 'ws-exdent-block)
109 (define-key wordstar-C-k-map "\C-u" 'keyboard-quit)
110 (define-key wordstar-C-k-map "v" 'ws-move-block)
111 (define-key wordstar-C-k-map "\C-v" 'ws-move-block)
112 (define-key wordstar-C-k-map "w" 'ws-write-block)
113 (define-key wordstar-C-k-map "\C-w" 'ws-write-block)
114 (define-key wordstar-C-k-map "x" 'save-buffers-kill-emacs)
115 (define-key wordstar-C-k-map "\C-x" 'save-buffers-kill-emacs)
116 (define-key wordstar-C-k-map "y" 'ws-delete-block)
117 (define-key wordstar-C-k-map "\C-y" 'ws-delete-block)
118
119 ;; wordstar-C-j-map not yet implemented
120
121 ;; wordstar-C-o-map
122
123 (define-key wordstar-C-o-map " " ())
124 (define-key wordstar-C-o-map "c" 'wordstar-center-line)
125 (define-key wordstar-C-o-map "\C-c" 'wordstar-center-line)
126 (define-key wordstar-C-o-map "b" 'switch-to-buffer)
127 (define-key wordstar-C-o-map "\C-b" 'switch-to-buffer)
128 (define-key wordstar-C-o-map "j" 'justify-current-line)
129 (define-key wordstar-C-o-map "\C-j" 'justify-current-line)
130 (define-key wordstar-C-o-map "k" 'kill-buffer)
131 (define-key wordstar-C-o-map "\C-k" 'kill-buffer)
132 (define-key wordstar-C-o-map "l" 'list-buffers)
133 (define-key wordstar-C-o-map "\C-l" 'list-buffers)
134 (define-key wordstar-C-o-map "m" 'auto-fill-mode)
135 (define-key wordstar-C-o-map "\C-m" 'auto-fill-mode)
136 (define-key wordstar-C-o-map "r" 'set-fill-column)
137 (define-key wordstar-C-o-map "\C-r" 'set-fill-column)
138 (define-key wordstar-C-o-map "\C-u" 'keyboard-quit)
139 (define-key wordstar-C-o-map "wd" 'delete-other-windows)
140 (define-key wordstar-C-o-map "wh" 'split-window-horizontally)
141 (define-key wordstar-C-o-map "wo" 'other-window)
142 (define-key wordstar-C-o-map "wv" 'split-window-vertically)
143
144 ;; wordstar-C-q-map
145 (define-key wordstar-C-q-map " " ())
146 (define-key wordstar-C-q-map "0" 'ws-find-marker-0)
147 (define-key wordstar-C-q-map "1" 'ws-find-marker-1)
148 (define-key wordstar-C-q-map "2" 'ws-find-marker-2)
149 (define-key wordstar-C-q-map "3" 'ws-find-marker-3)
150 (define-key wordstar-C-q-map "4" 'ws-find-marker-4)
151 (define-key wordstar-C-q-map "5" 'ws-find-marker-5)
152 (define-key wordstar-C-q-map "6" 'ws-find-marker-6)
153 (define-key wordstar-C-q-map "7" 'ws-find-marker-7)
154 (define-key wordstar-C-q-map "8" 'ws-find-marker-8)
155 (define-key wordstar-C-q-map "9" 'ws-find-marker-9)
156 (define-key wordstar-C-q-map "a" 'ws-query-replace)
157 (define-key wordstar-C-q-map "\C-a" 'ws-query-replace)
158 (define-key wordstar-C-q-map "b" 'ws-goto-block-begin)
159 (define-key wordstar-C-q-map "\C-b" 'ws-goto-block-begin)
160 (define-key wordstar-C-q-map "c" 'end-of-buffer)
161 (define-key wordstar-C-q-map "\C-c" 'end-of-buffer)
162 (define-key wordstar-C-q-map "d" 'end-of-line)
163 (define-key wordstar-C-q-map "\C-d" 'end-of-line)
164 (define-key wordstar-C-q-map "f" 'ws-search)
165 (define-key wordstar-C-q-map "\C-f" 'ws-search)
166 (define-key wordstar-C-q-map "k" 'ws-goto-block-end)
167 (define-key wordstar-C-q-map "\C-k" 'ws-goto-block-end)
168 (define-key wordstar-C-q-map "l" 'ws-undo)
169 (define-key wordstar-C-q-map "\C-l" 'ws-undo)
170 (define-key wordstar-C-q-map "p" 'ws-last-cursorp)
171 (define-key wordstar-C-q-map "\C-p" 'ws-last-cursorp)
172 (define-key wordstar-C-q-map "r" 'beginning-of-buffer)
173 (define-key wordstar-C-q-map "\C-r" 'beginning-of-buffer)
174 (define-key wordstar-C-q-map "s" 'beginning-of-line)
175 (define-key wordstar-C-q-map "\C-s" 'beginning-of-line)
176 (define-key wordstar-C-q-map "\C-u" 'keyboard-quit)
177 (define-key wordstar-C-q-map "w" 'ws-last-error)
178 (define-key wordstar-C-q-map "\C-w" 'ws-last-error)
179 (define-key wordstar-C-q-map "y" 'ws-kill-eol)
180 (define-key wordstar-C-q-map "\C-y" 'ws-kill-eol)
181 (define-key wordstar-C-q-map "\177" 'ws-kill-bol))
182 180
183(put 'wordstar-mode 'mode-class 'special) 181(put 'wordstar-mode 'mode-class 'special)
184 182
diff --git a/lisp/erc/erc-list.el b/lisp/erc/erc-list.el
index 218ea96f6da..8bf0d213f8e 100644
--- a/lisp/erc/erc-list.el
+++ b/lisp/erc/erc-list.el
@@ -117,19 +117,18 @@
117 (sort-fields col (point-min) (point-max)) 117 (sort-fields col (point-min) (point-max))
118 (sort-numeric-fields col (point-min) (point-max)))))) 118 (sort-numeric-fields col (point-min) (point-max))))))
119 119
120(defvar erc-list-menu-mode-map nil 120(defvar erc-list-menu-mode-map
121 (let ((map (make-keymap)))
122 (suppress-keymap map)
123 (define-key map "k" 'erc-list-kill)
124 (define-key map "j" 'erc-list-join)
125 (define-key map "g" 'erc-list-revert)
126 (define-key map "n" 'next-line)
127 (define-key map "p" 'previous-line)
128 (define-key map "q" 'quit-window)
129 map)
121 "Local keymap for `erc-list-mode' buffers.") 130 "Local keymap for `erc-list-mode' buffers.")
122 131
123(unless erc-list-menu-mode-map
124 (setq erc-list-menu-mode-map (make-keymap))
125 (suppress-keymap erc-list-menu-mode-map)
126 (define-key erc-list-menu-mode-map "k" 'erc-list-kill)
127 (define-key erc-list-menu-mode-map "j" 'erc-list-join)
128 (define-key erc-list-menu-mode-map "g" 'erc-list-revert)
129 (define-key erc-list-menu-mode-map "n" 'next-line)
130 (define-key erc-list-menu-mode-map "p" 'previous-line)
131 (define-key erc-list-menu-mode-map "q" 'quit-window))
132
133(defvar erc-list-menu-sort-button-map nil 132(defvar erc-list-menu-sort-button-map nil
134 "Local keymap for ERC list menu mode sorting buttons.") 133 "Local keymap for ERC list menu mode sorting buttons.")
135 134
diff --git a/lisp/hexl.el b/lisp/hexl.el
index 7edf5ec10ac..ebc43e43d25 100644
--- a/lisp/hexl.el
+++ b/lisp/hexl.el
@@ -97,7 +97,99 @@ Quoting cannot be used, so the arguments cannot themselves contain spaces."
97(defvar hexl-max-address 0 97(defvar hexl-max-address 0
98 "Maximum offset into hexl buffer.") 98 "Maximum offset into hexl buffer.")
99 99
100(defvar hexl-mode-map nil) 100(defvar hexl-mode-map
101 (let ((map (make-keymap)))
102 ;; Make all self-inserting keys go through hexl-self-insert-command,
103 ;; because we need to convert them to unibyte characters before
104 ;; inserting them into the buffer.
105 (define-key map [remap self-insert-command] 'hexl-self-insert-command)
106
107 (define-key map "\C-m" 'hexl-self-insert-command)
108 (define-key map [left] 'hexl-backward-char)
109 (define-key map [right] 'hexl-forward-char)
110 (define-key map [up] 'hexl-previous-line)
111 (define-key map [down] 'hexl-next-line)
112 (define-key map [M-left] 'hexl-backward-short)
113 (define-key map [?\e left] 'hexl-backward-short)
114 (define-key map [M-right] 'hexl-forward-short)
115 (define-key map [?\e right] 'hexl-forward-short)
116 (define-key map [next] 'hexl-scroll-up)
117 (define-key map [prior] 'hexl-scroll-down)
118 (define-key map [home] 'hexl-beginning-of-line)
119 (define-key map [end] 'hexl-end-of-line)
120 (define-key map [C-home] 'hexl-beginning-of-buffer)
121 (define-key map [C-end] 'hexl-end-of-buffer)
122 (define-key map [deletechar] 'undefined)
123 (define-key map [deleteline] 'undefined)
124 (define-key map [insertline] 'undefined)
125 (define-key map [S-delete] 'undefined)
126 (define-key map "\177" 'undefined)
127
128 (define-key map "\C-a" 'hexl-beginning-of-line)
129 (define-key map "\C-b" 'hexl-backward-char)
130 (define-key map "\C-d" 'undefined)
131 (define-key map "\C-e" 'hexl-end-of-line)
132 (define-key map "\C-f" 'hexl-forward-char)
133
134 (if (not (memq (key-binding (char-to-string help-char))
135 '(help-command ehelp-command)))
136 (define-key map (char-to-string help-char) 'undefined))
137
138 (define-key map "\C-k" 'undefined)
139 (define-key map "\C-n" 'hexl-next-line)
140 (define-key map "\C-o" 'undefined)
141 (define-key map "\C-p" 'hexl-previous-line)
142 (define-key map "\C-q" 'hexl-quoted-insert)
143 (define-key map "\C-t" 'undefined)
144 (define-key map "\C-v" 'hexl-scroll-up)
145 (define-key map "\C-w" 'undefined)
146 (define-key map "\C-y" 'undefined)
147
148 (fset 'hexl-ESC-prefix (copy-keymap 'ESC-prefix))
149 (define-key map "\e" 'hexl-ESC-prefix)
150 (define-key map "\e\C-a" 'hexl-beginning-of-512b-page)
151 (define-key map "\e\C-b" 'hexl-backward-short)
152 (define-key map "\e\C-d" 'hexl-insert-decimal-char)
153 (define-key map "\e\C-e" 'hexl-end-of-512b-page)
154 (define-key map "\e\C-f" 'hexl-forward-short)
155 (define-key map "\e\C-i" 'undefined)
156 (define-key map "\e\C-j" 'undefined)
157 (define-key map "\e\C-k" 'undefined)
158 (define-key map "\e\C-o" 'hexl-insert-octal-char)
159 (define-key map "\e\C-q" 'undefined)
160 (define-key map "\e\C-t" 'undefined)
161 (define-key map "\e\C-x" 'hexl-insert-hex-char)
162 (define-key map "\eb" 'hexl-backward-word)
163 (define-key map "\ec" 'undefined)
164 (define-key map "\ed" 'undefined)
165 (define-key map "\ef" 'hexl-forward-word)
166 (define-key map "\eg" 'hexl-goto-hex-address)
167 (define-key map "\ei" 'undefined)
168 (define-key map "\ej" 'hexl-goto-address)
169 (define-key map "\ek" 'undefined)
170 (define-key map "\el" 'undefined)
171 (define-key map "\eq" 'undefined)
172 (define-key map "\es" 'undefined)
173 (define-key map "\et" 'undefined)
174 (define-key map "\eu" 'undefined)
175 (define-key map "\ev" 'hexl-scroll-down)
176 (define-key map "\ey" 'undefined)
177 (define-key map "\ez" 'undefined)
178 (define-key map "\e<" 'hexl-beginning-of-buffer)
179 (define-key map "\e>" 'hexl-end-of-buffer)
180
181 (fset 'hexl-C-c-prefix (copy-keymap mode-specific-map))
182 (define-key map "\C-c" 'hexl-C-c-prefix)
183 (define-key map "\C-c\C-c" 'hexl-mode-exit)
184
185 (fset 'hexl-C-x-prefix (copy-keymap 'Control-X-prefix))
186 (define-key map "\C-x" 'hexl-C-x-prefix)
187 (define-key map "\C-x[" 'hexl-beginning-of-1k-page)
188 (define-key map "\C-x]" 'hexl-end-of-1k-page)
189 (define-key map "\C-x\C-p" 'undefined)
190 (define-key map "\C-x\C-s" 'hexl-save-buffer)
191 (define-key map "\C-x\C-t" 'undefined)
192 map))
101 193
102;; Variable declarations for suppressing warnings from the byte-compiler. 194;; Variable declarations for suppressing warnings from the byte-compiler.
103(defvar ruler-mode) 195(defvar ruler-mode)
@@ -1017,100 +1109,6 @@ This function is assumed to be used as callback function for `hl-line-mode'."
1017 1109
1018;; startup stuff. 1110;; startup stuff.
1019 1111
1020(if hexl-mode-map
1021 nil
1022 (setq hexl-mode-map (make-keymap))
1023 ;; Make all self-inserting keys go through hexl-self-insert-command,
1024 ;; because we need to convert them to unibyte characters before
1025 ;; inserting them into the buffer.
1026 (define-key hexl-mode-map [remap self-insert-command] 'hexl-self-insert-command)
1027
1028 (define-key hexl-mode-map "\C-m" 'hexl-self-insert-command)
1029 (define-key hexl-mode-map [left] 'hexl-backward-char)
1030 (define-key hexl-mode-map [right] 'hexl-forward-char)
1031 (define-key hexl-mode-map [up] 'hexl-previous-line)
1032 (define-key hexl-mode-map [down] 'hexl-next-line)
1033 (define-key hexl-mode-map [M-left] 'hexl-backward-short)
1034 (define-key hexl-mode-map [?\e left] 'hexl-backward-short)
1035 (define-key hexl-mode-map [M-right] 'hexl-forward-short)
1036 (define-key hexl-mode-map [?\e right] 'hexl-forward-short)
1037 (define-key hexl-mode-map [next] 'hexl-scroll-up)
1038 (define-key hexl-mode-map [prior] 'hexl-scroll-down)
1039 (define-key hexl-mode-map [home] 'hexl-beginning-of-line)
1040 (define-key hexl-mode-map [end] 'hexl-end-of-line)
1041 (define-key hexl-mode-map [C-home] 'hexl-beginning-of-buffer)
1042 (define-key hexl-mode-map [C-end] 'hexl-end-of-buffer)
1043 (define-key hexl-mode-map [deletechar] 'undefined)
1044 (define-key hexl-mode-map [deleteline] 'undefined)
1045 (define-key hexl-mode-map [insertline] 'undefined)
1046 (define-key hexl-mode-map [S-delete] 'undefined)
1047 (define-key hexl-mode-map "\177" 'undefined)
1048
1049 (define-key hexl-mode-map "\C-a" 'hexl-beginning-of-line)
1050 (define-key hexl-mode-map "\C-b" 'hexl-backward-char)
1051 (define-key hexl-mode-map "\C-d" 'undefined)
1052 (define-key hexl-mode-map "\C-e" 'hexl-end-of-line)
1053 (define-key hexl-mode-map "\C-f" 'hexl-forward-char)
1054
1055 (if (not (memq (key-binding (char-to-string help-char))
1056 '(help-command ehelp-command)))
1057 (define-key hexl-mode-map (char-to-string help-char) 'undefined))
1058
1059 (define-key hexl-mode-map "\C-k" 'undefined)
1060 (define-key hexl-mode-map "\C-n" 'hexl-next-line)
1061 (define-key hexl-mode-map "\C-o" 'undefined)
1062 (define-key hexl-mode-map "\C-p" 'hexl-previous-line)
1063 (define-key hexl-mode-map "\C-q" 'hexl-quoted-insert)
1064 (define-key hexl-mode-map "\C-t" 'undefined)
1065 (define-key hexl-mode-map "\C-v" 'hexl-scroll-up)
1066 (define-key hexl-mode-map "\C-w" 'undefined)
1067 (define-key hexl-mode-map "\C-y" 'undefined)
1068
1069 (fset 'hexl-ESC-prefix (copy-keymap 'ESC-prefix))
1070 (define-key hexl-mode-map "\e" 'hexl-ESC-prefix)
1071 (define-key hexl-mode-map "\e\C-a" 'hexl-beginning-of-512b-page)
1072 (define-key hexl-mode-map "\e\C-b" 'hexl-backward-short)
1073 (define-key hexl-mode-map "\e\C-d" 'hexl-insert-decimal-char)
1074 (define-key hexl-mode-map "\e\C-e" 'hexl-end-of-512b-page)
1075 (define-key hexl-mode-map "\e\C-f" 'hexl-forward-short)
1076 (define-key hexl-mode-map "\e\C-i" 'undefined)
1077 (define-key hexl-mode-map "\e\C-j" 'undefined)
1078 (define-key hexl-mode-map "\e\C-k" 'undefined)
1079 (define-key hexl-mode-map "\e\C-o" 'hexl-insert-octal-char)
1080 (define-key hexl-mode-map "\e\C-q" 'undefined)
1081 (define-key hexl-mode-map "\e\C-t" 'undefined)
1082 (define-key hexl-mode-map "\e\C-x" 'hexl-insert-hex-char)
1083 (define-key hexl-mode-map "\eb" 'hexl-backward-word)
1084 (define-key hexl-mode-map "\ec" 'undefined)
1085 (define-key hexl-mode-map "\ed" 'undefined)
1086 (define-key hexl-mode-map "\ef" 'hexl-forward-word)
1087 (define-key hexl-mode-map "\eg" 'hexl-goto-hex-address)
1088 (define-key hexl-mode-map "\ei" 'undefined)
1089 (define-key hexl-mode-map "\ej" 'hexl-goto-address)
1090 (define-key hexl-mode-map "\ek" 'undefined)
1091 (define-key hexl-mode-map "\el" 'undefined)
1092 (define-key hexl-mode-map "\eq" 'undefined)
1093 (define-key hexl-mode-map "\es" 'undefined)
1094 (define-key hexl-mode-map "\et" 'undefined)
1095 (define-key hexl-mode-map "\eu" 'undefined)
1096 (define-key hexl-mode-map "\ev" 'hexl-scroll-down)
1097 (define-key hexl-mode-map "\ey" 'undefined)
1098 (define-key hexl-mode-map "\ez" 'undefined)
1099 (define-key hexl-mode-map "\e<" 'hexl-beginning-of-buffer)
1100 (define-key hexl-mode-map "\e>" 'hexl-end-of-buffer)
1101
1102 (fset 'hexl-C-c-prefix (copy-keymap mode-specific-map))
1103 (define-key hexl-mode-map "\C-c" 'hexl-C-c-prefix)
1104 (define-key hexl-mode-map "\C-c\C-c" 'hexl-mode-exit)
1105
1106 (fset 'hexl-C-x-prefix (copy-keymap 'Control-X-prefix))
1107 (define-key hexl-mode-map "\C-x" 'hexl-C-x-prefix)
1108 (define-key hexl-mode-map "\C-x[" 'hexl-beginning-of-1k-page)
1109 (define-key hexl-mode-map "\C-x]" 'hexl-end-of-1k-page)
1110 (define-key hexl-mode-map "\C-x\C-p" 'undefined)
1111 (define-key hexl-mode-map "\C-x\C-s" 'hexl-save-buffer)
1112 (define-key hexl-mode-map "\C-x\C-t" 'undefined))
1113
1114(easy-menu-define hexl-menu hexl-mode-map "Hexl Mode menu" 1112(easy-menu-define hexl-menu hexl-mode-map "Hexl Mode menu"
1115 `("Hexl" 1113 `("Hexl"
1116 :help "Hexl-specific Features" 1114 :help "Hexl-specific Features"
diff --git a/lisp/mail/mspools.el b/lisp/mail/mspools.el
index 705c06977bb..1a397db7a0d 100644
--- a/lisp/mail/mspools.el
+++ b/lisp/mail/mspools.el
@@ -172,7 +172,16 @@ your primary spool is. If this fails, set it to something like
172(defvar mspools-buffer "*spools*" 172(defvar mspools-buffer "*spools*"
173 "Name of buffer for displaying spool info.") 173 "Name of buffer for displaying spool info.")
174 174
175(defvar mspools-mode-map nil 175(defvar mspools-mode-map
176 (let ((map (make-sparse-keymap)))
177 (define-key map "\C-c\C-c" 'mspools-visit-spool)
178 (define-key map "\C-m" 'mspools-visit-spool)
179 (define-key map " " 'mspools-visit-spool)
180 (define-key map "?" 'mspools-help)
181 (define-key map "q" 'mspools-quit)
182 (define-key map "n" 'next-line)
183 (define-key map "p" 'previous-line)
184 (define-key map "g" 'revert-buffer))
176 "Keymap for the *spools* buffer.") 185 "Keymap for the *spools* buffer.")
177 186
178;;; Code 187;;; Code
@@ -320,21 +329,6 @@ Buffer is not displayed if SHOW is non-nil."
320 )))) 329 ))))
321 (car (nth line-num mspools-files)))) 330 (car (nth line-num mspools-files))))
322 331
323;;; Keymap
324
325(if mspools-mode-map
326 ()
327 (setq mspools-mode-map (make-sparse-keymap))
328
329 (define-key mspools-mode-map "\C-c\C-c" 'mspools-visit-spool)
330 (define-key mspools-mode-map "\C-m" 'mspools-visit-spool)
331 (define-key mspools-mode-map " " 'mspools-visit-spool)
332 (define-key mspools-mode-map "?" 'mspools-help)
333 (define-key mspools-mode-map "q" 'mspools-quit)
334 (define-key mspools-mode-map "n" 'next-line)
335 (define-key mspools-mode-map "p" 'previous-line)
336 (define-key mspools-mode-map "g" 'revert-buffer))
337
338;;; Spools mode functions 332;;; Spools mode functions
339 333
340(defun mspools-revert-buffer (ignore noconfirm) 334(defun mspools-revert-buffer (ignore noconfirm)
diff --git a/lisp/net/dig.el b/lisp/net/dig.el
index 9392c73855b..d36247a1d1f 100644
--- a/lisp/net/dig.el
+++ b/lisp/net/dig.el
@@ -129,12 +129,11 @@ Buffer should contain output generated by `dig-invoke'."
129 129
130(put 'dig-mode 'mode-class 'special) 130(put 'dig-mode 'mode-class 'special)
131 131
132(defvar dig-mode-map nil) 132(defvar dig-mode-map
133(unless dig-mode-map 133 (let ((map (make-sparse-keymap)))
134 (setq dig-mode-map (make-sparse-keymap)) 134 (suppress-keymap map)
135 (suppress-keymap dig-mode-map) 135 (define-key map "q" 'dig-exit)
136 136 map))
137 (define-key dig-mode-map "q" 'dig-exit))
138 137
139(define-derived-mode dig-mode nil "Dig" 138(define-derived-mode dig-mode nil "Dig"
140 "Major mode for displaying dig output." 139 "Major mode for displaying dig output."
diff --git a/lisp/net/eudc-hotlist.el b/lisp/net/eudc-hotlist.el
index 7798fa43d99..5862384bd4d 100644
--- a/lisp/net/eudc-hotlist.el
+++ b/lisp/net/eudc-hotlist.el
@@ -33,9 +33,18 @@
33(require 'eudc) 33(require 'eudc)
34 34
35(defvar eudc-hotlist-menu nil) 35(defvar eudc-hotlist-menu nil)
36(defvar eudc-hotlist-mode-map nil)
37(defvar eudc-hotlist-list-beginning nil) 36(defvar eudc-hotlist-list-beginning nil)
38 37
38(defvar eudc-hotlist-mode-map
39 (let ((map (make-sparse-keymap)))
40 (define-key map "a" 'eudc-hotlist-add-server)
41 (define-key map "d" 'eudc-hotlist-delete-server)
42 (define-key map "s" 'eudc-hotlist-select-server)
43 (define-key map "t" 'eudc-hotlist-transpose-servers)
44 (define-key map "q" 'eudc-hotlist-quit-edit)
45 (define-key map "x" 'kill-this-buffer)
46 map))
47
39(defun eudc-hotlist-mode () 48(defun eudc-hotlist-mode ()
40 "Major mode used to edit the hotlist of servers. 49 "Major mode used to edit the hotlist of servers.
41 50
@@ -169,16 +178,6 @@ These are the special commands of this mode:
169 (forward-line 1) 178 (forward-line 1)
170 (transpose-lines 1)))))) 179 (transpose-lines 1))))))
171 180
172(setq eudc-hotlist-mode-map
173 (let ((map (make-sparse-keymap)))
174 (define-key map "a" 'eudc-hotlist-add-server)
175 (define-key map "d" 'eudc-hotlist-delete-server)
176 (define-key map "s" 'eudc-hotlist-select-server)
177 (define-key map "t" 'eudc-hotlist-transpose-servers)
178 (define-key map "q" 'eudc-hotlist-quit-edit)
179 (define-key map "x" 'kill-this-buffer)
180 map))
181
182(defconst eudc-hotlist-menu 181(defconst eudc-hotlist-menu
183 '("EUDC Hotlist Edit" 182 '("EUDC Hotlist Edit"
184 ["---" nil nil] 183 ["---" nil nil]
diff --git a/lisp/net/mairix.el b/lisp/net/mairix.el
index 1974427c829..e5c959d8f23 100644
--- a/lisp/net/mairix.el
+++ b/lisp/net/mairix.el
@@ -735,23 +735,21 @@ VALUES may contain values for editable fields from current article."
735 735
736;;;; Major mode for editing/deleting/saving searches 736;;;; Major mode for editing/deleting/saving searches
737 737
738(defvar mairix-searches-mode-map nil "'mairix-searches-mode' keymap.") 738(defvar mairix-searches-mode-map
739 739 (let ((map (make-keymap)))
740;; Keymap 740 (define-key map [(return)] 'mairix-select-search)
741(if (not mairix-searches-mode-map) 741 (define-key map [(down)] 'mairix-next-search)
742 (let ((map (make-keymap))) 742 (define-key map [(up)] 'mairix-previous-search)
743 (define-key map [(return)] 'mairix-select-search) 743 (define-key map [(right)] 'mairix-next-search)
744 (define-key map [(down)] 'mairix-next-search) 744 (define-key map [(left)] 'mairix-previous-search)
745 (define-key map [(up)] 'mairix-previous-search) 745 (define-key map "\C-p" 'mairix-previous-search)
746 (define-key map [(right)] 'mairix-next-search) 746 (define-key map "\C-n" 'mairix-next-search)
747 (define-key map [(left)] 'mairix-previous-search) 747 (define-key map [(q)] 'mairix-select-quit)
748 (define-key map "\C-p" 'mairix-previous-search) 748 (define-key map [(e)] 'mairix-select-edit)
749 (define-key map "\C-n" 'mairix-next-search) 749 (define-key map [(d)] 'mairix-select-delete)
750 (define-key map [(q)] 'mairix-select-quit) 750 (define-key map [(s)] 'mairix-select-save)
751 (define-key map [(e)] 'mairix-select-edit) 751 (setq mairix-searches-mode-map map))
752 (define-key map [(d)] 'mairix-select-delete) 752 "'mairix-searches-mode' keymap.")
753 (define-key map [(s)] 'mairix-select-save)
754 (setq mairix-searches-mode-map map)))
755 753
756(defvar mairix-searches-mode-font-lock-keywords) 754(defvar mairix-searches-mode-font-lock-keywords)
757 755
diff --git a/lisp/net/quickurl.el b/lisp/net/quickurl.el
index 93e0aca541f..4a8625ae745 100644
--- a/lisp/net/quickurl.el
+++ b/lisp/net/quickurl.el
@@ -173,7 +173,20 @@ in your ~/.emacs (after loading/requiring quickurl).")
173(defvar quickurl-urls nil 173(defvar quickurl-urls nil
174 "URL alist for use with `quickurl' and `quickurl-ask'.") 174 "URL alist for use with `quickurl' and `quickurl-ask'.")
175 175
176(defvar quickurl-list-mode-map nil 176(defvar quickurl-list-mode-map
177 (let ((map (make-sparse-keymap)))
178 (suppress-keymap map t)
179 (define-key map "a" #'quickurl-list-add-url)
180 (define-key map [(control m)] #'quickurl-list-insert-url)
181 (define-key map "u" #'quickurl-list-insert-naked-url)
182 (define-key map " " #'quickurl-list-insert-with-lookup)
183 (define-key map "l" #'quickurl-list-insert-lookup)
184 (define-key map "d" #'quickurl-list-insert-with-desc)
185 (define-key map [(control g)] #'quickurl-list-quit)
186 (define-key map "q" #'quickurl-list-quit)
187 (define-key map [mouse-2] #'quickurl-list-mouse-select)
188 (define-key map "?" #'describe-mode)
189 map)
177 "Local keymap for a `quickurl-list-mode' buffer.") 190 "Local keymap for a `quickurl-list-mode' buffer.")
178 191
179(defvar quickurl-list-buffer-name "*quickurl-list*" 192(defvar quickurl-list-buffer-name "*quickurl-list*"
@@ -420,21 +433,6 @@ current buffer, this default action can be modifed via
420 433
421;; quickurl-list mode. 434;; quickurl-list mode.
422 435
423(unless quickurl-list-mode-map
424 (let ((map (make-sparse-keymap)))
425 (suppress-keymap map t)
426 (define-key map "a" #'quickurl-list-add-url)
427 (define-key map [(control m)] #'quickurl-list-insert-url)
428 (define-key map "u" #'quickurl-list-insert-naked-url)
429 (define-key map " " #'quickurl-list-insert-with-lookup)
430 (define-key map "l" #'quickurl-list-insert-lookup)
431 (define-key map "d" #'quickurl-list-insert-with-desc)
432 (define-key map [(control g)] #'quickurl-list-quit)
433 (define-key map "q" #'quickurl-list-quit)
434 (define-key map [mouse-2] #'quickurl-list-mouse-select)
435 (define-key map "?" #'describe-mode)
436 (setq quickurl-list-mode-map map)))
437
438(put 'quickurl-list-mode 'mode-class 'special) 436(put 'quickurl-list-mode 'mode-class 'special)
439 437
440;;;###autoload 438;;;###autoload
diff --git a/lisp/net/telnet.el b/lisp/net/telnet.el
index 2c408f64264..caefafeef72 100644
--- a/lisp/net/telnet.el
+++ b/lisp/net/telnet.el
@@ -61,7 +61,15 @@ PROGRAM says which program to run, to talk to that machine.
61LOGIN-NAME, which is optional, says what to log in as on that machine.") 61LOGIN-NAME, which is optional, says what to log in as on that machine.")
62 62
63(defvar telnet-new-line "\r") 63(defvar telnet-new-line "\r")
64(defvar telnet-mode-map nil) 64(defvar telnet-mode-map
65 (let ((map (nconc (make-sparse-keymap) comint-mode-map)))
66 (define-key telnet-mode-map "\C-m" 'telnet-send-input)
67 ;; (define-key telnet-mode-map "\C-j" 'telnet-send-input)
68 (define-key map "\C-c\C-q" 'send-process-next-char)
69 (define-key map "\C-c\C-c" 'telnet-interrupt-subjob)
70 (define-key map "\C-c\C-z" 'telnet-c-z)
71 map))
72
65(defvar telnet-prompt-pattern "^[^#$%>\n]*[#$%>] *") 73(defvar telnet-prompt-pattern "^[^#$%>\n]*[#$%>] *")
66(defvar telnet-replace-c-g nil) 74(defvar telnet-replace-c-g nil)
67(make-variable-buffer-local 75(make-variable-buffer-local
@@ -104,16 +112,6 @@ rejecting one login and prompting again for a username and password.")
104 (prog1 (read-char) 112 (prog1 (read-char)
105 (setq quit-flag nil)))))) 113 (setq quit-flag nil))))))
106 114
107; initialization on first load.
108(if telnet-mode-map
109 nil
110 (setq telnet-mode-map (nconc (make-sparse-keymap) comint-mode-map))
111 (define-key telnet-mode-map "\C-m" 'telnet-send-input)
112; (define-key telnet-mode-map "\C-j" 'telnet-send-input)
113 (define-key telnet-mode-map "\C-c\C-q" 'send-process-next-char)
114 (define-key telnet-mode-map "\C-c\C-c" 'telnet-interrupt-subjob)
115 (define-key telnet-mode-map "\C-c\C-z" 'telnet-c-z))
116
117;;maybe should have a flag for when have found type 115;;maybe should have a flag for when have found type
118(defun telnet-check-software-type-initialize (string) 116(defun telnet-check-software-type-initialize (string)
119 "Tries to put correct initializations in. Needs work." 117 "Tries to put correct initializations in. Needs work."
diff --git a/lisp/play/5x5.el b/lisp/play/5x5.el
index 5263cf11bc7..918587db132 100644
--- a/lisp/play/5x5.el
+++ b/lisp/play/5x5.el
@@ -108,12 +108,7 @@
108(defvar 5x5-buffer-name "*5x5*" 108(defvar 5x5-buffer-name "*5x5*"
109 "Name of the 5x5 play buffer.") 109 "Name of the 5x5 play buffer.")
110 110
111(defvar 5x5-mode-map nil 111(defvar 5x5-mode-map
112 "Local keymap for the 5x5 game.")
113
114;; Keymap.
115
116(unless 5x5-mode-map
117 (let ((map (make-sparse-keymap))) 112 (let ((map (make-sparse-keymap)))
118 (suppress-keymap map t) 113 (suppress-keymap map t)
119 (define-key map "?" #'describe-mode) 114 (define-key map "?" #'describe-mode)
@@ -141,7 +136,8 @@
141 (define-key map [(control c) (control x)] #'5x5-crack-xor-mutate) 136 (define-key map [(control c) (control x)] #'5x5-crack-xor-mutate)
142 (define-key map "n" #'5x5-new-game) 137 (define-key map "n" #'5x5-new-game)
143 (define-key map "q" #'5x5-quit-game) 138 (define-key map "q" #'5x5-quit-game)
144 (setq 5x5-mode-map map))) 139 map)
140 "Local keymap for the 5x5 game.")
145 141
146;; Menu definition. 142;; Menu definition.
147 143
diff --git a/lisp/play/decipher.el b/lisp/play/decipher.el
index 83186c42442..34119a77a75 100644
--- a/lisp/play/decipher.el
+++ b/lisp/play/decipher.el
@@ -154,38 +154,37 @@ For example, to display ciphertext in the `bold' face, use
154 'bold))) 154 'bold)))
155in your `.emacs' file.") 155in your `.emacs' file.")
156 156
157(defvar decipher-mode-map nil 157(defvar decipher-mode-map
158 (let ((map (make-keymap)))
159 (suppress-keymap map)
160 (define-key map "A" 'decipher-show-alphabet)
161 (define-key map "C" 'decipher-complete-alphabet)
162 (define-key map "D" 'decipher-digram-list)
163 (define-key map "F" 'decipher-frequency-count)
164 (define-key map "M" 'decipher-make-checkpoint)
165 (define-key map "N" 'decipher-adjacency-list)
166 (define-key map "R" 'decipher-restore-checkpoint)
167 (define-key map "U" 'decipher-undo)
168 (define-key map " " 'decipher-keypress)
169 (define-key map [remap undo] 'decipher-undo)
170 (define-key map [remap advertised-undo] 'decipher-undo)
171 (let ((key ?a))
172 (while (<= key ?z)
173 (define-key map (vector key) 'decipher-keypress)
174 (incf key)))
175 map)
158 "Keymap for Decipher mode.") 176 "Keymap for Decipher mode.")
159(if (not decipher-mode-map) 177
160 (progn 178
161 (setq decipher-mode-map (make-keymap)) 179(defvar decipher-stats-mode-map
162 (suppress-keymap decipher-mode-map) 180 (let ((map (make-keymap)))
163 (define-key decipher-mode-map "A" 'decipher-show-alphabet) 181 (suppress-keymap map)
164 (define-key decipher-mode-map "C" 'decipher-complete-alphabet) 182 (define-key map "D" 'decipher-digram-list)
165 (define-key decipher-mode-map "D" 'decipher-digram-list) 183 (define-key map "F" 'decipher-frequency-count)
166 (define-key decipher-mode-map "F" 'decipher-frequency-count) 184 (define-key map "N" 'decipher-adjacency-list)
167 (define-key decipher-mode-map "M" 'decipher-make-checkpoint) 185 map)
168 (define-key decipher-mode-map "N" 'decipher-adjacency-list) 186"Keymap for Decipher-Stats mode.")
169 (define-key decipher-mode-map "R" 'decipher-restore-checkpoint) 187
170 (define-key decipher-mode-map "U" 'decipher-undo)
171 (define-key decipher-mode-map " " 'decipher-keypress)
172 (define-key decipher-mode-map [remap undo] 'decipher-undo)
173 (define-key decipher-mode-map [remap advertised-undo] 'decipher-undo)
174 (let ((key ?a))
175 (while (<= key ?z)
176 (define-key decipher-mode-map (vector key) 'decipher-keypress)
177 (incf key)))))
178
179(defvar decipher-stats-mode-map nil
180 "Keymap for Decipher-Stats mode.")
181(if (not decipher-stats-mode-map)
182 (progn
183 (setq decipher-stats-mode-map (make-keymap))
184 (suppress-keymap decipher-stats-mode-map)
185 (define-key decipher-stats-mode-map "D" 'decipher-digram-list)
186 (define-key decipher-stats-mode-map "F" 'decipher-frequency-count)
187 (define-key decipher-stats-mode-map "N" 'decipher-adjacency-list)
188 ))
189 188
190(defvar decipher-mode-syntax-table nil 189(defvar decipher-mode-syntax-table nil
191 "Decipher mode syntax table") 190 "Decipher mode syntax table")
diff --git a/lisp/play/landmark.el b/lisp/play/landmark.el
index 2c82e8cd420..5262f4db98d 100644
--- a/lisp/play/landmark.el
+++ b/lisp/play/landmark.el
@@ -159,52 +159,52 @@
159 :type 'hook 159 :type 'hook
160 :group 'lm) 160 :group 'lm)
161 161
162(defvar lm-mode-map nil 162(defvar lm-mode-map
163 (let ((map (make-sparse-keymap)))
164 ;; Key bindings for cursor motion.
165 (define-key map "y" 'lm-move-nw) ; y
166 (define-key map "u" 'lm-move-ne) ; u
167 (define-key map "b" 'lm-move-sw) ; b
168 (define-key map "n" 'lm-move-se) ; n
169 (define-key map "h" 'backward-char) ; h
170 (define-key map "l" 'forward-char) ; l
171 (define-key map "j" 'lm-move-down) ; j
172 (define-key map "k" 'lm-move-up) ; k
173
174 (define-key map [kp-7] 'lm-move-nw)
175 (define-key map [kp-9] 'lm-move-ne)
176 (define-key map [kp-1] 'lm-move-sw)
177 (define-key map [kp-3] 'lm-move-se)
178 (define-key map [kp-4] 'backward-char)
179 (define-key map [kp-6] 'forward-char)
180 (define-key map [kp-2] 'lm-move-down)
181 (define-key map [kp-8] 'lm-move-up)
182
183 (define-key map "\C-n" 'lm-move-down) ; C-n
184 (define-key map "\C-p" 'lm-move-up) ; C-p
185
186 ;; Key bindings for entering Human moves.
187 (define-key map "X" 'lm-human-plays) ; X
188 (define-key map "x" 'lm-human-plays) ; x
189
190 (define-key map " " 'lm-start-robot) ; SPC
191 (define-key map [down-mouse-1] 'lm-start-robot)
192 (define-key map [drag-mouse-1] 'lm-click)
193 (define-key map [mouse-1] 'lm-click)
194 (define-key map [down-mouse-2] 'lm-click)
195 (define-key map [mouse-2] 'lm-mouse-play)
196 (define-key map [drag-mouse-2] 'lm-mouse-play)
197
198 (define-key map [remap previous-line] 'lm-move-up)
199 (define-key map [remap next-line] 'lm-move-down)
200 (define-key map [remap beginning-of-line] 'lm-beginning-of-line)
201 (define-key map [remap end-of-line] 'lm-end-of-line)
202 (define-key map [remap undo] 'lm-human-takes-back)
203 (define-key map [remap advertised-undo] 'lm-human-takes-back)
204 map)
163 "Local keymap to use in Lm mode.") 205 "Local keymap to use in Lm mode.")
164 206
165(if lm-mode-map nil 207
166 (setq lm-mode-map (make-sparse-keymap))
167
168 ;; Key bindings for cursor motion.
169 (define-key lm-mode-map "y" 'lm-move-nw) ; y
170 (define-key lm-mode-map "u" 'lm-move-ne) ; u
171 (define-key lm-mode-map "b" 'lm-move-sw) ; b
172 (define-key lm-mode-map "n" 'lm-move-se) ; n
173 (define-key lm-mode-map "h" 'backward-char) ; h
174 (define-key lm-mode-map "l" 'forward-char) ; l
175 (define-key lm-mode-map "j" 'lm-move-down) ; j
176 (define-key lm-mode-map "k" 'lm-move-up) ; k
177
178 (define-key lm-mode-map [kp-7] 'lm-move-nw)
179 (define-key lm-mode-map [kp-9] 'lm-move-ne)
180 (define-key lm-mode-map [kp-1] 'lm-move-sw)
181 (define-key lm-mode-map [kp-3] 'lm-move-se)
182 (define-key lm-mode-map [kp-4] 'backward-char)
183 (define-key lm-mode-map [kp-6] 'forward-char)
184 (define-key lm-mode-map [kp-2] 'lm-move-down)
185 (define-key lm-mode-map [kp-8] 'lm-move-up)
186
187 (define-key lm-mode-map "\C-n" 'lm-move-down) ; C-n
188 (define-key lm-mode-map "\C-p" 'lm-move-up) ; C-p
189
190 ;; Key bindings for entering Human moves.
191 (define-key lm-mode-map "X" 'lm-human-plays) ; X
192 (define-key lm-mode-map "x" 'lm-human-plays) ; x
193
194 (define-key lm-mode-map " " 'lm-start-robot) ; SPC
195 (define-key lm-mode-map [down-mouse-1] 'lm-start-robot)
196 (define-key lm-mode-map [drag-mouse-1] 'lm-click)
197 (define-key lm-mode-map [mouse-1] 'lm-click)
198 (define-key lm-mode-map [down-mouse-2] 'lm-click)
199 (define-key lm-mode-map [mouse-2] 'lm-mouse-play)
200 (define-key lm-mode-map [drag-mouse-2] 'lm-mouse-play)
201
202 (define-key lm-mode-map [remap previous-line] 'lm-move-up)
203 (define-key lm-mode-map [remap next-line] 'lm-move-down)
204 (define-key lm-mode-map [remap beginning-of-line] 'lm-beginning-of-line)
205 (define-key lm-mode-map [remap end-of-line] 'lm-end-of-line)
206 (define-key lm-mode-map [remap undo] 'lm-human-takes-back)
207 (define-key lm-mode-map [remap advertised-undo] 'lm-human-takes-back))
208 208
209(defvar lm-emacs-won () 209(defvar lm-emacs-won ()
210 "*For making font-lock use the winner's face for the line.") 210 "*For making font-lock use the winner's face for the line.")
diff --git a/lisp/play/mpuz.el b/lisp/play/mpuz.el
index 954730c9491..c5b74a8499f 100644
--- a/lisp/play/mpuz.el
+++ b/lisp/play/mpuz.el
@@ -87,33 +87,34 @@ t means never ding, and `error' means only ding on wrong input."
87 :type 'hook 87 :type 'hook
88 :group 'mpuz) 88 :group 'mpuz)
89 89
90(defvar mpuz-mode-map nil 90(defvar mpuz-mode-map
91 (let ((map (make-sparse-keymap)))
92 (define-key map "a" 'mpuz-try-letter)
93 (define-key map "b" 'mpuz-try-letter)
94 (define-key map "c" 'mpuz-try-letter)
95 (define-key map "d" 'mpuz-try-letter)
96 (define-key map "e" 'mpuz-try-letter)
97 (define-key map "f" 'mpuz-try-letter)
98 (define-key map "g" 'mpuz-try-letter)
99 (define-key map "h" 'mpuz-try-letter)
100 (define-key map "i" 'mpuz-try-letter)
101 (define-key map "j" 'mpuz-try-letter)
102 (define-key map "A" 'mpuz-try-letter)
103 (define-key map "B" 'mpuz-try-letter)
104 (define-key map "C" 'mpuz-try-letter)
105 (define-key map "D" 'mpuz-try-letter)
106 (define-key map "E" 'mpuz-try-letter)
107 (define-key map "F" 'mpuz-try-letter)
108 (define-key map "G" 'mpuz-try-letter)
109 (define-key map "H" 'mpuz-try-letter)
110 (define-key map "I" 'mpuz-try-letter)
111 (define-key map "J" 'mpuz-try-letter)
112 (define-key map "\C-g" 'mpuz-offer-abort)
113 (define-key map "?" 'describe-mode)
114 map)
91 "Local keymap to use in Mult Puzzle.") 115 "Local keymap to use in Mult Puzzle.")
92 116
93(if mpuz-mode-map nil 117
94 (setq mpuz-mode-map (make-sparse-keymap))
95 (define-key mpuz-mode-map "a" 'mpuz-try-letter)
96 (define-key mpuz-mode-map "b" 'mpuz-try-letter)
97 (define-key mpuz-mode-map "c" 'mpuz-try-letter)
98 (define-key mpuz-mode-map "d" 'mpuz-try-letter)
99 (define-key mpuz-mode-map "e" 'mpuz-try-letter)
100 (define-key mpuz-mode-map "f" 'mpuz-try-letter)
101 (define-key mpuz-mode-map "g" 'mpuz-try-letter)
102 (define-key mpuz-mode-map "h" 'mpuz-try-letter)
103 (define-key mpuz-mode-map "i" 'mpuz-try-letter)
104 (define-key mpuz-mode-map "j" 'mpuz-try-letter)
105 (define-key mpuz-mode-map "A" 'mpuz-try-letter)
106 (define-key mpuz-mode-map "B" 'mpuz-try-letter)
107 (define-key mpuz-mode-map "C" 'mpuz-try-letter)
108 (define-key mpuz-mode-map "D" 'mpuz-try-letter)
109 (define-key mpuz-mode-map "E" 'mpuz-try-letter)
110 (define-key mpuz-mode-map "F" 'mpuz-try-letter)
111 (define-key mpuz-mode-map "G" 'mpuz-try-letter)
112 (define-key mpuz-mode-map "H" 'mpuz-try-letter)
113 (define-key mpuz-mode-map "I" 'mpuz-try-letter)
114 (define-key mpuz-mode-map "J" 'mpuz-try-letter)
115 (define-key mpuz-mode-map "\C-g" 'mpuz-offer-abort)
116 (define-key mpuz-mode-map "?" 'describe-mode))
117 118
118(defun mpuz-mode () 119(defun mpuz-mode ()
119 "Multiplication puzzle mode. 120 "Multiplication puzzle mode.
diff --git a/lisp/progmodes/inf-lisp.el b/lisp/progmodes/inf-lisp.el
index ee5e2a49ead..41ce378e966 100644
--- a/lisp/progmodes/inf-lisp.el
+++ b/lisp/progmodes/inf-lisp.el
@@ -80,19 +80,17 @@ mode. Default is whitespace followed by 0 or 1 single-letter colon-keyword
80 :type 'regexp 80 :type 'regexp
81 :group 'inferior-lisp) 81 :group 'inferior-lisp)
82 82
83(defvar inferior-lisp-mode-map nil) 83(defvar inferior-lisp-mode-map
84(unless inferior-lisp-mode-map 84 (let ((map (copy-keymap comint-mode-map)))
85 (setq inferior-lisp-mode-map (copy-keymap comint-mode-map)) 85 (set-keymap-parent map lisp-mode-shared-map)
86 (set-keymap-parent inferior-lisp-mode-map lisp-mode-shared-map) 86 (define-key map "\C-x\C-e" 'lisp-eval-last-sexp)
87 (define-key inferior-lisp-mode-map "\C-x\C-e" 'lisp-eval-last-sexp) 87 (define-key map "\C-c\C-l" 'lisp-load-file)
88 (define-key inferior-lisp-mode-map "\C-c\C-l" 'lisp-load-file) 88 (define-key map "\C-c\C-k" 'lisp-compile-file)
89 (define-key inferior-lisp-mode-map "\C-c\C-k" 'lisp-compile-file) 89 (define-key map "\C-c\C-a" 'lisp-show-arglist)
90 (define-key inferior-lisp-mode-map "\C-c\C-a" 'lisp-show-arglist) 90 (define-key map "\C-c\C-d" 'lisp-describe-sym)
91 (define-key inferior-lisp-mode-map "\C-c\C-d" 'lisp-describe-sym) 91 (define-key map "\C-c\C-f" 'lisp-show-function-documentation)
92 (define-key inferior-lisp-mode-map "\C-c\C-f" 92 (define-key map "\C-c\C-v" 'lisp-show-variable-documentation)
93 'lisp-show-function-documentation) 93 map))
94 (define-key inferior-lisp-mode-map "\C-c\C-v"
95 'lisp-show-variable-documentation))
96 94
97;;; These commands augment Lisp mode, so you can process Lisp code in 95;;; These commands augment Lisp mode, so you can process Lisp code in
98;;; the source files. 96;;; the source files.
diff --git a/lisp/progmodes/modula2.el b/lisp/progmodes/modula2.el
index 9d226cefbd4..3d2af5e217e 100644
--- a/lisp/progmodes/modula2.el
+++ b/lisp/progmodes/modula2.el
@@ -69,10 +69,7 @@
69 (setq m2-mode-syntax-table table))) 69 (setq m2-mode-syntax-table table)))
70 70
71;;; Added by TEP 71;;; Added by TEP
72(defvar m2-mode-map nil 72(defvar m2-mode-map
73 "Keymap used in Modula-2 mode.")
74
75(if m2-mode-map ()
76 (let ((map (make-sparse-keymap))) 73 (let ((map (make-sparse-keymap)))
77 (define-key map "\^i" 'm2-tab) 74 (define-key map "\^i" 'm2-tab)
78 (define-key map "\C-cb" 'm2-begin) 75 (define-key map "\C-cb" 'm2-begin)
@@ -103,7 +100,8 @@
103 (define-key map "\C-c\C-t" 'm2-toggle) 100 (define-key map "\C-c\C-t" 'm2-toggle)
104 (define-key map "\C-c\C-l" 'm2-link) 101 (define-key map "\C-c\C-l" 'm2-link)
105 (define-key map "\C-c\C-c" 'm2-compile) 102 (define-key map "\C-c\C-c" 'm2-compile)
106 (setq m2-mode-map map))) 103 map)
104 "Keymap used in Modula-2 mode.")
107 105
108(defcustom m2-indent 5 106(defcustom m2-indent 5
109 "*This variable gives the indentation in Modula-2-Mode." 107 "*This variable gives the indentation in Modula-2-Mode."
diff --git a/lisp/shell.el b/lisp/shell.el
index 23b7f7d8498..6cb9a511101 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -334,26 +334,25 @@ Thus, this does not include the shell's current directory.")
334(defvar shell-dirstack-query nil 334(defvar shell-dirstack-query nil
335 "Command used by `shell-resync-dirs' to query the shell.") 335 "Command used by `shell-resync-dirs' to query the shell.")
336 336
337(defvar shell-mode-map nil) 337(defvar shell-mode-map
338(cond ((not shell-mode-map) 338 (let ((map (nconc (make-sparse-keymap) comint-mode-map)))
339 (setq shell-mode-map (nconc (make-sparse-keymap) comint-mode-map)) 339 (define-key map "\C-c\C-f" 'shell-forward-command)
340 (define-key shell-mode-map "\C-c\C-f" 'shell-forward-command) 340 (define-key map "\C-c\C-b" 'shell-backward-command)
341 (define-key shell-mode-map "\C-c\C-b" 'shell-backward-command) 341 (define-key map "\t" 'comint-dynamic-complete)
342 (define-key shell-mode-map "\t" 'comint-dynamic-complete) 342 (define-key map (kbd "M-RET") 'shell-resync-dirs)
343 (define-key shell-mode-map (kbd "M-RET") 'shell-resync-dirs) 343 (define-key map "\M-?" 'comint-dynamic-list-filename-completions)
344 (define-key shell-mode-map "\M-?" 344 (define-key map [menu-bar completion]
345 'comint-dynamic-list-filename-completions) 345 (cons "Complete"
346 (define-key shell-mode-map [menu-bar completion] 346 (copy-keymap (lookup-key comint-mode-map [menu-bar completion]))))
347 (cons "Complete" 347 (define-key-after (lookup-key map [menu-bar completion])
348 (copy-keymap (lookup-key comint-mode-map [menu-bar completion])))) 348 [complete-env-variable] '("Complete Env. Variable Name" .
349 (define-key-after (lookup-key shell-mode-map [menu-bar completion]) 349 shell-dynamic-complete-environment-variable)
350 [complete-env-variable] '("Complete Env. Variable Name" . 350 'complete-file)
351 shell-dynamic-complete-environment-variable) 351 (define-key-after (lookup-key map [menu-bar completion])
352 'complete-file) 352 [expand-directory] '("Expand Directory Reference" .
353 (define-key-after (lookup-key shell-mode-map [menu-bar completion]) 353 shell-replace-by-expanded-directory)
354 [expand-directory] '("Expand Directory Reference" . 354 'complete-expand)
355 shell-replace-by-expanded-directory) 355 map))
356 'complete-expand)))
357 356
358(defcustom shell-mode-hook '() 357(defcustom shell-mode-hook '()
359 "Hook for customizing Shell mode." 358 "Hook for customizing Shell mode."