aboutsummaryrefslogtreecommitdiffstats
path: root/lisp
diff options
context:
space:
mode:
authorStefan Monnier2012-06-27 17:15:13 -0400
committerStefan Monnier2012-06-27 17:15:13 -0400
commit1ec4b7b25979ff9ea72a3ea35bf35d5882f467f7 (patch)
tree7d3f3d3ef4a151e8a2b93b653692a4a652d2a720 /lisp
parente309e2a56606ef774c5c366f74ea17ced46da065 (diff)
downloademacs-1ec4b7b25979ff9ea72a3ea35bf35d5882f467f7.tar.gz
emacs-1ec4b7b25979ff9ea72a3ea35bf35d5882f467f7.zip
Get rid of all the manual purecopy calls in menu-bar definitions.
* lisp/loadup.el (purify-flag): Pre-grow the hash-table to reduce the memory use. * lisp/bindings.el (bindings--define-key): New function. * lisp/vc/vc-hooks.el, lisp/replace.el, lisp/menu-bar.el: * lisp/international/mule-cmds.el, lisp/emacs-lisp/lisp-mode.el: * lisp/buff-menu.el, lisp/bookmark.el: * bindings.el: Use it to purecopy define-key bindings. * src/fns.c (maybe_resize_hash_table): Output message when growing the purify-hashtable.
Diffstat (limited to 'lisp')
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/bindings.el104
-rw-r--r--lisp/bookmark.el60
-rw-r--r--lisp/buff-menu.el120
-rw-r--r--lisp/emacs-lisp/lisp-mode.el256
-rw-r--r--lisp/international/mule-cmds.el150
-rw-r--r--lisp/loadup.el2
-rw-r--r--lisp/menu-bar.el1502
-rw-r--r--lisp/replace.el81
-rw-r--r--lisp/vc/vc-hooks.el120
10 files changed, 1211 insertions, 1191 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index b08374742c1..1bcd9c7001e 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,5 +1,12 @@
12012-06-27 Stefan Monnier <monnier@iro.umontreal.ca> 12012-06-27 Stefan Monnier <monnier@iro.umontreal.ca>
2 2
3 * loadup.el (purify-flag): Pre-grow the hash-table to reduce the
4 memory use.
5 * bindings.el (bindings--define-key): New function.
6 * vc/vc-hooks.el, replace.el, menu-bar.el, international/mule-cmds.el:
7 * emacs-lisp/lisp-mode.el, buff-menu.el, bookmark.el:
8 * bindings.el: Use it to purecopy define-key bindings.
9
3 * textmodes/rst.el (rst-adornment-faces-alist): Avoid copy-list. 10 * textmodes/rst.el (rst-adornment-faces-alist): Avoid copy-list.
4 11
5 * emacs-lisp/cl.el (flet): Mark obsolete. 12 * emacs-lisp/cl.el (flet): Mark obsolete.
diff --git a/lisp/bindings.el b/lisp/bindings.el
index b92d5e9a1ee..109cd8a0d49 100644
--- a/lisp/bindings.el
+++ b/lisp/bindings.el
@@ -273,14 +273,34 @@ Normally nil in most modes, since there is no process to display.")
273(put 'mode-line-process 'risky-local-variable t) 273(put 'mode-line-process 'risky-local-variable t)
274(make-variable-buffer-local 'mode-line-process) 274(make-variable-buffer-local 'mode-line-process)
275 275
276(defun bindings--define-key (map key item)
277 "Make as much as possible of the menus pure."
278 (declare (indent 2))
279 (define-key map key
280 (cond
281 ((not (consp item)) item) ;Not sure that could be other than a symbol.
282 ;; Keymaps can't be made pure otherwise users can't remove/add elements
283 ;; from/to them any more.
284 ((keymapp item) item)
285 ((stringp (car item))
286 (if (keymapp (cdr item))
287 (cons (purecopy (car item)) (cdr item))
288 (purecopy item)))
289 ((eq 'menu-item (car item))
290 (if (keymapp (nth 2 item))
291 `(menu-item ,(purecopy (nth 1 item)) ,(nth 2 item)
292 ,@(purecopy (nthcdr 3 item)))
293 (purecopy item)))
294 (t (message "non-menu-item: %S" item) item))))
295
276(defvar mode-line-mode-menu (make-sparse-keymap "Minor Modes") "\ 296(defvar mode-line-mode-menu (make-sparse-keymap "Minor Modes") "\
277Menu of mode operations in the mode line.") 297Menu of mode operations in the mode line.")
278 298
279(defvar mode-line-major-mode-keymap 299(defvar mode-line-major-mode-keymap
280 (let ((map (make-sparse-keymap))) 300 (let ((map (make-sparse-keymap)))
281 (define-key map [mode-line down-mouse-1] 301 (bindings--define-key map [mode-line down-mouse-1]
282 `(menu-item ,(purecopy "Menu Bar") ignore 302 `(menu-item "Menu Bar" ignore
283 :filter (lambda (_) (mouse-menu-major-mode-map)))) 303 :filter ,(lambda (_) (mouse-menu-major-mode-map))))
284 (define-key map [mode-line mouse-2] 'describe-mode) 304 (define-key map [mode-line mouse-2] 'describe-mode)
285 (define-key map [mode-line down-mouse-3] mode-line-mode-menu) 305 (define-key map [mode-line down-mouse-3] mode-line-mode-menu)
286 map) "\ 306 map) "\
@@ -327,13 +347,13 @@ mouse-3: Toggle minor modes"
327(defvar mode-line-column-line-number-mode-map 347(defvar mode-line-column-line-number-mode-map
328 (let ((map (make-sparse-keymap)) 348 (let ((map (make-sparse-keymap))
329 (menu-map (make-sparse-keymap "Toggle Line and Column Number Display"))) 349 (menu-map (make-sparse-keymap "Toggle Line and Column Number Display")))
330 (define-key menu-map [line-number-mode] 350 (bindings--define-key menu-map [line-number-mode]
331 `(menu-item ,(purecopy "Display Line Numbers") line-number-mode 351 '(menu-item "Display Line Numbers" line-number-mode
332 :help ,(purecopy "Toggle displaying line numbers in the mode-line") 352 :help "Toggle displaying line numbers in the mode-line"
333 :button (:toggle . line-number-mode))) 353 :button (:toggle . line-number-mode)))
334 (define-key menu-map [column-number-mode] 354 (bindings--define-key menu-map [column-number-mode]
335 `(menu-item ,(purecopy "Display Column Numbers") column-number-mode 355 '(menu-item "Display Column Numbers" column-number-mode
336 :help ,(purecopy "Toggle displaying column numbers in the mode-line") 356 :help "Toggle displaying column numbers in the mode-line"
337 :button (:toggle . column-number-mode))) 357 :button (:toggle . column-number-mode)))
338 (define-key map [mode-line down-mouse-1] menu-map) 358 (define-key map [mode-line down-mouse-1] menu-map)
339 map) "\ 359 map) "\
@@ -491,51 +511,51 @@ Switch to the most recently selected buffer other than the current one."
491 511
492;; Use mode-line-mode-menu for local minor-modes only. 512;; Use mode-line-mode-menu for local minor-modes only.
493;; Global ones can go on the menubar (Options --> Show/Hide). 513;; Global ones can go on the menubar (Options --> Show/Hide).
494(define-key mode-line-mode-menu [overwrite-mode] 514(bindings--define-key mode-line-mode-menu [overwrite-mode]
495 `(menu-item ,(purecopy "Overwrite (Ovwrt)") overwrite-mode 515 '(menu-item "Overwrite (Ovwrt)" overwrite-mode
496 :help ,(purecopy "Overwrite mode: typed characters replace existing text") 516 :help "Overwrite mode: typed characters replace existing text"
497 :button (:toggle . overwrite-mode))) 517 :button (:toggle . overwrite-mode)))
498(define-key mode-line-mode-menu [outline-minor-mode] 518(bindings--define-key mode-line-mode-menu [outline-minor-mode]
499 `(menu-item ,(purecopy "Outline (Outl)") outline-minor-mode 519 '(menu-item "Outline (Outl)" outline-minor-mode
500 ;; XXX: This needs a good, brief description. 520 ;; XXX: This needs a good, brief description.
501 :help ,(purecopy "") 521 :help ""
502 :button (:toggle . (bound-and-true-p outline-minor-mode)))) 522 :button (:toggle . (bound-and-true-p outline-minor-mode))))
503(define-key mode-line-mode-menu [highlight-changes-mode] 523(bindings--define-key mode-line-mode-menu [highlight-changes-mode]
504 `(menu-item ,(purecopy "Highlight changes (Chg)") highlight-changes-mode 524 '(menu-item "Highlight changes (Chg)" highlight-changes-mode
505 :help ,(purecopy "Show changes in the buffer in a distinctive color") 525 :help "Show changes in the buffer in a distinctive color"
506 :button (:toggle . (bound-and-true-p highlight-changes-mode)))) 526 :button (:toggle . (bound-and-true-p highlight-changes-mode))))
507(define-key mode-line-mode-menu [hide-ifdef-mode] 527(bindings--define-key mode-line-mode-menu [hide-ifdef-mode]
508 `(menu-item ,(purecopy "Hide ifdef (Ifdef)") hide-ifdef-mode 528 '(menu-item "Hide ifdef (Ifdef)" hide-ifdef-mode
509 :help ,(purecopy "Show/Hide code within #ifdef constructs") 529 :help "Show/Hide code within #ifdef constructs"
510 :button (:toggle . (bound-and-true-p hide-ifdef-mode)))) 530 :button (:toggle . (bound-and-true-p hide-ifdef-mode))))
511(define-key mode-line-mode-menu [glasses-mode] 531(bindings--define-key mode-line-mode-menu [glasses-mode]
512 `(menu-item ,(purecopy "Glasses (o^o)") glasses-mode 532 '(menu-item "Glasses (o^o)" glasses-mode
513 :help ,(purecopy "Insert virtual separators to make long identifiers easy to read") 533 :help "Insert virtual separators to make long identifiers easy to read"
514 :button (:toggle . (bound-and-true-p glasses-mode)))) 534 :button (:toggle . (bound-and-true-p glasses-mode))))
515(define-key mode-line-mode-menu [font-lock-mode] 535(bindings--define-key mode-line-mode-menu [font-lock-mode]
516 `(menu-item ,(purecopy "Font Lock") font-lock-mode 536 '(menu-item "Font Lock" font-lock-mode
517 :help ,(purecopy "Syntax coloring") 537 :help "Syntax coloring"
518 :button (:toggle . font-lock-mode))) 538 :button (:toggle . font-lock-mode)))
519(define-key mode-line-mode-menu [flyspell-mode] 539(bindings--define-key mode-line-mode-menu [flyspell-mode]
520 `(menu-item ,(purecopy "Flyspell (Fly)") flyspell-mode 540 '(menu-item "Flyspell (Fly)" flyspell-mode
521 :help ,(purecopy "Spell checking on the fly") 541 :help "Spell checking on the fly"
522 :button (:toggle . (bound-and-true-p flyspell-mode)))) 542 :button (:toggle . (bound-and-true-p flyspell-mode))))
523(define-key mode-line-mode-menu [auto-revert-tail-mode] 543(bindings--define-key mode-line-mode-menu [auto-revert-tail-mode]
524 `(menu-item ,(purecopy "Auto revert tail (Tail)") auto-revert-tail-mode 544 '(menu-item "Auto revert tail (Tail)" auto-revert-tail-mode
525 :help ,(purecopy "Revert the tail of the buffer when buffer grows") 545 :help "Revert the tail of the buffer when buffer grows"
526 :enable (buffer-file-name) 546 :enable (buffer-file-name)
527 :button (:toggle . (bound-and-true-p auto-revert-tail-mode)))) 547 :button (:toggle . (bound-and-true-p auto-revert-tail-mode))))
528(define-key mode-line-mode-menu [auto-revert-mode] 548(bindings--define-key mode-line-mode-menu [auto-revert-mode]
529 `(menu-item ,(purecopy "Auto revert (ARev)") auto-revert-mode 549 '(menu-item "Auto revert (ARev)" auto-revert-mode
530 :help ,(purecopy "Revert the buffer when the file on disk changes") 550 :help "Revert the buffer when the file on disk changes"
531 :button (:toggle . (bound-and-true-p auto-revert-mode)))) 551 :button (:toggle . (bound-and-true-p auto-revert-mode))))
532(define-key mode-line-mode-menu [auto-fill-mode] 552(bindings--define-key mode-line-mode-menu [auto-fill-mode]
533 `(menu-item ,(purecopy "Auto fill (Fill)") auto-fill-mode 553 '(menu-item "Auto fill (Fill)" auto-fill-mode
534 :help ,(purecopy "Automatically insert new lines") 554 :help "Automatically insert new lines"
535 :button (:toggle . auto-fill-function))) 555 :button (:toggle . auto-fill-function)))
536(define-key mode-line-mode-menu [abbrev-mode] 556(bindings--define-key mode-line-mode-menu [abbrev-mode]
537 `(menu-item ,(purecopy "Abbrev (Abbrev)") abbrev-mode 557 '(menu-item "Abbrev (Abbrev)" abbrev-mode
538 :help ,(purecopy "Automatically expand abbreviations") 558 :help "Automatically expand abbreviations"
539 :button (:toggle . abbrev-mode))) 559 :button (:toggle . abbrev-mode)))
540 560
541(defun mode-line-minor-mode-help (event) 561(defun mode-line-minor-mode-help (event)
diff --git a/lisp/bookmark.el b/lisp/bookmark.el
index f7266dc2250..bf2ea9a9517 100644
--- a/lisp/bookmark.el
+++ b/lisp/bookmark.el
@@ -2115,36 +2115,36 @@ strings returned are not."
2115;;;###autoload 2115;;;###autoload
2116(defvar menu-bar-bookmark-map 2116(defvar menu-bar-bookmark-map
2117 (let ((map (make-sparse-keymap "Bookmark functions"))) 2117 (let ((map (make-sparse-keymap "Bookmark functions")))
2118 (define-key map [load] 2118 (bindings--define-key map [load]
2119 `(menu-item ,(purecopy "Load a Bookmark File...") bookmark-load 2119 '(menu-item "Load a Bookmark File..." bookmark-load
2120 :help ,(purecopy "Load bookmarks from a bookmark file)"))) 2120 :help "Load bookmarks from a bookmark file)"))
2121 (define-key map [write] 2121 (bindings--define-key map [write]
2122 `(menu-item ,(purecopy "Save Bookmarks As...") bookmark-write 2122 '(menu-item "Save Bookmarks As..." bookmark-write
2123 :help ,(purecopy "Write bookmarks to a file (reading the file name with the minibuffer)"))) 2123 :help "Write bookmarks to a file (reading the file name with the minibuffer)"))
2124 (define-key map [save] 2124 (bindings--define-key map [save]
2125 `(menu-item ,(purecopy "Save Bookmarks") bookmark-save 2125 '(menu-item "Save Bookmarks" bookmark-save
2126 :help ,(purecopy "Save currently defined bookmarks"))) 2126 :help "Save currently defined bookmarks"))
2127 (define-key map [edit] 2127 (bindings--define-key map [edit]
2128 `(menu-item ,(purecopy "Edit Bookmark List") bookmark-bmenu-list 2128 '(menu-item "Edit Bookmark List" bookmark-bmenu-list
2129 :help ,(purecopy "Display a list of existing bookmarks"))) 2129 :help "Display a list of existing bookmarks"))
2130 (define-key map [delete] 2130 (bindings--define-key map [delete]
2131 `(menu-item ,(purecopy "Delete Bookmark...") bookmark-delete 2131 '(menu-item "Delete Bookmark..." bookmark-delete
2132 :help ,(purecopy "Delete a bookmark from the bookmark list"))) 2132 :help "Delete a bookmark from the bookmark list"))
2133 (define-key map [rename] 2133 (bindings--define-key map [rename]
2134 `(menu-item ,(purecopy "Rename Bookmark...") bookmark-rename 2134 '(menu-item "Rename Bookmark..." bookmark-rename
2135 :help ,(purecopy "Change the name of a bookmark"))) 2135 :help "Change the name of a bookmark"))
2136 (define-key map [locate] 2136 (bindings--define-key map [locate]
2137 `(menu-item ,(purecopy "Insert Location...") bookmark-locate 2137 '(menu-item "Insert Location..." bookmark-locate
2138 :help ,(purecopy "Insert the name of the file associated with a bookmark"))) 2138 :help "Insert the name of the file associated with a bookmark"))
2139 (define-key map [insert] 2139 (bindings--define-key map [insert]
2140 `(menu-item ,(purecopy "Insert Contents...") bookmark-insert 2140 '(menu-item "Insert Contents..." bookmark-insert
2141 :help ,(purecopy "Insert the text of the file pointed to by a bookmark"))) 2141 :help "Insert the text of the file pointed to by a bookmark"))
2142 (define-key map [set] 2142 (bindings--define-key map [set]
2143 `(menu-item ,(purecopy "Set Bookmark...") bookmark-set 2143 '(menu-item "Set Bookmark..." bookmark-set
2144 :help ,(purecopy "Set a bookmark named inside a file."))) 2144 :help "Set a bookmark named inside a file."))
2145 (define-key map [jump] 2145 (bindings--define-key map [jump]
2146 `(menu-item ,(purecopy "Jump to Bookmark...") bookmark-jump 2146 '(menu-item "Jump to Bookmark..." bookmark-jump
2147 :help ,(purecopy "Jump to a bookmark (a point in some file)"))) 2147 :help "Jump to a bookmark (a point in some file)"))
2148 map)) 2148 map))
2149 2149
2150;;;###autoload 2150;;;###autoload
diff --git a/lisp/buff-menu.el b/lisp/buff-menu.el
index f501583b9ba..ab1de184ea0 100644
--- a/lisp/buff-menu.el
+++ b/lisp/buff-menu.el
@@ -134,68 +134,68 @@ commands.")
134 (define-key map [follow-link] 'mouse-face) 134 (define-key map [follow-link] 'mouse-face)
135 135
136 (define-key map [menu-bar Buffer-menu-mode] (cons (purecopy "Buffer-Menu") menu-map)) 136 (define-key map [menu-bar Buffer-menu-mode] (cons (purecopy "Buffer-Menu") menu-map))
137 (define-key menu-map [quit] 137 (bindings--define-key menu-map [quit]
138 `(menu-item ,(purecopy "Quit") quit-window 138 '(menu-item "Quit" quit-window
139 :help ,(purecopy "Remove the buffer menu from the display"))) 139 :help "Remove the buffer menu from the display"))
140 (define-key menu-map [rev] 140 (bindings--define-key menu-map [rev]
141 `(menu-item ,(purecopy "Refresh") revert-buffer 141 '(menu-item "Refresh" revert-buffer
142 :help ,(purecopy "Refresh the *Buffer List* buffer contents"))) 142 :help "Refresh the *Buffer List* buffer contents"))
143 (define-key menu-map [s0] menu-bar-separator) 143 (bindings--define-key menu-map [s0] menu-bar-separator)
144 (define-key menu-map [tf] 144 (bindings--define-key menu-map [tf]
145 `(menu-item ,(purecopy "Show Only File Buffers") Buffer-menu-toggle-files-only 145 '(menu-item "Show Only File Buffers" Buffer-menu-toggle-files-only
146 :button (:toggle . Buffer-menu-files-only) 146 :button (:toggle . Buffer-menu-files-only)
147 :help ,(purecopy "Toggle whether the current buffer-menu displays only file buffers"))) 147 :help "Toggle whether the current buffer-menu displays only file buffers"))
148 (define-key menu-map [s1] menu-bar-separator) 148 (bindings--define-key menu-map [s1] menu-bar-separator)
149 ;; FIXME: The "Select" entries could use better names... 149 ;; FIXME: The "Select" entries could use better names...
150 (define-key menu-map [sel] 150 (bindings--define-key menu-map [sel]
151 `(menu-item ,(purecopy "Select Marked") Buffer-menu-select 151 '(menu-item "Select Marked" Buffer-menu-select
152 :help ,(purecopy "Select this line's buffer; also display buffers marked with `>'"))) 152 :help "Select this line's buffer; also display buffers marked with `>'"))
153 (define-key menu-map [bm2] 153 (bindings--define-key menu-map [bm2]
154 `(menu-item ,(purecopy "Select Two") Buffer-menu-2-window 154 '(menu-item "Select Two" Buffer-menu-2-window
155 :help ,(purecopy "Select this line's buffer, with previous buffer in second window"))) 155 :help "Select this line's buffer, with previous buffer in second window"))
156 (define-key menu-map [bm1] 156 (bindings--define-key menu-map [bm1]
157 `(menu-item ,(purecopy "Select Current") Buffer-menu-1-window 157 '(menu-item "Select Current" Buffer-menu-1-window
158 :help ,(purecopy "Select this line's buffer, alone, in full frame"))) 158 :help "Select this line's buffer, alone, in full frame"))
159 (define-key menu-map [ow] 159 (bindings--define-key menu-map [ow]
160 `(menu-item ,(purecopy "Select in Other Window") Buffer-menu-other-window 160 '(menu-item "Select in Other Window" Buffer-menu-other-window
161 :help ,(purecopy "Select this line's buffer in other window, leaving buffer menu visible"))) 161 :help "Select this line's buffer in other window, leaving buffer menu visible"))
162 (define-key menu-map [tw] 162 (bindings--define-key menu-map [tw]
163 `(menu-item ,(purecopy "Select in Current Window") Buffer-menu-this-window 163 '(menu-item "Select in Current Window" Buffer-menu-this-window
164 :help ,(purecopy "Select this line's buffer in this window"))) 164 :help "Select this line's buffer in this window"))
165 (define-key menu-map [s2] menu-bar-separator) 165 (bindings--define-key menu-map [s2] menu-bar-separator)
166 (define-key menu-map [is] 166 (bindings--define-key menu-map [is]
167 `(menu-item ,(purecopy "Regexp Isearch Marked Buffers...") Buffer-menu-isearch-buffers-regexp 167 '(menu-item "Regexp Isearch Marked Buffers..." Buffer-menu-isearch-buffers-regexp
168 :help ,(purecopy "Search for a regexp through all marked buffers using Isearch"))) 168 :help "Search for a regexp through all marked buffers using Isearch"))
169 (define-key menu-map [ir] 169 (bindings--define-key menu-map [ir]
170 `(menu-item ,(purecopy "Isearch Marked Buffers...") Buffer-menu-isearch-buffers 170 '(menu-item "Isearch Marked Buffers..." Buffer-menu-isearch-buffers
171 :help ,(purecopy "Search for a string through all marked buffers using Isearch"))) 171 :help "Search for a string through all marked buffers using Isearch"))
172 (define-key menu-map [s3] menu-bar-separator) 172 (bindings--define-key menu-map [s3] menu-bar-separator)
173 (define-key menu-map [by] 173 (bindings--define-key menu-map [by]
174 `(menu-item ,(purecopy "Bury") Buffer-menu-bury 174 '(menu-item "Bury" Buffer-menu-bury
175 :help ,(purecopy "Bury the buffer listed on this line"))) 175 :help "Bury the buffer listed on this line"))
176 (define-key menu-map [vt] 176 (bindings--define-key menu-map [vt]
177 `(menu-item ,(purecopy "Set Unmodified") Buffer-menu-not-modified 177 '(menu-item "Set Unmodified" Buffer-menu-not-modified
178 :help ,(purecopy "Mark buffer on this line as unmodified (no changes to save)"))) 178 :help "Mark buffer on this line as unmodified (no changes to save)"))
179 (define-key menu-map [ex] 179 (bindings--define-key menu-map [ex]
180 `(menu-item ,(purecopy "Execute") Buffer-menu-execute 180 '(menu-item "Execute" Buffer-menu-execute
181 :help ,(purecopy "Save and/or delete buffers marked with s or k commands"))) 181 :help "Save and/or delete buffers marked with s or k commands"))
182 (define-key menu-map [s4] menu-bar-separator) 182 (bindings--define-key menu-map [s4] menu-bar-separator)
183 (define-key menu-map [delb] 183 (bindings--define-key menu-map [delb]
184 `(menu-item ,(purecopy "Mark for Delete and Move Backwards") Buffer-menu-delete-backwards 184 '(menu-item "Mark for Delete and Move Backwards" Buffer-menu-delete-backwards
185 :help ,(purecopy "Mark buffer on this line to be deleted by x command and move up one line"))) 185 :help "Mark buffer on this line to be deleted by x command and move up one line"))
186 (define-key menu-map [del] 186 (bindings--define-key menu-map [del]
187 `(menu-item ,(purecopy "Mark for Delete") Buffer-menu-delete 187 '(menu-item "Mark for Delete" Buffer-menu-delete
188 :help ,(purecopy "Mark buffer on this line to be deleted by x command"))) 188 :help "Mark buffer on this line to be deleted by x command"))
189 189
190 (define-key menu-map [sv] 190 (bindings--define-key menu-map [sv]
191 `(menu-item ,(purecopy "Mark for Save") Buffer-menu-save 191 '(menu-item "Mark for Save" Buffer-menu-save
192 :help ,(purecopy "Mark buffer on this line to be saved by x command"))) 192 :help "Mark buffer on this line to be saved by x command"))
193 (define-key menu-map [umk] 193 (bindings--define-key menu-map [umk]
194 `(menu-item ,(purecopy "Unmark") Buffer-menu-unmark 194 '(menu-item "Unmark" Buffer-menu-unmark
195 :help ,(purecopy "Cancel all requested operations on buffer on this line and move down"))) 195 :help "Cancel all requested operations on buffer on this line and move down"))
196 (define-key menu-map [mk] 196 (bindings--define-key menu-map [mk]
197 `(menu-item ,(purecopy "Mark") Buffer-menu-mark 197 '(menu-item "Mark" Buffer-menu-mark
198 :help ,(purecopy "Mark buffer on this line for being displayed by v command"))) 198 :help "Mark buffer on this line for being displayed by v command"))
199 map) 199 map)
200 "Local keymap for `Buffer-menu-mode' buffers.") 200 "Local keymap for `Buffer-menu-mode' buffers.")
201 201
diff --git a/lisp/emacs-lisp/lisp-mode.el b/lisp/emacs-lisp/lisp-mode.el
index 2a4cd704a43..350b0bd949d 100644
--- a/lisp/emacs-lisp/lisp-mode.el
+++ b/lisp/emacs-lisp/lisp-mode.el
@@ -264,110 +264,111 @@ font-lock keywords will not be case sensitive."
264 (define-key map "\e\t" 'completion-at-point) 264 (define-key map "\e\t" 'completion-at-point)
265 (define-key map "\e\C-x" 'eval-defun) 265 (define-key map "\e\C-x" 'eval-defun)
266 (define-key map "\e\C-q" 'indent-pp-sexp) 266 (define-key map "\e\C-q" 'indent-pp-sexp)
267 (define-key map [menu-bar emacs-lisp] (cons (purecopy "Emacs-Lisp") menu-map)) 267 (bindings--define-key map [menu-bar emacs-lisp]
268 (define-key menu-map [eldoc] 268 (cons "Emacs-Lisp" menu-map))
269 `(menu-item ,(purecopy "Auto-Display Documentation Strings") eldoc-mode 269 (bindings--define-key menu-map [eldoc]
270 '(menu-item "Auto-Display Documentation Strings" eldoc-mode
270 :button (:toggle . (bound-and-true-p eldoc-mode)) 271 :button (:toggle . (bound-and-true-p eldoc-mode))
271 :help ,(purecopy "Display the documentation string for the item under cursor"))) 272 :help "Display the documentation string for the item under cursor"))
272 (define-key menu-map [checkdoc] 273 (bindings--define-key menu-map [checkdoc]
273 `(menu-item ,(purecopy "Check Documentation Strings") checkdoc 274 '(menu-item "Check Documentation Strings" checkdoc
274 :help ,(purecopy "Check documentation strings for style requirements"))) 275 :help "Check documentation strings for style requirements"))
275 (define-key menu-map [re-builder] 276 (bindings--define-key menu-map [re-builder]
276 `(menu-item ,(purecopy "Construct Regexp") re-builder 277 '(menu-item "Construct Regexp" re-builder
277 :help ,(purecopy "Construct a regexp interactively"))) 278 :help "Construct a regexp interactively"))
278 (define-key menu-map [tracing] (cons (purecopy "Tracing") tracing-map)) 279 (bindings--define-key menu-map [tracing] (cons "Tracing" tracing-map))
279 (define-key tracing-map [tr-a] 280 (bindings--define-key tracing-map [tr-a]
280 `(menu-item ,(purecopy "Untrace All") untrace-all 281 '(menu-item "Untrace All" untrace-all
281 :help ,(purecopy "Untrace all currently traced functions"))) 282 :help "Untrace all currently traced functions"))
282 (define-key tracing-map [tr-uf] 283 (bindings--define-key tracing-map [tr-uf]
283 `(menu-item ,(purecopy "Untrace Function...") untrace-function 284 '(menu-item "Untrace Function..." untrace-function
284 :help ,(purecopy "Untrace function, and possibly activate all remaining advice"))) 285 :help "Untrace function, and possibly activate all remaining advice"))
285 (define-key tracing-map [tr-sep] menu-bar-separator) 286 (bindings--define-key tracing-map [tr-sep] menu-bar-separator)
286 (define-key tracing-map [tr-q] 287 (bindings--define-key tracing-map [tr-q]
287 `(menu-item ,(purecopy "Trace Function Quietly...") trace-function-background 288 '(menu-item "Trace Function Quietly..." trace-function-background
288 :help ,(purecopy "Trace the function with trace output going quietly to a buffer"))) 289 :help "Trace the function with trace output going quietly to a buffer"))
289 (define-key tracing-map [tr-f] 290 (bindings--define-key tracing-map [tr-f]
290 `(menu-item ,(purecopy "Trace Function...") trace-function 291 '(menu-item "Trace Function..." trace-function
291 :help ,(purecopy "Trace the function given as an argument"))) 292 :help "Trace the function given as an argument"))
292 (define-key menu-map [profiling] (cons (purecopy "Profiling") prof-map)) 293 (bindings--define-key menu-map [profiling] (cons "Profiling" prof-map))
293 (define-key prof-map [prof-restall] 294 (bindings--define-key prof-map [prof-restall]
294 `(menu-item ,(purecopy "Remove Instrumentation for All Functions") elp-restore-all 295 '(menu-item "Remove Instrumentation for All Functions" elp-restore-all
295 :help ,(purecopy "Restore the original definitions of all functions being profiled"))) 296 :help "Restore the original definitions of all functions being profiled"))
296 (define-key prof-map [prof-restfunc] 297 (bindings--define-key prof-map [prof-restfunc]
297 `(menu-item ,(purecopy "Remove Instrumentation for Function...") elp-restore-function 298 '(menu-item "Remove Instrumentation for Function..." elp-restore-function
298 :help ,(purecopy "Restore an instrumented function to its original definition"))) 299 :help "Restore an instrumented function to its original definition"))
299 300
300 (define-key prof-map [sep-rem] menu-bar-separator) 301 (bindings--define-key prof-map [sep-rem] menu-bar-separator)
301 (define-key prof-map [prof-resall] 302 (bindings--define-key prof-map [prof-resall]
302 `(menu-item ,(purecopy "Reset Counters for All Functions") elp-reset-all 303 '(menu-item "Reset Counters for All Functions" elp-reset-all
303 :help ,(purecopy "Reset the profiling information for all functions being profiled"))) 304 :help "Reset the profiling information for all functions being profiled"))
304 (define-key prof-map [prof-resfunc] 305 (bindings--define-key prof-map [prof-resfunc]
305 `(menu-item ,(purecopy "Reset Counters for Function...") elp-reset-function 306 '(menu-item "Reset Counters for Function..." elp-reset-function
306 :help ,(purecopy "Reset the profiling information for a function"))) 307 :help "Reset the profiling information for a function"))
307 (define-key prof-map [prof-res] 308 (bindings--define-key prof-map [prof-res]
308 `(menu-item ,(purecopy "Show Profiling Results") elp-results 309 '(menu-item "Show Profiling Results" elp-results
309 :help ,(purecopy "Display current profiling results"))) 310 :help "Display current profiling results"))
310 (define-key prof-map [prof-pack] 311 (bindings--define-key prof-map [prof-pack]
311 `(menu-item ,(purecopy "Instrument Package...") elp-instrument-package 312 '(menu-item "Instrument Package..." elp-instrument-package
312 :help ,(purecopy "Instrument for profiling all function that start with a prefix"))) 313 :help "Instrument for profiling all function that start with a prefix"))
313 (define-key prof-map [prof-func] 314 (bindings--define-key prof-map [prof-func]
314 `(menu-item ,(purecopy "Instrument Function...") elp-instrument-function 315 '(menu-item "Instrument Function..." elp-instrument-function
315 :help ,(purecopy "Instrument a function for profiling"))) 316 :help "Instrument a function for profiling"))
316 (define-key menu-map [lint] (cons (purecopy "Linting") lint-map)) 317 (bindings--define-key menu-map [lint] (cons "Linting" lint-map))
317 (define-key lint-map [lint-di] 318 (bindings--define-key lint-map [lint-di]
318 `(menu-item ,(purecopy "Lint Directory...") elint-directory 319 '(menu-item "Lint Directory..." elint-directory
319 :help ,(purecopy "Lint a directory"))) 320 :help "Lint a directory"))
320 (define-key lint-map [lint-f] 321 (bindings--define-key lint-map [lint-f]
321 `(menu-item ,(purecopy "Lint File...") elint-file 322 '(menu-item "Lint File..." elint-file
322 :help ,(purecopy "Lint a file"))) 323 :help "Lint a file"))
323 (define-key lint-map [lint-b] 324 (bindings--define-key lint-map [lint-b]
324 `(menu-item ,(purecopy "Lint Buffer") elint-current-buffer 325 '(menu-item "Lint Buffer" elint-current-buffer
325 :help ,(purecopy "Lint the current buffer"))) 326 :help "Lint the current buffer"))
326 (define-key lint-map [lint-d] 327 (bindings--define-key lint-map [lint-d]
327 `(menu-item ,(purecopy "Lint Defun") elint-defun 328 '(menu-item "Lint Defun" elint-defun
328 :help ,(purecopy "Lint the function at point"))) 329 :help "Lint the function at point"))
329 (define-key menu-map [edebug-defun] 330 (bindings--define-key menu-map [edebug-defun]
330 `(menu-item ,(purecopy "Instrument Function for Debugging") edebug-defun 331 '(menu-item "Instrument Function for Debugging" edebug-defun
331 :help ,(purecopy "Evaluate the top level form point is in, stepping through with Edebug") 332 :help "Evaluate the top level form point is in, stepping through with Edebug"
332 :keys ,(purecopy "C-u C-M-x"))) 333 :keys "C-u C-M-x"))
333 (define-key menu-map [separator-byte] menu-bar-separator) 334 (bindings--define-key menu-map [separator-byte] menu-bar-separator)
334 (define-key menu-map [disas] 335 (bindings--define-key menu-map [disas]
335 `(menu-item ,(purecopy "Disassemble Byte Compiled Object...") disassemble 336 '(menu-item "Disassemble Byte Compiled Object..." disassemble
336 :help ,(purecopy "Print disassembled code for OBJECT in a buffer"))) 337 :help "Print disassembled code for OBJECT in a buffer"))
337 (define-key menu-map [byte-recompile] 338 (bindings--define-key menu-map [byte-recompile]
338 `(menu-item ,(purecopy "Byte-recompile Directory...") byte-recompile-directory 339 '(menu-item "Byte-recompile Directory..." byte-recompile-directory
339 :help ,(purecopy "Recompile every `.el' file in DIRECTORY that needs recompilation"))) 340 :help "Recompile every `.el' file in DIRECTORY that needs recompilation"))
340 (define-key menu-map [emacs-byte-compile-and-load] 341 (bindings--define-key menu-map [emacs-byte-compile-and-load]
341 `(menu-item ,(purecopy "Byte-compile and Load") emacs-lisp-byte-compile-and-load 342 '(menu-item "Byte-compile and Load" emacs-lisp-byte-compile-and-load
342 :help ,(purecopy "Byte-compile the current file (if it has changed), then load compiled code"))) 343 :help "Byte-compile the current file (if it has changed), then load compiled code"))
343 (define-key menu-map [byte-compile] 344 (bindings--define-key menu-map [byte-compile]
344 `(menu-item ,(purecopy "Byte-compile This File") emacs-lisp-byte-compile 345 '(menu-item "Byte-compile This File" emacs-lisp-byte-compile
345 :help ,(purecopy "Byte compile the file containing the current buffer"))) 346 :help "Byte compile the file containing the current buffer"))
346 (define-key menu-map [separator-eval] menu-bar-separator) 347 (bindings--define-key menu-map [separator-eval] menu-bar-separator)
347 (define-key menu-map [ielm] 348 (bindings--define-key menu-map [ielm]
348 `(menu-item ,(purecopy "Interactive Expression Evaluation") ielm 349 '(menu-item "Interactive Expression Evaluation" ielm
349 :help ,(purecopy "Interactively evaluate Emacs Lisp expressions"))) 350 :help "Interactively evaluate Emacs Lisp expressions"))
350 (define-key menu-map [eval-buffer] 351 (bindings--define-key menu-map [eval-buffer]
351 `(menu-item ,(purecopy "Evaluate Buffer") eval-buffer 352 '(menu-item "Evaluate Buffer" eval-buffer
352 :help ,(purecopy "Execute the current buffer as Lisp code"))) 353 :help "Execute the current buffer as Lisp code"))
353 (define-key menu-map [eval-region] 354 (bindings--define-key menu-map [eval-region]
354 `(menu-item ,(purecopy "Evaluate Region") eval-region 355 '(menu-item "Evaluate Region" eval-region
355 :help ,(purecopy "Execute the region as Lisp code") 356 :help "Execute the region as Lisp code"
356 :enable mark-active)) 357 :enable mark-active))
357 (define-key menu-map [eval-sexp] 358 (bindings--define-key menu-map [eval-sexp]
358 `(menu-item ,(purecopy "Evaluate Last S-expression") eval-last-sexp 359 '(menu-item "Evaluate Last S-expression" eval-last-sexp
359 :help ,(purecopy "Evaluate sexp before point; print value in minibuffer"))) 360 :help "Evaluate sexp before point; print value in minibuffer"))
360 (define-key menu-map [separator-format] menu-bar-separator) 361 (bindings--define-key menu-map [separator-format] menu-bar-separator)
361 (define-key menu-map [comment-region] 362 (bindings--define-key menu-map [comment-region]
362 `(menu-item ,(purecopy "Comment Out Region") comment-region 363 '(menu-item "Comment Out Region" comment-region
363 :help ,(purecopy "Comment or uncomment each line in the region") 364 :help "Comment or uncomment each line in the region"
364 :enable mark-active)) 365 :enable mark-active))
365 (define-key menu-map [indent-region] 366 (bindings--define-key menu-map [indent-region]
366 `(menu-item ,(purecopy "Indent Region") indent-region 367 '(menu-item "Indent Region" indent-region
367 :help ,(purecopy "Indent each nonblank line in the region") 368 :help "Indent each nonblank line in the region"
368 :enable mark-active)) 369 :enable mark-active))
369 (define-key menu-map [indent-line] 370 (bindings--define-key menu-map [indent-line]
370 `(menu-item ,(purecopy "Indent Line") lisp-indent-line)) 371 '(menu-item "Indent Line" lisp-indent-line))
371 map) 372 map)
372 "Keymap for Emacs Lisp mode. 373 "Keymap for Emacs Lisp mode.
373All commands in `lisp-mode-shared-map' are inherited by this map.") 374All commands in `lisp-mode-shared-map' are inherited by this map.")
@@ -430,16 +431,16 @@ if that value is non-nil."
430 (set-keymap-parent map lisp-mode-shared-map) 431 (set-keymap-parent map lisp-mode-shared-map)
431 (define-key map "\e\C-x" 'lisp-eval-defun) 432 (define-key map "\e\C-x" 'lisp-eval-defun)
432 (define-key map "\C-c\C-z" 'run-lisp) 433 (define-key map "\C-c\C-z" 'run-lisp)
433 (define-key map [menu-bar lisp] (cons (purecopy "Lisp") menu-map)) 434 (bindings--define-key map [menu-bar lisp] (cons "Lisp" menu-map))
434 (define-key menu-map [run-lisp] 435 (bindings--define-key menu-map [run-lisp]
435 `(menu-item ,(purecopy "Run inferior Lisp") run-lisp 436 '(menu-item "Run inferior Lisp" run-lisp
436 :help ,(purecopy "Run an inferior Lisp process, input and output via buffer `*inferior-lisp*'"))) 437 :help "Run an inferior Lisp process, input and output via buffer `*inferior-lisp*'"))
437 (define-key menu-map [ev-def] 438 (bindings--define-key menu-map [ev-def]
438 `(menu-item ,(purecopy "Eval defun") lisp-eval-defun 439 '(menu-item "Eval defun" lisp-eval-defun
439 :help ,(purecopy "Send the current defun to the Lisp process made by M-x run-lisp"))) 440 :help "Send the current defun to the Lisp process made by M-x run-lisp"))
440 (define-key menu-map [ind-sexp] 441 (bindings--define-key menu-map [ind-sexp]
441 `(menu-item ,(purecopy "Indent sexp") indent-sexp 442 '(menu-item "Indent sexp" indent-sexp
442 :help ,(purecopy "Indent each line of the list starting just after point"))) 443 :help "Indent each line of the list starting just after point"))
443 map) 444 map)
444 "Keymap for ordinary Lisp mode. 445 "Keymap for ordinary Lisp mode.
445All commands in `lisp-mode-shared-map' are inherited by this map.") 446All commands in `lisp-mode-shared-map' are inherited by this map.")
@@ -487,23 +488,24 @@ if that value is non-nil."
487 (define-key map "\e\C-q" 'indent-pp-sexp) 488 (define-key map "\e\C-q" 'indent-pp-sexp)
488 (define-key map "\e\t" 'completion-at-point) 489 (define-key map "\e\t" 'completion-at-point)
489 (define-key map "\n" 'eval-print-last-sexp) 490 (define-key map "\n" 'eval-print-last-sexp)
490 (define-key map [menu-bar lisp-interaction] (cons (purecopy "Lisp-Interaction") menu-map)) 491 (bindings--define-key map [menu-bar lisp-interaction]
491 (define-key menu-map [eval-defun] 492 (cons "Lisp-Interaction" menu-map))
492 `(menu-item ,(purecopy "Evaluate Defun") eval-defun 493 (bindings--define-key menu-map [eval-defun]
493 :help ,(purecopy "Evaluate the top-level form containing point, or after point"))) 494 '(menu-item "Evaluate Defun" eval-defun
494 (define-key menu-map [eval-print-last-sexp] 495 :help "Evaluate the top-level form containing point, or after point"))
495 `(menu-item ,(purecopy "Evaluate and Print") eval-print-last-sexp 496 (bindings--define-key menu-map [eval-print-last-sexp]
496 :help ,(purecopy "Evaluate sexp before point; print value into current buffer"))) 497 '(menu-item "Evaluate and Print" eval-print-last-sexp
497 (define-key menu-map [edebug-defun-lisp-interaction] 498 :help "Evaluate sexp before point; print value into current buffer"))
498 `(menu-item ,(purecopy "Instrument Function for Debugging") edebug-defun 499 (bindings--define-key menu-map [edebug-defun-lisp-interaction]
499 :help ,(purecopy "Evaluate the top level form point is in, stepping through with Edebug") 500 '(menu-item "Instrument Function for Debugging" edebug-defun
500 :keys ,(purecopy "C-u C-M-x"))) 501 :help "Evaluate the top level form point is in, stepping through with Edebug"
501 (define-key menu-map [indent-pp-sexp] 502 :keys "C-u C-M-x"))
502 `(menu-item ,(purecopy "Indent or Pretty-Print") indent-pp-sexp 503 (bindings--define-key menu-map [indent-pp-sexp]
503 :help ,(purecopy "Indent each line of the list starting just after point, or prettyprint it"))) 504 '(menu-item "Indent or Pretty-Print" indent-pp-sexp
504 (define-key menu-map [complete-symbol] 505 :help "Indent each line of the list starting just after point, or prettyprint it"))
505 `(menu-item ,(purecopy "Complete Lisp Symbol") completion-at-point 506 (bindings--define-key menu-map [complete-symbol]
506 :help ,(purecopy "Perform completion on Lisp symbol preceding point"))) 507 '(menu-item "Complete Lisp Symbol" completion-at-point
508 :help "Perform completion on Lisp symbol preceding point"))
507 map) 509 map)
508 "Keymap for Lisp Interaction mode. 510 "Keymap for Lisp Interaction mode.
509All commands in `lisp-mode-shared-map' are inherited by this map.") 511All commands in `lisp-mode-shared-map' are inherited by this map.")
diff --git a/lisp/international/mule-cmds.el b/lisp/international/mule-cmds.el
index 0f3d8c2d2bf..137a43b3d11 100644
--- a/lisp/international/mule-cmds.el
+++ b/lisp/international/mule-cmds.el
@@ -58,98 +58,98 @@
58 58
59(defvar describe-language-environment-map 59(defvar describe-language-environment-map
60 (let ((map (make-sparse-keymap "Describe Language Environment"))) 60 (let ((map (make-sparse-keymap "Describe Language Environment")))
61 (define-key map 61 (bindings--define-key map
62 [Default] `(menu-item ,(purecopy "Default") describe-specified-language-support)) 62 [Default] '(menu-item "Default" describe-specified-language-support))
63 map)) 63 map))
64 64
65(defvar setup-language-environment-map 65(defvar setup-language-environment-map
66 (let ((map (make-sparse-keymap "Set Language Environment"))) 66 (let ((map (make-sparse-keymap "Set Language Environment")))
67 (define-key map 67 (bindings--define-key map
68 [Default] `(menu-item ,(purecopy "Default") setup-specified-language-environment)) 68 [Default] '(menu-item "Default" setup-specified-language-environment))
69 map)) 69 map))
70 70
71(defvar set-coding-system-map 71(defvar set-coding-system-map
72 (let ((map (make-sparse-keymap "Set Coding System"))) 72 (let ((map (make-sparse-keymap "Set Coding System")))
73 (define-key-after map [universal-coding-system-argument] 73 (bindings--define-key map [set-buffer-process-coding-system]
74 `(menu-item ,(purecopy "For Next Command") universal-coding-system-argument 74 '(menu-item "For I/O with Subprocess" set-buffer-process-coding-system
75 :help ,(purecopy "Coding system to be used by next command")))
76 (define-key-after map [separator-1] menu-bar-separator)
77 (define-key-after map [set-buffer-file-coding-system]
78 `(menu-item ,(purecopy "For Saving This Buffer") set-buffer-file-coding-system
79 :help ,(purecopy "How to encode this buffer when saved")))
80 (define-key-after map [revert-buffer-with-coding-system]
81 `(menu-item ,(purecopy "For Reverting This File Now")
82 revert-buffer-with-coding-system
83 :enable buffer-file-name
84 :help ,(purecopy "Revisit this file immediately using specified coding system")))
85 (define-key-after map [set-file-name-coding-system]
86 `(menu-item ,(purecopy "For File Name") set-file-name-coding-system
87 :help ,(purecopy "How to decode/encode file names")))
88 (define-key-after map [separator-2] menu-bar-separator)
89
90 (define-key-after map [set-keyboard-coding-system]
91 `(menu-item ,(purecopy "For Keyboard") set-keyboard-coding-system
92 :help ,(purecopy "How to decode keyboard input")))
93 (define-key-after map [set-terminal-coding-system]
94 `(menu-item ,(purecopy "For Terminal") set-terminal-coding-system
95 :enable (null (memq initial-window-system '(x w32 ns)))
96 :help ,(purecopy "How to encode terminal output")))
97 (define-key-after map [separator-3] menu-bar-separator)
98
99 (define-key-after map [set-selection-coding-system]
100 `(menu-item ,(purecopy "For X Selections/Clipboard") set-selection-coding-system
101 :visible (display-selections-p)
102 :help ,(purecopy "How to en/decode data to/from selection/clipboard")))
103 (define-key-after map [set-next-selection-coding-system]
104 `(menu-item ,(purecopy "For Next X Selection") set-next-selection-coding-system
105 :visible (display-selections-p)
106 :help ,(purecopy "How to en/decode next selection/clipboard operation")))
107 (define-key-after map [set-buffer-process-coding-system]
108 `(menu-item ,(purecopy "For I/O with Subprocess") set-buffer-process-coding-system
109 :visible (fboundp 'start-process) 75 :visible (fboundp 'start-process)
110 :enable (get-buffer-process (current-buffer)) 76 :enable (get-buffer-process (current-buffer))
111 :help ,(purecopy "How to en/decode I/O from/to subprocess connected to this buffer"))) 77 :help "How to en/decode I/O from/to subprocess connected to this buffer"))
78 (bindings--define-key map [set-next-selection-coding-system]
79 '(menu-item "For Next X Selection" set-next-selection-coding-system
80 :visible (display-selections-p)
81 :help "How to en/decode next selection/clipboard operation"))
82 (bindings--define-key map [set-selection-coding-system]
83 '(menu-item "For X Selections/Clipboard" set-selection-coding-system
84 :visible (display-selections-p)
85 :help "How to en/decode data to/from selection/clipboard"))
86
87 (bindings--define-key map [separator-3] menu-bar-separator)
88 (bindings--define-key map [set-terminal-coding-system]
89 '(menu-item "For Terminal" set-terminal-coding-system
90 :enable (null (memq initial-window-system '(x w32 ns)))
91 :help "How to encode terminal output"))
92 (bindings--define-key map [set-keyboard-coding-system]
93 '(menu-item "For Keyboard" set-keyboard-coding-system
94 :help "How to decode keyboard input"))
95
96 (bindings--define-key map [separator-2] menu-bar-separator)
97 (bindings--define-key map [set-file-name-coding-system]
98 '(menu-item "For File Name" set-file-name-coding-system
99 :help "How to decode/encode file names"))
100 (bindings--define-key map [revert-buffer-with-coding-system]
101 '(menu-item "For Reverting This File Now"
102 revert-buffer-with-coding-system
103 :enable buffer-file-name
104 :help "Revisit this file immediately using specified coding system"))
105 (bindings--define-key map [set-buffer-file-coding-system]
106 '(menu-item "For Saving This Buffer" set-buffer-file-coding-system
107 :help "How to encode this buffer when saved"))
108 (bindings--define-key map [separator-1] menu-bar-separator)
109 (bindings--define-key map [universal-coding-system-argument]
110 '(menu-item "For Next Command" universal-coding-system-argument
111 :help "Coding system to be used by next command"))
112 map)) 112 map))
113 113
114(defvar mule-menu-keymap 114(defvar mule-menu-keymap
115 (let ((map (make-sparse-keymap "Mule (Multilingual Environment)"))) 115 (let ((map (make-sparse-keymap "Mule (Multilingual Environment)")))
116 (define-key-after map [set-language-environment] 116 (bindings--define-key map [mule-diag]
117 `(menu-item ,(purecopy "Set Language Environment") ,setup-language-environment-map)) 117 '(menu-item "Show All Multilingual Settings" mule-diag
118 (define-key-after map [separator-mule] menu-bar-separator) 118 :help "Display multilingual environment settings"))
119 119 (bindings--define-key map [list-character-sets]
120 (define-key-after map [toggle-input-method] 120 '(menu-item "List Character Sets" list-character-sets
121 `(menu-item ,(purecopy "Toggle Input Method") toggle-input-method)) 121 :help "Show table of available character sets"))
122 (define-key-after map [set-input-method] 122 (bindings--define-key map [describe-coding-system]
123 `(menu-item ,(purecopy "Select Input Method...") set-input-method)) 123 '(menu-item "Describe Coding System..." describe-coding-system))
124 (define-key-after map [describe-input-method] 124 (bindings--define-key map [describe-input-method]
125 `(menu-item ,(purecopy "Describe Input Method") describe-input-method)) 125 '(menu-item "Describe Input Method..." describe-input-method
126 (define-key-after map [separator-input-method] menu-bar-separator) 126 :help "Keyboard layout for a specific input method"))
127 127 (bindings--define-key map [describe-language-environment]
128 (define-key-after map [set-various-coding-system] 128 `(menu-item "Describe Language Environment"
129 `(menu-item ,(purecopy "Set Coding Systems") ,set-coding-system-map 129 ,describe-language-environment-map
130 :enable (default-value 'enable-multibyte-characters))) 130 :help "Show multilingual settings for a specific language"))
131 (define-key-after map [view-hello-file] 131
132 `(menu-item ,(purecopy "Show Multilingual Sample Text") view-hello-file 132 (bindings--define-key map [separator-coding-system] menu-bar-separator)
133 (bindings--define-key map [view-hello-file]
134 '(menu-item "Show Multilingual Sample Text" view-hello-file
133 :enable (file-readable-p 135 :enable (file-readable-p
134 (expand-file-name "HELLO" data-directory)) 136 (expand-file-name "HELLO" data-directory))
135 :help ,(purecopy "Demonstrate various character sets"))) 137 :help "Demonstrate various character sets"))
136 (define-key-after map [separator-coding-system] menu-bar-separator) 138 (bindings--define-key map [set-various-coding-system]
139 `(menu-item "Set Coding Systems" ,set-coding-system-map
140 :enable (default-value 'enable-multibyte-characters)))
137 141
138 (define-key-after map [describe-language-environment] 142 (bindings--define-key map [separator-input-method] menu-bar-separator)
139 `(menu-item ,(purecopy "Describe Language Environment") 143 (bindings--define-key map [describe-input-method]
140 ,describe-language-environment-map 144 '(menu-item "Describe Input Method" describe-input-method))
141 :help ,(purecopy "Show multilingual settings for a specific language"))) 145 (bindings--define-key map [set-input-method]
142 (define-key-after map [describe-input-method] 146 '(menu-item "Select Input Method..." set-input-method))
143 `(menu-item ,(purecopy "Describe Input Method...") describe-input-method 147 (bindings--define-key map [toggle-input-method]
144 :help ,(purecopy "Keyboard layout for a specific input method"))) 148 '(menu-item "Toggle Input Method" toggle-input-method))
145 (define-key-after map [describe-coding-system] 149
146 `(menu-item ,(purecopy "Describe Coding System...") describe-coding-system)) 150 (bindings--define-key map [separator-mule] menu-bar-separator)
147 (define-key-after map [list-character-sets] 151 (bindings--define-key map [set-language-environment]
148 `(menu-item ,(purecopy "List Character Sets") list-character-sets 152 `(menu-item "Set Language Environment" ,setup-language-environment-map))
149 :help ,(purecopy "Show table of available character sets")))
150 (define-key-after map [mule-diag]
151 `(menu-item ,(purecopy "Show All Multilingual Settings") mule-diag
152 :help ,(purecopy "Display multilingual environment settings")))
153 map) 153 map)
154 "Keymap for Mule (Multilingual environment) menu specific commands.") 154 "Keymap for Mule (Multilingual environment) menu specific commands.")
155 155
diff --git a/lisp/loadup.el b/lisp/loadup.el
index d5841d16780..35681718976 100644
--- a/lisp/loadup.el
+++ b/lisp/loadup.el
@@ -61,7 +61,7 @@
61 61
62(if (eq t purify-flag) 62(if (eq t purify-flag)
63 ;; Hash consing saved around 11% of pure space in my tests. 63 ;; Hash consing saved around 11% of pure space in my tests.
64 (setq purify-flag (make-hash-table :test 'equal))) 64 (setq purify-flag (make-hash-table :test 'equal :size 70000)))
65 65
66(message "Using load-path %s" load-path) 66(message "Using load-path %s" load-path)
67 67
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el
index 64b0a18e901..619510e8833 100644
--- a/lisp/menu-bar.el
+++ b/lisp/menu-bar.el
@@ -49,14 +49,14 @@
49 (setq menu-bar-final-items '(buffer services help-menu)) 49 (setq menu-bar-final-items '(buffer services help-menu))
50 (setq menu-bar-final-items '(buffer services hide-app quit)) 50 (setq menu-bar-final-items '(buffer services hide-app quit))
51 ;; Add standard top-level items to GNUstep menu. 51 ;; Add standard top-level items to GNUstep menu.
52 (define-key global-map [menu-bar quit] 52 (bindings--define-key global-map [menu-bar quit]
53 `(menu-item ,(purecopy "Quit") save-buffers-kill-emacs 53 '(menu-item "Quit" save-buffers-kill-emacs
54 :help ,(purecopy "Save unsaved buffers, then exit"))) 54 :help "Save unsaved buffers, then exit"))
55 (define-key global-map [menu-bar hide-app] 55 (bindings--define-key global-map [menu-bar hide-app]
56 `(menu-item ,(purecopy "Hide") ns-do-hide-emacs 56 '(menu-item "Hide" ns-do-hide-emacs
57 :help ,(purecopy "Hide Emacs")))) 57 :help "Hide Emacs")))
58 (define-key global-map [menu-bar services] ; set-up in ns-win 58 (bindings--define-key global-map [menu-bar services] ; Set-up in ns-win.
59 (cons (purecopy "Services") (make-sparse-keymap "Services")))) 59 (cons "Services" (make-sparse-keymap "Services"))))
60 60
61;; This definition is just to show what this looks like. 61;; This definition is just to show what this looks like.
62;; It gets modified in place when menu-bar-update-buffers is called. 62;; It gets modified in place when menu-bar-update-buffers is called.
@@ -69,85 +69,84 @@
69 (let ((menu (make-sparse-keymap "File"))) 69 (let ((menu (make-sparse-keymap "File")))
70 70
71 ;; The "File" menu items 71 ;; The "File" menu items
72 (define-key menu [exit-emacs] 72 (bindings--define-key menu [exit-emacs]
73 `(menu-item ,(purecopy "Quit") save-buffers-kill-terminal 73 '(menu-item "Quit" save-buffers-kill-terminal
74 :help ,(purecopy "Save unsaved buffers, then exit"))) 74 :help "Save unsaved buffers, then exit"))
75 75
76 (define-key menu [separator-exit] 76 (bindings--define-key menu [separator-exit]
77 menu-bar-separator) 77 menu-bar-separator)
78 78
79 ;; Don't use delete-frame as event name because that is a special 79 ;; Don't use delete-frame as event name because that is a special
80 ;; event. 80 ;; event.
81 (define-key menu [delete-this-frame] 81 (bindings--define-key menu [delete-this-frame]
82 `(menu-item ,(purecopy "Delete Frame") delete-frame 82 '(menu-item "Delete Frame" delete-frame
83 :visible (fboundp 'delete-frame) 83 :visible (fboundp 'delete-frame)
84 :enable (delete-frame-enabled-p) 84 :enable (delete-frame-enabled-p)
85 :help ,(purecopy "Delete currently selected frame"))) 85 :help "Delete currently selected frame"))
86 (define-key menu [make-frame-on-display] 86 (bindings--define-key menu [make-frame-on-display]
87 `(menu-item ,(purecopy "New Frame on Display...") make-frame-on-display 87 '(menu-item "New Frame on Display..." make-frame-on-display
88 :visible (fboundp 'make-frame-on-display) 88 :visible (fboundp 'make-frame-on-display)
89 :help ,(purecopy "Open a new frame on another display"))) 89 :help "Open a new frame on another display"))
90 (define-key menu [make-frame] 90 (bindings--define-key menu [make-frame]
91 `(menu-item ,(purecopy "New Frame") make-frame-command 91 '(menu-item "New Frame" make-frame-command
92 :visible (fboundp 'make-frame-command) 92 :visible (fboundp 'make-frame-command)
93 :help ,(purecopy "Open a new frame"))) 93 :help "Open a new frame"))
94 94
95 (define-key menu [separator-frame] 95 (bindings--define-key menu [separator-frame]
96 menu-bar-separator) 96 menu-bar-separator)
97 97
98 (define-key menu [one-window] 98 (bindings--define-key menu [one-window]
99 `(menu-item ,(purecopy "Remove Other Windows") delete-other-windows 99 '(menu-item "Remove Other Windows" delete-other-windows
100 :enable (not (one-window-p t nil)) 100 :enable (not (one-window-p t nil))
101 :help ,(purecopy "Make selected window fill whole frame"))) 101 :help "Make selected window fill whole frame"))
102 102
103 (define-key menu [new-window-on-right] 103 (bindings--define-key menu [new-window-on-right]
104 `(menu-item ,(purecopy "New Window on Right") split-window-right 104 '(menu-item "New Window on Right" split-window-right
105 :enable (and (menu-bar-menu-frame-live-and-visible-p) 105 :enable (and (menu-bar-menu-frame-live-and-visible-p)
106 (menu-bar-non-minibuffer-window-p)) 106 (menu-bar-non-minibuffer-window-p))
107 :help ,(purecopy "Make new window on right of selected one"))) 107 :help "Make new window on right of selected one"))
108 108
109 (define-key menu [new-window-below] 109 (bindings--define-key menu [new-window-below]
110 `(menu-item ,(purecopy "New Window Below") split-window-below 110 '(menu-item "New Window Below" split-window-below
111 :enable (and (menu-bar-menu-frame-live-and-visible-p) 111 :enable (and (menu-bar-menu-frame-live-and-visible-p)
112 (menu-bar-non-minibuffer-window-p)) 112 (menu-bar-non-minibuffer-window-p))
113 :help ,(purecopy "Make new window below selected one"))) 113 :help "Make new window below selected one"))
114 114
115 (define-key menu [separator-window] 115 (bindings--define-key menu [separator-window]
116 menu-bar-separator) 116 menu-bar-separator)
117 117
118 (define-key menu [ps-print-region] 118 (bindings--define-key menu [ps-print-region]
119 `(menu-item ,(purecopy "PostScript Print Region (B+W)") ps-print-region 119 '(menu-item "PostScript Print Region (B+W)" ps-print-region
120 :enable mark-active 120 :enable mark-active
121 :help ,(purecopy "Pretty-print marked region in black and white to PostScript printer"))) 121 :help "Pretty-print marked region in black and white to PostScript printer"))
122 (define-key menu [ps-print-buffer] 122 (bindings--define-key menu [ps-print-buffer]
123 `(menu-item ,(purecopy "PostScript Print Buffer (B+W)") ps-print-buffer 123 '(menu-item "PostScript Print Buffer (B+W)" ps-print-buffer
124 :enable (menu-bar-menu-frame-live-and-visible-p) 124 :enable (menu-bar-menu-frame-live-and-visible-p)
125 :help ,(purecopy "Pretty-print current buffer in black and white to PostScript printer"))) 125 :help "Pretty-print current buffer in black and white to PostScript printer"))
126 (define-key menu [ps-print-region-faces] 126 (bindings--define-key menu [ps-print-region-faces]
127 `(menu-item ,(purecopy "PostScript Print Region") 127 '(menu-item "PostScript Print Region"
128 ps-print-region-with-faces 128 ps-print-region-with-faces
129 :enable mark-active 129 :enable mark-active
130 :help ,(purecopy 130 :help "Pretty-print marked region to PostScript printer"))
131 "Pretty-print marked region to PostScript printer"))) 131 (bindings--define-key menu [ps-print-buffer-faces]
132 (define-key menu [ps-print-buffer-faces] 132 '(menu-item "PostScript Print Buffer"
133 `(menu-item ,(purecopy "PostScript Print Buffer")
134 ps-print-buffer-with-faces 133 ps-print-buffer-with-faces
135 :enable (menu-bar-menu-frame-live-and-visible-p) 134 :enable (menu-bar-menu-frame-live-and-visible-p)
136 :help ,(purecopy "Pretty-print current buffer to PostScript printer"))) 135 :help "Pretty-print current buffer to PostScript printer"))
137 (define-key menu [print-region] 136 (bindings--define-key menu [print-region]
138 `(menu-item ,(purecopy "Print Region") print-region 137 '(menu-item "Print Region" print-region
139 :enable mark-active 138 :enable mark-active
140 :help ,(purecopy "Print region between mark and current position"))) 139 :help "Print region between mark and current position"))
141 (define-key menu [print-buffer] 140 (bindings--define-key menu [print-buffer]
142 `(menu-item ,(purecopy "Print Buffer") print-buffer 141 '(menu-item "Print Buffer" print-buffer
143 :enable (menu-bar-menu-frame-live-and-visible-p) 142 :enable (menu-bar-menu-frame-live-and-visible-p)
144 :help ,(purecopy "Print current buffer with page headings"))) 143 :help "Print current buffer with page headings"))
145 144
146 (define-key menu [separator-print] 145 (bindings--define-key menu [separator-print]
147 menu-bar-separator) 146 menu-bar-separator)
148 147
149 (define-key menu [recover-session] 148 (bindings--define-key menu [recover-session]
150 `(menu-item ,(purecopy "Recover Crashed Session") recover-session 149 '(menu-item "Recover Crashed Session" recover-session
151 :enable 150 :enable
152 (and auto-save-list-file-prefix 151 (and auto-save-list-file-prefix
153 (file-directory-p 152 (file-directory-p
@@ -160,55 +159,52 @@
160 (file-name-nondirectory 159 (file-name-nondirectory
161 auto-save-list-file-prefix))) 160 auto-save-list-file-prefix)))
162 t)) 161 t))
163 :help ,(purecopy "Recover edits from a crashed session"))) 162 :help "Recover edits from a crashed session"))
164 (define-key menu [revert-buffer] 163 (bindings--define-key menu [revert-buffer]
165 `(menu-item ,(purecopy "Revert Buffer") revert-buffer 164 '(menu-item "Revert Buffer" revert-buffer
166 :enable (or revert-buffer-function 165 :enable (or revert-buffer-function
167 revert-buffer-insert-file-contents-function 166 revert-buffer-insert-file-contents-function
168 (and buffer-file-number 167 (and buffer-file-number
169 (or (buffer-modified-p) 168 (or (buffer-modified-p)
170 (not (verify-visited-file-modtime 169 (not (verify-visited-file-modtime
171 (current-buffer)))))) 170 (current-buffer))))))
172 :help ,(purecopy "Re-read current buffer from its file"))) 171 :help "Re-read current buffer from its file"))
173 (define-key menu [write-file] 172 (bindings--define-key menu [write-file]
174 `(menu-item ,(purecopy "Save As...") write-file 173 '(menu-item "Save As..." write-file
175 :enable (and (menu-bar-menu-frame-live-and-visible-p) 174 :enable (and (menu-bar-menu-frame-live-and-visible-p)
176 (menu-bar-non-minibuffer-window-p)) 175 (menu-bar-non-minibuffer-window-p))
177 :help ,(purecopy "Write current buffer to another file"))) 176 :help "Write current buffer to another file"))
178 (define-key menu [save-buffer] 177 (bindings--define-key menu [save-buffer]
179 `(menu-item ,(purecopy "Save") save-buffer 178 '(menu-item "Save" save-buffer
180 :enable (and (buffer-modified-p) 179 :enable (and (buffer-modified-p)
181 (buffer-file-name) 180 (buffer-file-name)
182 (menu-bar-non-minibuffer-window-p)) 181 (menu-bar-non-minibuffer-window-p))
183 :help ,(purecopy "Save current buffer to its file"))) 182 :help "Save current buffer to its file"))
184 183
185 (define-key menu [separator-save] 184 (bindings--define-key menu [separator-save]
186 menu-bar-separator) 185 menu-bar-separator)
187 186
188 187
189 (define-key menu [kill-buffer] 188 (bindings--define-key menu [kill-buffer]
190 `(menu-item ,(purecopy "Close") kill-this-buffer 189 '(menu-item "Close" kill-this-buffer
191 :enable (kill-this-buffer-enabled-p) 190 :enable (kill-this-buffer-enabled-p)
192 :help ,(purecopy "Discard (kill) current buffer"))) 191 :help "Discard (kill) current buffer"))
193 (define-key menu [insert-file] 192 (bindings--define-key menu [insert-file]
194 `(menu-item ,(purecopy "Insert File...") insert-file 193 '(menu-item "Insert File..." insert-file
195 :enable (menu-bar-non-minibuffer-window-p) 194 :enable (menu-bar-non-minibuffer-window-p)
196 :help ,(purecopy "Insert another file into current buffer"))) 195 :help "Insert another file into current buffer"))
197 (define-key menu [dired] 196 (bindings--define-key menu [dired]
198 `(menu-item ,(purecopy "Open Directory...") dired 197 '(menu-item "Open Directory..." dired
199 :enable (menu-bar-non-minibuffer-window-p) 198 :enable (menu-bar-non-minibuffer-window-p)
200 :help ,(purecopy 199 :help "Read a directory, to operate on its files"))
201 "Read a directory, to operate on its files"))) 200 (bindings--define-key menu [open-file]
202 (define-key menu [open-file] 201 '(menu-item "Open File..." menu-find-file-existing
203 `(menu-item ,(purecopy "Open File...") menu-find-file-existing
204 :enable (menu-bar-non-minibuffer-window-p) 202 :enable (menu-bar-non-minibuffer-window-p)
205 :help ,(purecopy 203 :help "Read an existing file into an Emacs buffer"))
206 "Read an existing file into an Emacs buffer"))) 204 (bindings--define-key menu [new-file]
207 (define-key menu [new-file] 205 '(menu-item "Visit New File..." find-file
208 `(menu-item ,(purecopy "Visit New File...") find-file
209 :enable (menu-bar-non-minibuffer-window-p) 206 :enable (menu-bar-non-minibuffer-window-p)
210 :help ,(purecopy 207 :help "Specify a new file's name, to edit the file"))
211 "Specify a new file's name, to edit the file")))
212 208
213 menu)) 209 menu))
214 210
@@ -291,148 +287,143 @@
291;; The Edit->Search->Incremental Search menu 287;; The Edit->Search->Incremental Search menu
292(defvar menu-bar-i-search-menu 288(defvar menu-bar-i-search-menu
293 (let ((menu (make-sparse-keymap "Incremental Search"))) 289 (let ((menu (make-sparse-keymap "Incremental Search")))
294 (define-key menu [isearch-backward-regexp] 290 (bindings--define-key menu [isearch-backward-regexp]
295 `(menu-item ,(purecopy "Backward Regexp...") isearch-backward-regexp 291 '(menu-item "Backward Regexp..." isearch-backward-regexp
296 :help ,(purecopy 292 :help "Search backwards for a regular expression as you type it"))
297 "Search backwards for a regular expression as you type it"))) 293 (bindings--define-key menu [isearch-forward-regexp]
298 (define-key menu [isearch-forward-regexp] 294 '(menu-item "Forward Regexp..." isearch-forward-regexp
299 `(menu-item ,(purecopy "Forward Regexp...") isearch-forward-regexp 295 :help "Search forward for a regular expression as you type it"))
300 :help ,(purecopy 296 (bindings--define-key menu [isearch-backward]
301 "Search forward for a regular expression as you type it"))) 297 '(menu-item "Backward String..." isearch-backward
302 (define-key menu [isearch-backward] 298 :help "Search backwards for a string as you type it"))
303 `(menu-item ,(purecopy "Backward String...") isearch-backward 299 (bindings--define-key menu [isearch-forward]
304 :help ,(purecopy "Search backwards for a string as you type it"))) 300 '(menu-item "Forward String..." isearch-forward
305 (define-key menu [isearch-forward] 301 :help "Search forward for a string as you type it"))
306 `(menu-item ,(purecopy "Forward String...") isearch-forward
307 :help ,(purecopy "Search forward for a string as you type it")))
308 menu)) 302 menu))
309 303
310(defvar menu-bar-search-menu 304(defvar menu-bar-search-menu
311 (let ((menu (make-sparse-keymap "Search"))) 305 (let ((menu (make-sparse-keymap "Search")))
312 306
313 (define-key menu [i-search] 307 (bindings--define-key menu [i-search]
314 `(menu-item ,(purecopy "Incremental Search") ,menu-bar-i-search-menu)) 308 `(menu-item "Incremental Search" ,menu-bar-i-search-menu))
315 (define-key menu [separator-tag-isearch] 309 (bindings--define-key menu [separator-tag-isearch]
316 menu-bar-separator) 310 menu-bar-separator)
317 311
318 (define-key menu [tags-continue] 312 (bindings--define-key menu [tags-continue]
319 `(menu-item ,(purecopy "Continue Tags Search") tags-loop-continue 313 '(menu-item "Continue Tags Search" tags-loop-continue
320 :help ,(purecopy "Continue last tags search operation"))) 314 :help "Continue last tags search operation"))
321 (define-key menu [tags-srch] 315 (bindings--define-key menu [tags-srch]
322 `(menu-item ,(purecopy "Search Tagged Files...") tags-search 316 '(menu-item "Search Tagged Files..." tags-search
323 :help ,(purecopy "Search for a regexp in all tagged files"))) 317 :help "Search for a regexp in all tagged files"))
324 (define-key menu [separator-tag-search] menu-bar-separator) 318 (bindings--define-key menu [separator-tag-search] menu-bar-separator)
325 319
326 (define-key menu [repeat-search-back] 320 (bindings--define-key menu [repeat-search-back]
327 `(menu-item ,(purecopy "Repeat Backwards") 321 '(menu-item "Repeat Backwards"
328 nonincremental-repeat-search-backward 322 nonincremental-repeat-search-backward
329 :enable (or (and (eq menu-bar-last-search-type 'string) 323 :enable (or (and (eq menu-bar-last-search-type 'string)
330 search-ring) 324 search-ring)
331 (and (eq menu-bar-last-search-type 'regexp) 325 (and (eq menu-bar-last-search-type 'regexp)
332 regexp-search-ring)) 326 regexp-search-ring))
333 :help ,(purecopy "Repeat last search backwards"))) 327 :help "Repeat last search backwards"))
334 (define-key menu [repeat-search-fwd] 328 (bindings--define-key menu [repeat-search-fwd]
335 `(menu-item ,(purecopy "Repeat Forward") 329 '(menu-item "Repeat Forward"
336 nonincremental-repeat-search-forward 330 nonincremental-repeat-search-forward
337 :enable (or (and (eq menu-bar-last-search-type 'string) 331 :enable (or (and (eq menu-bar-last-search-type 'string)
338 search-ring) 332 search-ring)
339 (and (eq menu-bar-last-search-type 'regexp) 333 (and (eq menu-bar-last-search-type 'regexp)
340 regexp-search-ring)) 334 regexp-search-ring))
341 :help ,(purecopy "Repeat last search forward"))) 335 :help "Repeat last search forward"))
342 (define-key menu [separator-repeat-search] 336 (bindings--define-key menu [separator-repeat-search]
343 menu-bar-separator) 337 menu-bar-separator)
344 338
345 (define-key menu [re-search-backward] 339 (bindings--define-key menu [re-search-backward]
346 `(menu-item ,(purecopy "Regexp Backwards...") 340 '(menu-item "Regexp Backwards..."
347 nonincremental-re-search-backward 341 nonincremental-re-search-backward
348 :help ,(purecopy 342 :help "Search backwards for a regular expression"))
349 "Search backwards for a regular expression"))) 343 (bindings--define-key menu [re-search-forward]
350 (define-key menu [re-search-forward] 344 '(menu-item "Regexp Forward..."
351 `(menu-item ,(purecopy "Regexp Forward...")
352 nonincremental-re-search-forward 345 nonincremental-re-search-forward
353 :help ,(purecopy "Search forward for a regular expression"))) 346 :help "Search forward for a regular expression"))
354 347
355 (define-key menu [search-backward] 348 (bindings--define-key menu [search-backward]
356 `(menu-item ,(purecopy "String Backwards...") 349 '(menu-item "String Backwards..."
357 nonincremental-search-backward 350 nonincremental-search-backward
358 :help ,(purecopy "Search backwards for a string"))) 351 :help "Search backwards for a string"))
359 (define-key menu [search-forward] 352 (bindings--define-key menu [search-forward]
360 `(menu-item ,(purecopy "String Forward...") nonincremental-search-forward 353 '(menu-item "String Forward..." nonincremental-search-forward
361 :help ,(purecopy "Search forward for a string"))) 354 :help "Search forward for a string"))
362 menu)) 355 menu))
363 356
364;; The Edit->Replace submenu 357;; The Edit->Replace submenu
365 358
366(defvar menu-bar-replace-menu 359(defvar menu-bar-replace-menu
367 (let ((menu (make-sparse-keymap "Replace"))) 360 (let ((menu (make-sparse-keymap "Replace")))
368 (define-key menu [tags-repl-continue] 361 (bindings--define-key menu [tags-repl-continue]
369 `(menu-item ,(purecopy "Continue Replace") tags-loop-continue 362 '(menu-item "Continue Replace" tags-loop-continue
370 :help ,(purecopy "Continue last tags replace operation"))) 363 :help "Continue last tags replace operation"))
371 (define-key menu [tags-repl] 364 (bindings--define-key menu [tags-repl]
372 `(menu-item ,(purecopy "Replace in Tagged Files...") tags-query-replace 365 '(menu-item "Replace in Tagged Files..." tags-query-replace
373 :help ,(purecopy 366 :help "Interactively replace a regexp in all tagged files"))
374 "Interactively replace a regexp in all tagged files"))) 367 (bindings--define-key menu [separator-replace-tags]
375 (define-key menu [separator-replace-tags]
376 menu-bar-separator) 368 menu-bar-separator)
377 369
378 (define-key menu [query-replace-regexp] 370 (bindings--define-key menu [query-replace-regexp]
379 `(menu-item ,(purecopy "Replace Regexp...") query-replace-regexp 371 '(menu-item "Replace Regexp..." query-replace-regexp
380 :enable (not buffer-read-only) 372 :enable (not buffer-read-only)
381 :help ,(purecopy "Replace regular expression interactively, ask about each occurrence"))) 373 :help "Replace regular expression interactively, ask about each occurrence"))
382 (define-key menu [query-replace] 374 (bindings--define-key menu [query-replace]
383 `(menu-item ,(purecopy "Replace String...") query-replace 375 '(menu-item "Replace String..." query-replace
384 :enable (not buffer-read-only) 376 :enable (not buffer-read-only)
385 :help ,(purecopy 377 :help "Replace string interactively, ask about each occurrence"))
386 "Replace string interactively, ask about each occurrence")))
387 menu)) 378 menu))
388 379
389;;; Assemble the top-level Edit menu items. 380;;; Assemble the top-level Edit menu items.
390(defvar menu-bar-goto-menu 381(defvar menu-bar-goto-menu
391 (let ((menu (make-sparse-keymap "Go To"))) 382 (let ((menu (make-sparse-keymap "Go To")))
392 383
393 (define-key menu [set-tags-name] 384 (bindings--define-key menu [set-tags-name]
394 `(menu-item ,(purecopy "Set Tags File Name...") visit-tags-table 385 '(menu-item "Set Tags File Name..." visit-tags-table
395 :help ,(purecopy "Tell Tags commands which tag table file to use"))) 386 :help "Tell Tags commands which tag table file to use"))
396 387
397 (define-key menu [separator-tag-file] 388 (bindings--define-key menu [separator-tag-file]
398 menu-bar-separator) 389 menu-bar-separator)
399 390
400 (define-key menu [apropos-tags] 391 (bindings--define-key menu [apropos-tags]
401 `(menu-item ,(purecopy "Tags Apropos...") tags-apropos 392 '(menu-item "Tags Apropos..." tags-apropos
402 :help ,(purecopy "Find function/variables whose names match regexp"))) 393 :help "Find function/variables whose names match regexp"))
403 (define-key menu [next-tag-otherw] 394 (bindings--define-key menu [next-tag-otherw]
404 `(menu-item ,(purecopy "Next Tag in Other Window") 395 '(menu-item "Next Tag in Other Window"
405 menu-bar-next-tag-other-window 396 menu-bar-next-tag-other-window
406 :enable (and (boundp 'tags-location-ring) 397 :enable (and (boundp 'tags-location-ring)
407 (not (ring-empty-p tags-location-ring))) 398 (not (ring-empty-p tags-location-ring)))
408 :help ,(purecopy "Find next function/variable matching last tag name in another window"))) 399 :help "Find next function/variable matching last tag name in another window"))
409 400
410 (define-key menu [next-tag] 401 (bindings--define-key menu [next-tag]
411 `(menu-item ,(purecopy "Find Next Tag") 402 '(menu-item "Find Next Tag"
412 menu-bar-next-tag 403 menu-bar-next-tag
413 :enable (and (boundp 'tags-location-ring) 404 :enable (and (boundp 'tags-location-ring)
414 (not (ring-empty-p tags-location-ring))) 405 (not (ring-empty-p tags-location-ring)))
415 :help ,(purecopy "Find next function/variable matching last tag name"))) 406 :help "Find next function/variable matching last tag name"))
416 (define-key menu [find-tag-otherw] 407 (bindings--define-key menu [find-tag-otherw]
417 `(menu-item ,(purecopy "Find Tag in Other Window...") find-tag-other-window 408 '(menu-item "Find Tag in Other Window..." find-tag-other-window
418 :help ,(purecopy "Find function/variable definition in another window"))) 409 :help "Find function/variable definition in another window"))
419 (define-key menu [find-tag] 410 (bindings--define-key menu [find-tag]
420 `(menu-item ,(purecopy "Find Tag...") find-tag 411 '(menu-item "Find Tag..." find-tag
421 :help ,(purecopy "Find definition of function or variable"))) 412 :help "Find definition of function or variable"))
422 413
423 (define-key menu [separator-tags] 414 (bindings--define-key menu [separator-tags]
424 menu-bar-separator) 415 menu-bar-separator)
425 416
426 (define-key menu [end-of-buf] 417 (bindings--define-key menu [end-of-buf]
427 `(menu-item ,(purecopy "Goto End of Buffer") end-of-buffer)) 418 '(menu-item "Goto End of Buffer" end-of-buffer))
428 (define-key menu [beg-of-buf] 419 (bindings--define-key menu [beg-of-buf]
429 `(menu-item ,(purecopy "Goto Beginning of Buffer") beginning-of-buffer)) 420 '(menu-item "Goto Beginning of Buffer" beginning-of-buffer))
430 (define-key menu [go-to-pos] 421 (bindings--define-key menu [go-to-pos]
431 `(menu-item ,(purecopy "Goto Buffer Position...") goto-char 422 '(menu-item "Goto Buffer Position..." goto-char
432 :help ,(purecopy "Read a number N and go to buffer position N"))) 423 :help "Read a number N and go to buffer position N"))
433 (define-key menu [go-to-line] 424 (bindings--define-key menu [go-to-line]
434 `(menu-item ,(purecopy "Goto Line...") goto-line 425 '(menu-item "Goto Line..." goto-line
435 :help ,(purecopy "Read a line number and go to that line"))) 426 :help "Read a line number and go to that line"))
436 menu)) 427 menu))
437 428
438 429
@@ -442,59 +433,59 @@
442(defvar menu-bar-edit-menu 433(defvar menu-bar-edit-menu
443 (let ((menu (make-sparse-keymap "Edit"))) 434 (let ((menu (make-sparse-keymap "Edit")))
444 435
445 (define-key menu [props] 436 (bindings--define-key menu [props]
446 `(menu-item ,(purecopy "Text Properties") facemenu-menu)) 437 `(menu-item "Text Properties" facemenu-menu))
447 438
448 ;; ns-win.el said: Add spell for platform consistency. 439 ;; ns-win.el said: Add spell for platform consistency.
449 (if (featurep 'ns) 440 (if (featurep 'ns)
450 (define-key menu [spell] 441 (bindings--define-key menu [spell]
451 `(menu-item ,(purecopy "Spell") ispell-menu-map))) 442 `(menu-item "Spell" ispell-menu-map)))
452 443
453 (define-key menu [fill] 444 (bindings--define-key menu [fill]
454 `(menu-item ,(purecopy "Fill") fill-region 445 `(menu-item "Fill" fill-region
455 :enable (and mark-active (not buffer-read-only)) 446 :enable (and mark-active (not buffer-read-only))
456 :help 447 :help
457 ,(purecopy "Fill text in region to fit between left and right margin"))) 448 "Fill text in region to fit between left and right margin"))
458 449
459 (define-key menu [separator-bookmark] 450 (bindings--define-key menu [separator-bookmark]
460 menu-bar-separator) 451 menu-bar-separator)
461 452
462 (define-key menu [bookmark] 453 (bindings--define-key menu [bookmark]
463 `(menu-item ,(purecopy "Bookmarks") menu-bar-bookmark-map)) 454 `(menu-item "Bookmarks" menu-bar-bookmark-map))
464 455
465 (define-key menu [goto] 456 (bindings--define-key menu [goto]
466 `(menu-item ,(purecopy "Go To") ,menu-bar-goto-menu)) 457 `(menu-item "Go To" ,menu-bar-goto-menu))
467 458
468 (define-key menu [replace] 459 (bindings--define-key menu [replace]
469 `(menu-item ,(purecopy "Replace") ,menu-bar-replace-menu)) 460 `(menu-item "Replace" ,menu-bar-replace-menu))
470 461
471 (define-key menu [search] 462 (bindings--define-key menu [search]
472 `(menu-item ,(purecopy "Search") ,menu-bar-search-menu)) 463 `(menu-item "Search" ,menu-bar-search-menu))
473 464
474 (define-key menu [separator-search] 465 (bindings--define-key menu [separator-search]
475 menu-bar-separator) 466 menu-bar-separator)
476 467
477 (define-key menu [mark-whole-buffer] 468 (bindings--define-key menu [mark-whole-buffer]
478 `(menu-item ,(purecopy "Select All") mark-whole-buffer 469 '(menu-item "Select All" mark-whole-buffer
479 :help ,(purecopy "Mark the whole buffer for a subsequent cut/copy"))) 470 :help "Mark the whole buffer for a subsequent cut/copy"))
480 (define-key menu [clear] 471 (bindings--define-key menu [clear]
481 `(menu-item ,(purecopy "Clear") delete-region 472 '(menu-item "Clear" delete-region
482 :enable (and mark-active 473 :enable (and mark-active
483 (not buffer-read-only)) 474 (not buffer-read-only))
484 :help 475 :help
485 ,(purecopy "Delete the text in region between mark and current position"))) 476 "Delete the text in region between mark and current position"))
486 477
487 478
488 (define-key menu (if (featurep 'ns) [select-paste] 479 (bindings--define-key menu (if (featurep 'ns) [select-paste]
489 [paste-from-menu]) 480 [paste-from-menu])
490 ;; ns-win.el said: Change text to be more consistent with 481 ;; ns-win.el said: Change text to be more consistent with
491 ;; surrounding menu items `paste', etc." 482 ;; surrounding menu items `paste', etc."
492 `(menu-item ,(purecopy (if (featurep 'ns) "Select and Paste" 483 `(menu-item ,(if (featurep 'ns) "Select and Paste"
493 "Paste from Kill Menu")) yank-menu 484 "Paste from Kill Menu") yank-menu
494 :enable (and (cdr yank-menu) (not buffer-read-only)) 485 :enable (and (cdr yank-menu) (not buffer-read-only))
495 :help ,(purecopy "Choose a string from the kill ring and paste it"))) 486 :help "Choose a string from the kill ring and paste it"))
496 (define-key menu [paste] 487 (bindings--define-key menu [paste]
497 `(menu-item ,(purecopy "Paste") yank 488 '(menu-item "Paste" yank
498 :enable (and (or 489 :enable (and (or
499 ;; Emacs compiled --without-x (or --with-ns) 490 ;; Emacs compiled --without-x (or --with-ns)
500 ;; doesn't have x-selection-exists-p. 491 ;; doesn't have x-selection-exists-p.
@@ -504,35 +495,35 @@
504 (cdr yank-menu) 495 (cdr yank-menu)
505 kill-ring)) 496 kill-ring))
506 (not buffer-read-only)) 497 (not buffer-read-only))
507 :help ,(purecopy "Paste (yank) text most recently cut/copied"))) 498 :help "Paste (yank) text most recently cut/copied"))
508 (define-key menu [copy] 499 (bindings--define-key menu [copy]
509 ;; ns-win.el said: Substitute a Copy function that works better 500 ;; ns-win.el said: Substitute a Copy function that works better
510 ;; under X (for GNUstep). 501 ;; under X (for GNUstep).
511 `(menu-item ,(purecopy "Copy") ,(if (featurep 'ns) 502 `(menu-item "Copy" ,(if (featurep 'ns)
512 'ns-copy-including-secondary 503 'ns-copy-including-secondary
513 'kill-ring-save) 504 'kill-ring-save)
514 :enable mark-active 505 :enable mark-active
515 :help ,(purecopy "Copy text in region between mark and current position") 506 :help "Copy text in region between mark and current position"
516 :keys ,(purecopy (if (featurep 'ns) 507 :keys ,(if (featurep 'ns)
517 "\\[ns-copy-including-secondary]" 508 "\\[ns-copy-including-secondary]"
518 "\\[kill-ring-save]")))) 509 "\\[kill-ring-save]")))
519 (define-key menu [cut] 510 (bindings--define-key menu [cut]
520 `(menu-item ,(purecopy "Cut") kill-region 511 '(menu-item "Cut" kill-region
521 :enable (and mark-active (not buffer-read-only)) 512 :enable (and mark-active (not buffer-read-only))
522 :help 513 :help
523 ,(purecopy "Cut (kill) text in region between mark and current position"))) 514 "Cut (kill) text in region between mark and current position"))
524 ;; ns-win.el said: Separate undo from cut/paste section. 515 ;; ns-win.el said: Separate undo from cut/paste section.
525 (if (featurep 'ns) 516 (if (featurep 'ns)
526 (define-key menu [separator-undo] menu-bar-separator)) 517 (bindings--define-key menu [separator-undo] menu-bar-separator))
527 518
528 (define-key menu [undo] 519 (bindings--define-key menu [undo]
529 `(menu-item ,(purecopy "Undo") undo 520 '(menu-item "Undo" undo
530 :enable (and (not buffer-read-only) 521 :enable (and (not buffer-read-only)
531 (not (eq t buffer-undo-list)) 522 (not (eq t buffer-undo-list))
532 (if (eq last-command 'undo) 523 (if (eq last-command 'undo)
533 (listp pending-undo-list) 524 (listp pending-undo-list)
534 (consp buffer-undo-list))) 525 (consp buffer-undo-list)))
535 :help ,(purecopy "Undo last operation"))) 526 :help "Undo last operation"))
536 527
537 menu)) 528 menu))
538 529
@@ -598,45 +589,45 @@ Do the same for the keys of the same name."
598(defvar menu-bar-custom-menu 589(defvar menu-bar-custom-menu
599 (let ((menu (make-sparse-keymap "Customize"))) 590 (let ((menu (make-sparse-keymap "Customize")))
600 591
601 (define-key menu [customize-apropos-faces] 592 (bindings--define-key menu [customize-apropos-faces]
602 `(menu-item ,(purecopy "Faces Matching...") customize-apropos-faces 593 '(menu-item "Faces Matching..." customize-apropos-faces
603 :help ,(purecopy "Browse faces matching a regexp or word list"))) 594 :help "Browse faces matching a regexp or word list"))
604 (define-key menu [customize-apropos-options] 595 (bindings--define-key menu [customize-apropos-options]
605 `(menu-item ,(purecopy "Options Matching...") customize-apropos-options 596 '(menu-item "Options Matching..." customize-apropos-options
606 :help ,(purecopy "Browse options matching a regexp or word list"))) 597 :help "Browse options matching a regexp or word list"))
607 (define-key menu [customize-apropos] 598 (bindings--define-key menu [customize-apropos]
608 `(menu-item ,(purecopy "All Settings Matching...") customize-apropos 599 '(menu-item "All Settings Matching..." customize-apropos
609 :help ,(purecopy "Browse customizable settings matching a regexp or word list"))) 600 :help "Browse customizable settings matching a regexp or word list"))
610 (define-key menu [separator-1] 601 (bindings--define-key menu [separator-1]
611 menu-bar-separator) 602 menu-bar-separator)
612 (define-key menu [customize-group] 603 (bindings--define-key menu [customize-group]
613 `(menu-item ,(purecopy "Specific Group...") customize-group 604 '(menu-item "Specific Group..." customize-group
614 :help ,(purecopy "Customize settings of specific group"))) 605 :help "Customize settings of specific group"))
615 (define-key menu [customize-face] 606 (bindings--define-key menu [customize-face]
616 `(menu-item ,(purecopy "Specific Face...") customize-face 607 '(menu-item "Specific Face..." customize-face
617 :help ,(purecopy "Customize attributes of specific face"))) 608 :help "Customize attributes of specific face"))
618 (define-key menu [customize-option] 609 (bindings--define-key menu [customize-option]
619 `(menu-item ,(purecopy "Specific Option...") customize-option 610 '(menu-item "Specific Option..." customize-option
620 :help ,(purecopy "Customize value of specific option"))) 611 :help "Customize value of specific option"))
621 (define-key menu [separator-2] 612 (bindings--define-key menu [separator-2]
622 menu-bar-separator) 613 menu-bar-separator)
623 (define-key menu [customize-changed-options] 614 (bindings--define-key menu [customize-changed-options]
624 `(menu-item ,(purecopy "New Options...") customize-changed-options 615 '(menu-item "New Options..." customize-changed-options
625 :help ,(purecopy "Options added or changed in recent Emacs versions"))) 616 :help "Options added or changed in recent Emacs versions"))
626 (define-key menu [customize-saved] 617 (bindings--define-key menu [customize-saved]
627 `(menu-item ,(purecopy "Saved Options") customize-saved 618 '(menu-item "Saved Options" customize-saved
628 :help ,(purecopy "Customize previously saved options"))) 619 :help "Customize previously saved options"))
629 (define-key menu [separator-3] 620 (bindings--define-key menu [separator-3]
630 menu-bar-separator) 621 menu-bar-separator)
631 (define-key menu [customize-browse] 622 (bindings--define-key menu [customize-browse]
632 `(menu-item ,(purecopy "Browse Customization Groups") customize-browse 623 '(menu-item "Browse Customization Groups" customize-browse
633 :help ,(purecopy "Browse all customization groups"))) 624 :help "Browse all customization groups"))
634 (define-key menu [customize] 625 (bindings--define-key menu [customize]
635 `(menu-item ,(purecopy "Top-level Customization Group") customize 626 '(menu-item "Top-level Customization Group" customize
636 :help ,(purecopy "The master group called `Emacs'"))) 627 :help "The master group called `Emacs'"))
637 (define-key menu [customize-themes] 628 (bindings--define-key menu [customize-themes]
638 `(menu-item ,(purecopy "Custom Themes") customize-themes 629 '(menu-item "Custom Themes" customize-themes
639 :help ,(purecopy "Choose a pre-defined customization theme"))) 630 :help "Choose a pre-defined customization theme"))
640 menu)) 631 menu))
641;(defvar menu-bar-preferences-menu (make-sparse-keymap "Preferences")) 632;(defvar menu-bar-preferences-menu (make-sparse-keymap "Preferences"))
642 633
@@ -646,9 +637,9 @@ FNAME is the minor mode's name (variable and function).
646DOC is the text to use for the menu entry. 637DOC is the text to use for the menu entry.
647HELP is the text to use for the tooltip. 638HELP is the text to use for the tooltip.
648PROPS are additional properties." 639PROPS are additional properties."
649 `(list 'menu-item (purecopy ,doc) ',fname 640 `(list 'menu-item ,doc ',fname
650 ,@(mapcar (lambda (p) (list 'quote p)) props) 641 ,@(mapcar (lambda (p) (list 'quote p)) props)
651 :help (purecopy ,help) 642 :help ,help
652 :button '(:toggle . (and (default-boundp ',fname) 643 :button '(:toggle . (and (default-boundp ',fname)
653 (default-value ',fname))))) 644 (default-value ',fname)))))
654 645
@@ -673,8 +664,8 @@ by \"Save Options\" in Custom buffers.")
673 ;; a candidate for "Save Options", and we do not want to save options 664 ;; a candidate for "Save Options", and we do not want to save options
674 ;; the user have already set explicitly in his init file. 665 ;; the user have already set explicitly in his init file.
675 (if interactively (customize-mark-as-set ',variable))) 666 (if interactively (customize-mark-as-set ',variable)))
676 (list 'menu-item (purecopy ,doc) ',name 667 (list 'menu-item ,doc ',name
677 :help (purecopy ,help) 668 :help ,help
678 :button '(:toggle . (and (default-boundp ',variable) 669 :button '(:toggle . (and (default-boundp ',variable)
679 (default-value ',variable)))))) 670 (default-value ',variable))))))
680 671
@@ -775,46 +766,46 @@ by \"Save Options\" in Custom buffers.")
775(defvar menu-bar-showhide-fringe-ind-menu 766(defvar menu-bar-showhide-fringe-ind-menu
776 (let ((menu (make-sparse-keymap "Buffer boundaries"))) 767 (let ((menu (make-sparse-keymap "Buffer boundaries")))
777 768
778 (define-key menu [customize] 769 (bindings--define-key menu [customize]
779 `(menu-item ,(purecopy "Other (Customize)") 770 '(menu-item "Other (Customize)"
780 menu-bar-showhide-fringe-ind-customize 771 menu-bar-showhide-fringe-ind-customize
781 :help ,(purecopy "Additional choices available through Custom buffer") 772 :help "Additional choices available through Custom buffer"
782 :visible (display-graphic-p) 773 :visible (display-graphic-p)
783 :button (:radio . (not (member indicate-buffer-boundaries 774 :button (:radio . (not (member indicate-buffer-boundaries
784 '(nil left right 775 '(nil left right
785 ((top . left) (bottom . right)) 776 ((top . left) (bottom . right))
786 ((t . right) (top . left)))))))) 777 ((t . right) (top . left))))))))
787 778
788 (define-key menu [mixed] 779 (bindings--define-key menu [mixed]
789 `(menu-item ,(purecopy "Opposite, Arrows Right") menu-bar-showhide-fringe-ind-mixed 780 '(menu-item "Opposite, Arrows Right" menu-bar-showhide-fringe-ind-mixed
790 :help 781 :help
791 ,(purecopy "Show top/bottom indicators in opposite fringes, arrows in right") 782 "Show top/bottom indicators in opposite fringes, arrows in right"
792 :visible (display-graphic-p) 783 :visible (display-graphic-p)
793 :button (:radio . (equal indicate-buffer-boundaries 784 :button (:radio . (equal indicate-buffer-boundaries
794 '((t . right) (top . left)))))) 785 '((t . right) (top . left))))))
795 786
796 (define-key menu [box] 787 (bindings--define-key menu [box]
797 `(menu-item ,(purecopy "Opposite, No Arrows") menu-bar-showhide-fringe-ind-box 788 '(menu-item "Opposite, No Arrows" menu-bar-showhide-fringe-ind-box
798 :help ,(purecopy "Show top/bottom indicators in opposite fringes, no arrows") 789 :help "Show top/bottom indicators in opposite fringes, no arrows"
799 :visible (display-graphic-p) 790 :visible (display-graphic-p)
800 :button (:radio . (equal indicate-buffer-boundaries 791 :button (:radio . (equal indicate-buffer-boundaries
801 '((top . left) (bottom . right)))))) 792 '((top . left) (bottom . right))))))
802 793
803 (define-key menu [right] 794 (bindings--define-key menu [right]
804 `(menu-item ,(purecopy "In Right Fringe") menu-bar-showhide-fringe-ind-right 795 '(menu-item "In Right Fringe" menu-bar-showhide-fringe-ind-right
805 :help ,(purecopy "Show buffer boundaries and arrows in right fringe") 796 :help "Show buffer boundaries and arrows in right fringe"
806 :visible (display-graphic-p) 797 :visible (display-graphic-p)
807 :button (:radio . (eq indicate-buffer-boundaries 'right)))) 798 :button (:radio . (eq indicate-buffer-boundaries 'right))))
808 799
809 (define-key menu [left] 800 (bindings--define-key menu [left]
810 `(menu-item ,(purecopy "In Left Fringe") menu-bar-showhide-fringe-ind-left 801 '(menu-item "In Left Fringe" menu-bar-showhide-fringe-ind-left
811 :help ,(purecopy "Show buffer boundaries and arrows in left fringe") 802 :help "Show buffer boundaries and arrows in left fringe"
812 :visible (display-graphic-p) 803 :visible (display-graphic-p)
813 :button (:radio . (eq indicate-buffer-boundaries 'left)))) 804 :button (:radio . (eq indicate-buffer-boundaries 'left))))
814 805
815 (define-key menu [none] 806 (bindings--define-key menu [none]
816 `(menu-item ,(purecopy "No Indicators") menu-bar-showhide-fringe-ind-none 807 '(menu-item "No Indicators" menu-bar-showhide-fringe-ind-none
817 :help ,(purecopy "Hide all buffer boundary indicators and arrows") 808 :help "Hide all buffer boundary indicators and arrows"
818 :visible (display-graphic-p) 809 :visible (display-graphic-p)
819 :button (:radio . (eq indicate-buffer-boundaries nil)))) 810 :button (:radio . (eq indicate-buffer-boundaries nil))))
820 menu)) 811 menu))
@@ -850,43 +841,43 @@ by \"Save Options\" in Custom buffers.")
850(defvar menu-bar-showhide-fringe-menu 841(defvar menu-bar-showhide-fringe-menu
851 (let ((menu (make-sparse-keymap "Fringe"))) 842 (let ((menu (make-sparse-keymap "Fringe")))
852 843
853 (define-key menu [showhide-fringe-ind] 844 (bindings--define-key menu [showhide-fringe-ind]
854 `(menu-item ,(purecopy "Buffer Boundaries") ,menu-bar-showhide-fringe-ind-menu 845 `(menu-item "Buffer Boundaries" ,menu-bar-showhide-fringe-ind-menu
855 :visible (display-graphic-p) 846 :visible (display-graphic-p)
856 :help ,(purecopy "Indicate buffer boundaries in fringe"))) 847 :help "Indicate buffer boundaries in fringe"))
857 848
858 (define-key menu [indicate-empty-lines] 849 (bindings--define-key menu [indicate-empty-lines]
859 (menu-bar-make-toggle toggle-indicate-empty-lines indicate-empty-lines 850 (menu-bar-make-toggle toggle-indicate-empty-lines indicate-empty-lines
860 "Empty Line Indicators" 851 "Empty Line Indicators"
861 "Indicating of empty lines %s" 852 "Indicating of empty lines %s"
862 "Indicate trailing empty lines in fringe, globally")) 853 "Indicate trailing empty lines in fringe, globally"))
863 854
864 (define-key menu [customize] 855 (bindings--define-key menu [customize]
865 `(menu-item ,(purecopy "Customize Fringe") menu-bar-showhide-fringe-menu-customize 856 '(menu-item "Customize Fringe" menu-bar-showhide-fringe-menu-customize
866 :help ,(purecopy "Detailed customization of fringe") 857 :help "Detailed customization of fringe"
867 :visible (display-graphic-p))) 858 :visible (display-graphic-p)))
868 859
869 (define-key menu [default] 860 (bindings--define-key menu [default]
870 `(menu-item ,(purecopy "Default") menu-bar-showhide-fringe-menu-customize-reset 861 '(menu-item "Default" menu-bar-showhide-fringe-menu-customize-reset
871 :help ,(purecopy "Default width fringe on both left and right side") 862 :help "Default width fringe on both left and right side"
872 :visible (display-graphic-p) 863 :visible (display-graphic-p)
873 :button (:radio . (eq fringe-mode nil)))) 864 :button (:radio . (eq fringe-mode nil))))
874 865
875 (define-key menu [right] 866 (bindings--define-key menu [right]
876 `(menu-item ,(purecopy "On the Right") menu-bar-showhide-fringe-menu-customize-right 867 '(menu-item "On the Right" menu-bar-showhide-fringe-menu-customize-right
877 :help ,(purecopy "Fringe only on the right side") 868 :help "Fringe only on the right side"
878 :visible (display-graphic-p) 869 :visible (display-graphic-p)
879 :button (:radio . (equal fringe-mode '(0 . nil))))) 870 :button (:radio . (equal fringe-mode '(0 . nil)))))
880 871
881 (define-key menu [left] 872 (bindings--define-key menu [left]
882 `(menu-item ,(purecopy "On the Left") menu-bar-showhide-fringe-menu-customize-left 873 '(menu-item "On the Left" menu-bar-showhide-fringe-menu-customize-left
883 :help ,(purecopy "Fringe only on the left side") 874 :help "Fringe only on the left side"
884 :visible (display-graphic-p) 875 :visible (display-graphic-p)
885 :button (:radio . (equal fringe-mode '(nil . 0))))) 876 :button (:radio . (equal fringe-mode '(nil . 0)))))
886 877
887 (define-key menu [none] 878 (bindings--define-key menu [none]
888 `(menu-item ,(purecopy "None") menu-bar-showhide-fringe-menu-customize-disable 879 '(menu-item "None" menu-bar-showhide-fringe-menu-customize-disable
889 :help ,(purecopy "Turn off fringe") 880 :help "Turn off fringe"
890 :visible (display-graphic-p) 881 :visible (display-graphic-p)
891 :button (:radio . (eq fringe-mode 0)))) 882 :button (:radio . (eq fringe-mode 0))))
892 menu)) 883 menu))
@@ -909,26 +900,26 @@ by \"Save Options\" in Custom buffers.")
909(defvar menu-bar-showhide-scroll-bar-menu 900(defvar menu-bar-showhide-scroll-bar-menu
910 (let ((menu (make-sparse-keymap "Scroll-bar"))) 901 (let ((menu (make-sparse-keymap "Scroll-bar")))
911 902
912 (define-key menu [right] 903 (bindings--define-key menu [right]
913 `(menu-item ,(purecopy "On the Right") 904 '(menu-item "On the Right"
914 menu-bar-right-scroll-bar 905 menu-bar-right-scroll-bar
915 :help ,(purecopy "Scroll-bar on the right side") 906 :help "Scroll-bar on the right side"
916 :visible (display-graphic-p) 907 :visible (display-graphic-p)
917 :button (:radio . (eq (cdr (assq 'vertical-scroll-bars 908 :button (:radio . (eq (cdr (assq 'vertical-scroll-bars
918 (frame-parameters))) 'right)))) 909 (frame-parameters))) 'right))))
919 910
920 (define-key menu [left] 911 (bindings--define-key menu [left]
921 `(menu-item ,(purecopy "On the Left") 912 '(menu-item "On the Left"
922 menu-bar-left-scroll-bar 913 menu-bar-left-scroll-bar
923 :help ,(purecopy "Scroll-bar on the left side") 914 :help "Scroll-bar on the left side"
924 :visible (display-graphic-p) 915 :visible (display-graphic-p)
925 :button (:radio . (eq (cdr (assq 'vertical-scroll-bars 916 :button (:radio . (eq (cdr (assq 'vertical-scroll-bars
926 (frame-parameters))) 'left)))) 917 (frame-parameters))) 'left))))
927 918
928 (define-key menu [none] 919 (bindings--define-key menu [none]
929 `(menu-item ,(purecopy "None") 920 '(menu-item "None"
930 menu-bar-no-scroll-bar 921 menu-bar-no-scroll-bar
931 :help ,(purecopy "Turn off scroll-bar") 922 :help "Turn off scroll-bar"
932 :visible (display-graphic-p) 923 :visible (display-graphic-p)
933 :button (:radio . (eq (cdr (assq 'vertical-scroll-bars 924 :button (:radio . (eq (cdr (assq 'vertical-scroll-bars
934 (frame-parameters))) nil)))) 925 (frame-parameters))) nil))))
@@ -973,10 +964,10 @@ by \"Save Options\" in Custom buffers.")
973 (defvar menu-bar-showhide-tool-bar-menu 964 (defvar menu-bar-showhide-tool-bar-menu
974 (let ((menu (make-sparse-keymap "Tool-bar"))) 965 (let ((menu (make-sparse-keymap "Tool-bar")))
975 966
976 (define-key menu [showhide-tool-bar-left] 967 (bindings--define-key menu [showhide-tool-bar-left]
977 `(menu-item ,(purecopy "On the Left") 968 '(menu-item "On the Left"
978 menu-bar-showhide-tool-bar-menu-customize-enable-left 969 menu-bar-showhide-tool-bar-menu-customize-enable-left
979 :help ,(purecopy "Tool-bar at the left side") 970 :help "Tool-bar at the left side"
980 :visible (display-graphic-p) 971 :visible (display-graphic-p)
981 :button 972 :button
982 (:radio . (and tool-bar-mode 973 (:radio . (and tool-bar-mode
@@ -985,10 +976,10 @@ by \"Save Options\" in Custom buffers.")
985 'tool-bar-position) 976 'tool-bar-position)
986 'left))))) 977 'left)))))
987 978
988 (define-key menu [showhide-tool-bar-right] 979 (bindings--define-key menu [showhide-tool-bar-right]
989 `(menu-item ,(purecopy "On the Right") 980 '(menu-item "On the Right"
990 menu-bar-showhide-tool-bar-menu-customize-enable-right 981 menu-bar-showhide-tool-bar-menu-customize-enable-right
991 :help ,(purecopy "Tool-bar at the right side") 982 :help "Tool-bar at the right side"
992 :visible (display-graphic-p) 983 :visible (display-graphic-p)
993 :button 984 :button
994 (:radio . (and tool-bar-mode 985 (:radio . (and tool-bar-mode
@@ -997,10 +988,10 @@ by \"Save Options\" in Custom buffers.")
997 'tool-bar-position) 988 'tool-bar-position)
998 'right))))) 989 'right)))))
999 990
1000 (define-key menu [showhide-tool-bar-bottom] 991 (bindings--define-key menu [showhide-tool-bar-bottom]
1001 `(menu-item ,(purecopy "On the Bottom") 992 '(menu-item "On the Bottom"
1002 menu-bar-showhide-tool-bar-menu-customize-enable-bottom 993 menu-bar-showhide-tool-bar-menu-customize-enable-bottom
1003 :help ,(purecopy "Tool-bar at the bottom") 994 :help "Tool-bar at the bottom"
1004 :visible (display-graphic-p) 995 :visible (display-graphic-p)
1005 :button 996 :button
1006 (:radio . (and tool-bar-mode 997 (:radio . (and tool-bar-mode
@@ -1009,10 +1000,10 @@ by \"Save Options\" in Custom buffers.")
1009 'tool-bar-position) 1000 'tool-bar-position)
1010 'bottom))))) 1001 'bottom)))))
1011 1002
1012 (define-key menu [showhide-tool-bar-top] 1003 (bindings--define-key menu [showhide-tool-bar-top]
1013 `(menu-item ,(purecopy "On the Top") 1004 '(menu-item "On the Top"
1014 menu-bar-showhide-tool-bar-menu-customize-enable-top 1005 menu-bar-showhide-tool-bar-menu-customize-enable-top
1015 :help ,(purecopy "Tool-bar at the top") 1006 :help "Tool-bar at the top"
1016 :visible (display-graphic-p) 1007 :visible (display-graphic-p)
1017 :button 1008 :button
1018 (:radio . (and tool-bar-mode 1009 (:radio . (and tool-bar-mode
@@ -1021,10 +1012,10 @@ by \"Save Options\" in Custom buffers.")
1021 'tool-bar-position) 1012 'tool-bar-position)
1022 'top))))) 1013 'top)))))
1023 1014
1024 (define-key menu [showhide-tool-bar-none] 1015 (bindings--define-key menu [showhide-tool-bar-none]
1025 `(menu-item ,(purecopy "None") 1016 '(menu-item "None"
1026 menu-bar-showhide-tool-bar-menu-customize-disable 1017 menu-bar-showhide-tool-bar-menu-customize-disable
1027 :help ,(purecopy "Turn tool-bar off") 1018 :help "Turn tool-bar off"
1028 :visible (display-graphic-p) 1019 :visible (display-graphic-p)
1029 :button (:radio . (eq tool-bar-mode nil)))) 1020 :button (:radio . (eq tool-bar-mode nil))))
1030 menu))) 1021 menu)))
@@ -1032,64 +1023,64 @@ by \"Save Options\" in Custom buffers.")
1032(defvar menu-bar-showhide-menu 1023(defvar menu-bar-showhide-menu
1033 (let ((menu (make-sparse-keymap "Show/Hide"))) 1024 (let ((menu (make-sparse-keymap "Show/Hide")))
1034 1025
1035 (define-key menu [column-number-mode] 1026 (bindings--define-key menu [column-number-mode]
1036 (menu-bar-make-mm-toggle column-number-mode 1027 (menu-bar-make-mm-toggle column-number-mode
1037 "Column Numbers" 1028 "Column Numbers"
1038 "Show the current column number in the mode line")) 1029 "Show the current column number in the mode line"))
1039 1030
1040 (define-key menu [line-number-mode] 1031 (bindings--define-key menu [line-number-mode]
1041 (menu-bar-make-mm-toggle line-number-mode 1032 (menu-bar-make-mm-toggle line-number-mode
1042 "Line Numbers" 1033 "Line Numbers"
1043 "Show the current line number in the mode line")) 1034 "Show the current line number in the mode line"))
1044 1035
1045 (define-key menu [size-indication-mode] 1036 (bindings--define-key menu [size-indication-mode]
1046 (menu-bar-make-mm-toggle size-indication-mode 1037 (menu-bar-make-mm-toggle size-indication-mode
1047 "Size Indication" 1038 "Size Indication"
1048 "Show the size of the buffer in the mode line")) 1039 "Show the size of the buffer in the mode line"))
1049 1040
1050 (define-key menu [linecolumn-separator] 1041 (bindings--define-key menu [linecolumn-separator]
1051 menu-bar-separator) 1042 menu-bar-separator)
1052 1043
1053 (define-key menu [showhide-battery] 1044 (bindings--define-key menu [showhide-battery]
1054 (menu-bar-make-mm-toggle display-battery-mode 1045 (menu-bar-make-mm-toggle display-battery-mode
1055 "Battery Status" 1046 "Battery Status"
1056 "Display battery status information in mode line")) 1047 "Display battery status information in mode line"))
1057 1048
1058 (define-key menu [showhide-date-time] 1049 (bindings--define-key menu [showhide-date-time]
1059 (menu-bar-make-mm-toggle display-time-mode 1050 (menu-bar-make-mm-toggle display-time-mode
1060 "Time, Load and Mail" 1051 "Time, Load and Mail"
1061 "Display time, system load averages and \ 1052 "Display time, system load averages and \
1062mail status in mode line")) 1053mail status in mode line"))
1063 1054
1064 (define-key menu [datetime-separator] 1055 (bindings--define-key menu [datetime-separator]
1065 menu-bar-separator) 1056 menu-bar-separator)
1066 1057
1067 (define-key menu [showhide-speedbar] 1058 (bindings--define-key menu [showhide-speedbar]
1068 `(menu-item ,(purecopy "Speedbar") speedbar-frame-mode 1059 '(menu-item "Speedbar" speedbar-frame-mode
1069 :help ,(purecopy "Display a Speedbar quick-navigation frame") 1060 :help "Display a Speedbar quick-navigation frame"
1070 :button (:toggle 1061 :button (:toggle
1071 . (and (boundp 'speedbar-frame) 1062 . (and (boundp 'speedbar-frame)
1072 (frame-live-p (symbol-value 'speedbar-frame)) 1063 (frame-live-p (symbol-value 'speedbar-frame))
1073 (frame-visible-p 1064 (frame-visible-p
1074 (symbol-value 'speedbar-frame)))))) 1065 (symbol-value 'speedbar-frame))))))
1075 1066
1076 (define-key menu [showhide-fringe] 1067 (bindings--define-key menu [showhide-fringe]
1077 `(menu-item ,(purecopy "Fringe") ,menu-bar-showhide-fringe-menu 1068 `(menu-item "Fringe" ,menu-bar-showhide-fringe-menu
1078 :visible (display-graphic-p))) 1069 :visible (display-graphic-p)))
1079 1070
1080 (define-key menu [showhide-scroll-bar] 1071 (bindings--define-key menu [showhide-scroll-bar]
1081 `(menu-item ,(purecopy "Scroll-bar") ,menu-bar-showhide-scroll-bar-menu 1072 `(menu-item "Scroll-bar" ,menu-bar-showhide-scroll-bar-menu
1082 :visible (display-graphic-p))) 1073 :visible (display-graphic-p)))
1083 1074
1084 (define-key menu [showhide-tooltip-mode] 1075 (bindings--define-key menu [showhide-tooltip-mode]
1085 `(menu-item ,(purecopy "Tooltips") tooltip-mode 1076 '(menu-item "Tooltips" tooltip-mode
1086 :help ,(purecopy "Turn tooltips on/off") 1077 :help "Turn tooltips on/off"
1087 :visible (and (display-graphic-p) (fboundp 'x-show-tip)) 1078 :visible (and (display-graphic-p) (fboundp 'x-show-tip))
1088 :button (:toggle . tooltip-mode))) 1079 :button (:toggle . tooltip-mode)))
1089 1080
1090 (define-key menu [menu-bar-mode] 1081 (bindings--define-key menu [menu-bar-mode]
1091 `(menu-item ,(purecopy "Menu-bar") toggle-menu-bar-mode-from-frame 1082 '(menu-item "Menu-bar" toggle-menu-bar-mode-from-frame
1092 :help ,(purecopy "Turn menu-bar on/off") 1083 :help "Turn menu-bar on/off"
1093 :button 1084 :button
1094 (:toggle . (menu-bar-positive-p 1085 (:toggle . (menu-bar-positive-p
1095 (frame-parameter (menu-bar-frame-for-menubar) 1086 (frame-parameter (menu-bar-frame-for-menubar)
@@ -1097,13 +1088,13 @@ mail status in mode line"))
1097 1088
1098 (if (and (boundp 'menu-bar-showhide-tool-bar-menu) 1089 (if (and (boundp 'menu-bar-showhide-tool-bar-menu)
1099 (keymapp menu-bar-showhide-tool-bar-menu)) 1090 (keymapp menu-bar-showhide-tool-bar-menu))
1100 (define-key menu [showhide-tool-bar] 1091 (bindings--define-key menu [showhide-tool-bar]
1101 `(menu-item ,(purecopy "Tool-bar") ,menu-bar-showhide-tool-bar-menu 1092 `(menu-item "Tool-bar" ,menu-bar-showhide-tool-bar-menu
1102 :visible (display-graphic-p))) 1093 :visible (display-graphic-p)))
1103 ;; else not tool bar that can move. 1094 ;; else not tool bar that can move.
1104 (define-key menu [showhide-tool-bar] 1095 (bindings--define-key menu [showhide-tool-bar]
1105 `(menu-item ,(purecopy "Tool-bar") toggle-tool-bar-mode-from-frame 1096 '(menu-item "Tool-bar" toggle-tool-bar-mode-from-frame
1106 :help ,(purecopy "Turn tool-bar on/off") 1097 :help "Turn tool-bar on/off"
1107 :visible (display-graphic-p) 1098 :visible (display-graphic-p)
1108 :button 1099 :button
1109 (:toggle . (menu-bar-positive-p 1100 (:toggle . (menu-bar-positive-p
@@ -1123,120 +1114,120 @@ mail status in mode line"))
1123(defvar menu-bar-line-wrapping-menu 1114(defvar menu-bar-line-wrapping-menu
1124 (let ((menu (make-sparse-keymap "Line Wrapping"))) 1115 (let ((menu (make-sparse-keymap "Line Wrapping")))
1125 1116
1126 (define-key menu [word-wrap] 1117 (bindings--define-key menu [word-wrap]
1127 `(menu-item 1118 `(menu-item "Word Wrap (Visual Line mode)"
1128 ,(purecopy "Word Wrap (Visual Line mode)") 1119 ,(lambda ()
1129 ,(purecopy 1120 (interactive)
1130 (lambda () 1121 (unless visual-line-mode
1131 (interactive) 1122 (visual-line-mode 1))
1132 (unless visual-line-mode 1123 (message "Visual-Line mode enabled"))
1133 (visual-line-mode 1)) 1124 :help "Wrap long lines at word boundaries"
1134 (message "Visual-Line mode enabled"))) 1125 :button (:radio
1135 :help ,(purecopy "Wrap long lines at word boundaries") 1126 . (and (null truncate-lines)
1136 :button (:radio . (and (null truncate-lines) 1127 (not (truncated-partial-width-window-p))
1137 (not (truncated-partial-width-window-p)) 1128 word-wrap))
1138 word-wrap)) 1129 :visible (menu-bar-menu-frame-live-and-visible-p)))
1139 :visible (menu-bar-menu-frame-live-and-visible-p))) 1130
1140 1131 (bindings--define-key menu [truncate]
1141 (define-key menu [truncate] 1132 `(menu-item "Truncate Long Lines"
1142 `(menu-item ,(purecopy "Truncate Long Lines") 1133 ,(lambda ()
1143 (lambda () 1134 (interactive)
1144 (interactive) 1135 (if visual-line-mode (visual-line-mode 0))
1145 (if visual-line-mode (visual-line-mode 0)) 1136 (setq word-wrap nil)
1146 (setq word-wrap nil) 1137 (toggle-truncate-lines 1))
1147 (toggle-truncate-lines 1)) 1138 :help "Truncate long lines at window edge"
1148 :help ,(purecopy "Truncate long lines at window edge")
1149 :button (:radio . (or truncate-lines 1139 :button (:radio . (or truncate-lines
1150 (truncated-partial-width-window-p))) 1140 (truncated-partial-width-window-p)))
1151 :visible (menu-bar-menu-frame-live-and-visible-p) 1141 :visible (menu-bar-menu-frame-live-and-visible-p)
1152 :enable (not (truncated-partial-width-window-p)))) 1142 :enable (not (truncated-partial-width-window-p))))
1153 1143
1154 (define-key menu [window-wrap] 1144 (bindings--define-key menu [window-wrap]
1155 `(menu-item ,(purecopy "Wrap at Window Edge") 1145 `(menu-item "Wrap at Window Edge"
1156 (lambda () (interactive) 1146 ,(lambda () (interactive)
1157 (if visual-line-mode (visual-line-mode 0)) 1147 (if visual-line-mode (visual-line-mode 0))
1158 (setq word-wrap nil) 1148 (setq word-wrap nil)
1159 (if truncate-lines (toggle-truncate-lines -1))) 1149 (if truncate-lines (toggle-truncate-lines -1)))
1160 :help ,(purecopy "Wrap long lines at window edge") 1150 :help "Wrap long lines at window edge"
1161 :button (:radio . (and (null truncate-lines) 1151 :button (:radio
1162 (not (truncated-partial-width-window-p)) 1152 . (and (null truncate-lines)
1163 (not word-wrap))) 1153 (not (truncated-partial-width-window-p))
1154 (not word-wrap)))
1164 :visible (menu-bar-menu-frame-live-and-visible-p) 1155 :visible (menu-bar-menu-frame-live-and-visible-p)
1165 :enable (not (truncated-partial-width-window-p)))) 1156 :enable (not (truncated-partial-width-window-p))))
1166 menu)) 1157 menu))
1167 1158
1168(defvar menu-bar-options-menu 1159(defvar menu-bar-options-menu
1169 (let ((menu (make-sparse-keymap "Options"))) 1160 (let ((menu (make-sparse-keymap "Options")))
1170 (define-key menu [customize] 1161 (bindings--define-key menu [customize]
1171 `(menu-item ,(purecopy "Customize Emacs") ,menu-bar-custom-menu)) 1162 `(menu-item "Customize Emacs" ,menu-bar-custom-menu))
1172 1163
1173 (define-key menu [package] 1164 (bindings--define-key menu [package]
1174 '(menu-item "Manage Emacs Packages" package-list-packages 1165 '(menu-item "Manage Emacs Packages" package-list-packages
1175 :help "Install or uninstall additional Emacs packages")) 1166 :help "Install or uninstall additional Emacs packages"))
1176 1167
1177 (define-key menu [save] 1168 (bindings--define-key menu [save]
1178 `(menu-item ,(purecopy "Save Options") menu-bar-options-save 1169 '(menu-item "Save Options" menu-bar-options-save
1179 :help ,(purecopy "Save options set from the menu above"))) 1170 :help "Save options set from the menu above"))
1180 1171
1181 (define-key menu [custom-separator] 1172 (bindings--define-key menu [custom-separator]
1182 menu-bar-separator) 1173 menu-bar-separator)
1183 1174
1184 (define-key menu [menu-set-font] 1175 (bindings--define-key menu [menu-set-font]
1185 `(menu-item ,(purecopy "Set Default Font...") menu-set-font 1176 '(menu-item "Set Default Font..." menu-set-font
1186 :visible (display-multi-font-p) 1177 :visible (display-multi-font-p)
1187 :help ,(purecopy "Select a default font"))) 1178 :help "Select a default font"))
1188 1179
1189 (if (featurep 'system-font-setting) 1180 (if (featurep 'system-font-setting)
1190 (define-key menu [menu-system-font] 1181 (bindings--define-key menu [menu-system-font]
1191 (menu-bar-make-toggle 1182 (menu-bar-make-toggle
1192 toggle-use-system-font font-use-system-font 1183 toggle-use-system-font font-use-system-font
1193 "Use System Font" 1184 "Use System Font"
1194 "Use system font: %s" 1185 "Use system font: %s"
1195 "Use the monospaced font defined by the system"))) 1186 "Use the monospaced font defined by the system")))
1196 1187
1197 (define-key menu [showhide] 1188 (bindings--define-key menu [showhide]
1198 `(menu-item ,(purecopy "Show/Hide") ,menu-bar-showhide-menu)) 1189 `(menu-item "Show/Hide" ,menu-bar-showhide-menu))
1199 1190
1200 (define-key menu [showhide-separator] 1191 (bindings--define-key menu [showhide-separator]
1201 menu-bar-separator) 1192 menu-bar-separator)
1202 1193
1203 (define-key menu [mule] 1194 (bindings--define-key menu [mule]
1204 ;; It is better not to use backquote here, 1195 ;; It is better not to use backquote here,
1205 ;; because that makes a bootstrapping problem 1196 ;; because that makes a bootstrapping problem
1206 ;; if you need to recompile all the Lisp files using interpreted code. 1197 ;; if you need to recompile all the Lisp files using interpreted code.
1207 `(menu-item ,(purecopy "Multilingual Environment") ,mule-menu-keymap 1198 `(menu-item "Multilingual Environment" ,mule-menu-keymap
1208 ;; Most of the MULE menu actually does make sense in 1199 ;; Most of the MULE menu actually does make sense in
1209 ;; unibyte mode, e.g. language selection. 1200 ;; unibyte mode, e.g. language selection.
1210 ;; :visible '(default-value 'enable-multibyte-characters) 1201 ;; :visible '(default-value 'enable-multibyte-characters)
1211 )) 1202 ))
1212 ;;(setq menu-bar-final-items (cons 'mule menu-bar-final-items)) 1203 ;;(setq menu-bar-final-items (cons 'mule menu-bar-final-items))
1213 ;;(define-key menu [preferences] 1204 ;;(bindings--define-key menu [preferences]
1214 ;; `(menu-item ,(purecopy "Preferences") ,menu-bar-preferences-menu 1205 ;; `(menu-item "Preferences" ,menu-bar-preferences-menu
1215 ;; :help ,(purecopy "Toggle important global options"))) 1206 ;; :help "Toggle important global options"))
1216 1207
1217 (define-key menu [mule-separator] 1208 (bindings--define-key menu [mule-separator]
1218 menu-bar-separator) 1209 menu-bar-separator)
1219 1210
1220 (define-key menu [debug-on-quit] 1211 (bindings--define-key menu [debug-on-quit]
1221 (menu-bar-make-toggle toggle-debug-on-quit debug-on-quit 1212 (menu-bar-make-toggle toggle-debug-on-quit debug-on-quit
1222 "Enter Debugger on Quit/C-g" "Debug on Quit %s" 1213 "Enter Debugger on Quit/C-g" "Debug on Quit %s"
1223 "Enter Lisp debugger when C-g is pressed")) 1214 "Enter Lisp debugger when C-g is pressed"))
1224 (define-key menu [debug-on-error] 1215 (bindings--define-key menu [debug-on-error]
1225 (menu-bar-make-toggle toggle-debug-on-error debug-on-error 1216 (menu-bar-make-toggle toggle-debug-on-error debug-on-error
1226 "Enter Debugger on Error" "Debug on Error %s" 1217 "Enter Debugger on Error" "Debug on Error %s"
1227 "Enter Lisp debugger when an error is signaled")) 1218 "Enter Lisp debugger when an error is signaled"))
1228 (define-key menu [debugger-separator] 1219 (bindings--define-key menu [debugger-separator]
1229 menu-bar-separator) 1220 menu-bar-separator)
1230 1221
1231 (define-key menu [blink-cursor-mode] 1222 (bindings--define-key menu [blink-cursor-mode]
1232 (menu-bar-make-mm-toggle 1223 (menu-bar-make-mm-toggle
1233 blink-cursor-mode 1224 blink-cursor-mode
1234 "Blink Cursor" 1225 "Blink Cursor"
1235 "Whether the cursor blinks (Blink Cursor mode)")) 1226 "Whether the cursor blinks (Blink Cursor mode)"))
1236 (define-key menu [cursor-separator] 1227 (bindings--define-key menu [cursor-separator]
1237 menu-bar-separator) 1228 menu-bar-separator)
1238 1229
1239 (define-key menu [save-place] 1230 (bindings--define-key menu [save-place]
1240 (menu-bar-make-toggle 1231 (menu-bar-make-toggle
1241 toggle-save-place-globally save-place 1232 toggle-save-place-globally save-place
1242 "Save Place in Files between Sessions" 1233 "Save Place in Files between Sessions"
@@ -1248,7 +1239,7 @@ mail status in mode line"))
1248 (set-default 1239 (set-default
1249 'save-place (not (symbol-value 'save-place))))) 1240 'save-place (not (symbol-value 'save-place)))))
1250 1241
1251 (define-key menu [uniquify] 1242 (bindings--define-key menu [uniquify]
1252 (menu-bar-make-toggle 1243 (menu-bar-make-toggle
1253 toggle-uniquify-buffer-names uniquify-buffer-name-style 1244 toggle-uniquify-buffer-names uniquify-buffer-name-style
1254 "Use Directory Names in Buffer Names" 1245 "Use Directory Names in Buffer Names"
@@ -1259,9 +1250,9 @@ mail status in mode line"))
1259 (if (not uniquify-buffer-name-style) 1250 (if (not uniquify-buffer-name-style)
1260 'forward)))) 1251 'forward))))
1261 1252
1262 (define-key menu [edit-options-separator] 1253 (bindings--define-key menu [edit-options-separator]
1263 menu-bar-separator) 1254 menu-bar-separator)
1264 (define-key menu [cua-mode] 1255 (bindings--define-key menu [cua-mode]
1265 (menu-bar-make-mm-toggle 1256 (menu-bar-make-mm-toggle
1266 cua-mode 1257 cua-mode
1267 "Use CUA Keys (Cut/Paste with C-x/C-c/C-v)" 1258 "Use CUA Keys (Cut/Paste with C-x/C-c/C-v)"
@@ -1269,7 +1260,7 @@ mail status in mode line"))
1269 (:visible (or (not (boundp 'cua-enable-cua-keys)) 1260 (:visible (or (not (boundp 'cua-enable-cua-keys))
1270 cua-enable-cua-keys)))) 1261 cua-enable-cua-keys))))
1271 1262
1272 (define-key menu [cua-emulation-mode] 1263 (bindings--define-key menu [cua-emulation-mode]
1273 (menu-bar-make-mm-toggle 1264 (menu-bar-make-mm-toggle
1274 cua-mode 1265 cua-mode
1275 "Shift movement mark region (CUA)" 1266 "Shift movement mark region (CUA)"
@@ -1277,35 +1268,35 @@ mail status in mode line"))
1277 (:visible (and (boundp 'cua-enable-cua-keys) 1268 (:visible (and (boundp 'cua-enable-cua-keys)
1278 (not cua-enable-cua-keys))))) 1269 (not cua-enable-cua-keys)))))
1279 1270
1280 (define-key menu [case-fold-search] 1271 (bindings--define-key menu [case-fold-search]
1281 (menu-bar-make-toggle 1272 (menu-bar-make-toggle
1282 toggle-case-fold-search case-fold-search 1273 toggle-case-fold-search case-fold-search
1283 "Ignore Case for Search" 1274 "Ignore Case for Search"
1284 "Case-Insensitive Search %s" 1275 "Case-Insensitive Search %s"
1285 "Ignore letter-case in search commands")) 1276 "Ignore letter-case in search commands"))
1286 1277
1287 (define-key menu [auto-fill-mode] 1278 (bindings--define-key menu [auto-fill-mode]
1288 `(menu-item 1279 '(menu-item
1289 ,(purecopy "Auto Fill in Text Modes") 1280 "Auto Fill in Text Modes"
1290 menu-bar-text-mode-auto-fill 1281 menu-bar-text-mode-auto-fill
1291 :help ,(purecopy "Automatically fill text while typing (Auto Fill mode)") 1282 :help "Automatically fill text while typing (Auto Fill mode)"
1292 :button (:toggle . (if (listp text-mode-hook) 1283 :button (:toggle . (if (listp text-mode-hook)
1293 (member 'turn-on-auto-fill text-mode-hook) 1284 (member 'turn-on-auto-fill text-mode-hook)
1294 (eq 'turn-on-auto-fill text-mode-hook))))) 1285 (eq 'turn-on-auto-fill text-mode-hook)))))
1295 1286
1296 (define-key menu [line-wrapping] 1287 (bindings--define-key menu [line-wrapping]
1297 `(menu-item ,(purecopy "Line Wrapping in This Buffer") 1288 `(menu-item "Line Wrapping in This Buffer"
1298 ,menu-bar-line-wrapping-menu)) 1289 ,menu-bar-line-wrapping-menu))
1299 1290
1300 1291
1301 (define-key menu [highlight-separator] 1292 (bindings--define-key menu [highlight-separator]
1302 menu-bar-separator) 1293 menu-bar-separator)
1303 (define-key menu [highlight-paren-mode] 1294 (bindings--define-key menu [highlight-paren-mode]
1304 (menu-bar-make-mm-toggle 1295 (menu-bar-make-mm-toggle
1305 show-paren-mode 1296 show-paren-mode
1306 "Highlight Matching Parentheses" 1297 "Highlight Matching Parentheses"
1307 "Highlight matching/mismatched parentheses at cursor (Show Paren mode)")) 1298 "Highlight matching/mismatched parentheses at cursor (Show Paren mode)"))
1308 (define-key menu [transient-mark-mode] 1299 (bindings--define-key menu [transient-mark-mode]
1309 (menu-bar-make-mm-toggle 1300 (menu-bar-make-mm-toggle
1310 transient-mark-mode 1301 transient-mark-mode
1311 "Highlight Active Region" 1302 "Highlight Active Region"
@@ -1339,109 +1330,109 @@ mail status in mode line"))
1339(defvar menu-bar-games-menu 1330(defvar menu-bar-games-menu
1340 (let ((menu (make-sparse-keymap "Games"))) 1331 (let ((menu (make-sparse-keymap "Games")))
1341 1332
1342 (define-key menu [zone] 1333 (bindings--define-key menu [zone]
1343 `(menu-item ,(purecopy "Zone Out") zone 1334 '(menu-item "Zone Out" zone
1344 :help ,(purecopy "Play tricks with Emacs display when Emacs is idle"))) 1335 :help "Play tricks with Emacs display when Emacs is idle"))
1345 (define-key menu [tetris] 1336 (bindings--define-key menu [tetris]
1346 `(menu-item ,(purecopy "Tetris") tetris 1337 '(menu-item "Tetris" tetris
1347 :help ,(purecopy "Falling blocks game"))) 1338 :help "Falling blocks game"))
1348 (define-key menu [solitaire] 1339 (bindings--define-key menu [solitaire]
1349 `(menu-item ,(purecopy "Solitaire") solitaire 1340 '(menu-item "Solitaire" solitaire
1350 :help ,(purecopy "Get rid of all the stones"))) 1341 :help "Get rid of all the stones"))
1351 (define-key menu [snake] 1342 (bindings--define-key menu [snake]
1352 `(menu-item ,(purecopy "Snake") snake 1343 '(menu-item "Snake" snake
1353 :help ,(purecopy "Move snake around avoiding collisions"))) 1344 :help "Move snake around avoiding collisions"))
1354 (define-key menu [pong] 1345 (bindings--define-key menu [pong]
1355 `(menu-item ,(purecopy "Pong") pong 1346 '(menu-item "Pong" pong
1356 :help ,(purecopy "Bounce the ball to your opponent"))) 1347 :help "Bounce the ball to your opponent"))
1357 (define-key menu [mult] 1348 (bindings--define-key menu [mult]
1358 `(menu-item ,(purecopy "Multiplication Puzzle") mpuz 1349 '(menu-item "Multiplication Puzzle" mpuz
1359 :help ,(purecopy "Exercise brain with multiplication"))) 1350 :help "Exercise brain with multiplication"))
1360 (define-key menu [life] 1351 (bindings--define-key menu [life]
1361 `(menu-item ,(purecopy "Life") life 1352 '(menu-item "Life" life
1362 :help ,(purecopy "Watch how John Conway's cellular automaton evolves"))) 1353 :help "Watch how John Conway's cellular automaton evolves"))
1363 (define-key menu [land] 1354 (bindings--define-key menu [land]
1364 `(menu-item ,(purecopy "Landmark") landmark 1355 '(menu-item "Landmark" landmark
1365 :help ,(purecopy "Watch a neural-network robot learn landmarks"))) 1356 :help "Watch a neural-network robot learn landmarks"))
1366 (define-key menu [hanoi] 1357 (bindings--define-key menu [hanoi]
1367 `(menu-item ,(purecopy "Towers of Hanoi") hanoi 1358 '(menu-item "Towers of Hanoi" hanoi
1368 :help ,(purecopy "Watch Towers-of-Hanoi puzzle solved by Emacs"))) 1359 :help "Watch Towers-of-Hanoi puzzle solved by Emacs"))
1369 (define-key menu [gomoku] 1360 (bindings--define-key menu [gomoku]
1370 `(menu-item ,(purecopy "Gomoku") gomoku 1361 '(menu-item "Gomoku" gomoku
1371 :help ,(purecopy "Mark 5 contiguous squares (like tic-tac-toe)"))) 1362 :help "Mark 5 contiguous squares (like tic-tac-toe)"))
1372 (define-key menu [bubbles] 1363 (bindings--define-key menu [bubbles]
1373 `(menu-item ,(purecopy "Bubbles") bubbles 1364 '(menu-item "Bubbles" bubbles
1374 :help ,(purecopy "Remove all bubbles using the fewest moves"))) 1365 :help "Remove all bubbles using the fewest moves"))
1375 (define-key menu [black-box] 1366 (bindings--define-key menu [black-box]
1376 `(menu-item ,(purecopy "Blackbox") blackbox 1367 '(menu-item "Blackbox" blackbox
1377 :help ,(purecopy "Find balls in a black box by shooting rays"))) 1368 :help "Find balls in a black box by shooting rays"))
1378 (define-key menu [adventure] 1369 (bindings--define-key menu [adventure]
1379 `(menu-item ,(purecopy "Adventure") dunnet 1370 '(menu-item "Adventure" dunnet
1380 :help ,(purecopy "Dunnet, a text Adventure game for Emacs"))) 1371 :help "Dunnet, a text Adventure game for Emacs"))
1381 (define-key menu [5x5] 1372 (bindings--define-key menu [5x5]
1382 `(menu-item ,(purecopy "5x5") 5x5 1373 '(menu-item "5x5" 5x5
1383 :help ,(purecopy "Fill in all the squares on a 5x5 board"))) 1374 :help "Fill in all the squares on a 5x5 board"))
1384 menu)) 1375 menu))
1385 1376
1386(defvar menu-bar-encryption-decryption-menu 1377(defvar menu-bar-encryption-decryption-menu
1387 (let ((menu (make-sparse-keymap "Encryption/Decryption"))) 1378 (let ((menu (make-sparse-keymap "Encryption/Decryption")))
1388 (define-key menu [insert-keys] 1379 (bindings--define-key menu [insert-keys]
1389 `(menu-item ,(purecopy "Insert Keys") epa-insert-keys 1380 '(menu-item "Insert Keys" epa-insert-keys
1390 :help ,(purecopy "Insert public keys after the current point"))) 1381 :help "Insert public keys after the current point"))
1391 1382
1392 (define-key menu [export-keys] 1383 (bindings--define-key menu [export-keys]
1393 `(menu-item ,(purecopy "Export Keys") epa-export-keys 1384 '(menu-item "Export Keys" epa-export-keys
1394 :help ,(purecopy "Export public keys to a file"))) 1385 :help "Export public keys to a file"))
1395 1386
1396 (define-key menu [import-keys-region] 1387 (bindings--define-key menu [import-keys-region]
1397 `(menu-item ,(purecopy "Import Keys from Region") epa-import-keys-region 1388 '(menu-item "Import Keys from Region" epa-import-keys-region
1398 :help ,(purecopy "Import public keys from the current region"))) 1389 :help "Import public keys from the current region"))
1399 1390
1400 (define-key menu [import-keys] 1391 (bindings--define-key menu [import-keys]
1401 `(menu-item ,(purecopy "Import Keys from File...") epa-import-keys 1392 '(menu-item "Import Keys from File..." epa-import-keys
1402 :help ,(purecopy "Import public keys from a file"))) 1393 :help "Import public keys from a file"))
1403 1394
1404 (define-key menu [list-keys] 1395 (bindings--define-key menu [list-keys]
1405 `(menu-item ,(purecopy "List Keys") epa-list-keys 1396 '(menu-item "List Keys" epa-list-keys
1406 :help ,(purecopy "Browse your public keyring"))) 1397 :help "Browse your public keyring"))
1407 1398
1408 (define-key menu [separator-keys] 1399 (bindings--define-key menu [separator-keys]
1409 menu-bar-separator) 1400 menu-bar-separator)
1410 1401
1411 (define-key menu [sign-region] 1402 (bindings--define-key menu [sign-region]
1412 `(menu-item ,(purecopy "Sign Region") epa-sign-region 1403 '(menu-item "Sign Region" epa-sign-region
1413 :help ,(purecopy "Create digital signature of the current region"))) 1404 :help "Create digital signature of the current region"))
1414 1405
1415 (define-key menu [verify-region] 1406 (bindings--define-key menu [verify-region]
1416 `(menu-item ,(purecopy "Verify Region") epa-verify-region 1407 '(menu-item "Verify Region" epa-verify-region
1417 :help ,(purecopy "Verify digital signature of the current region"))) 1408 :help "Verify digital signature of the current region"))
1418 1409
1419 (define-key menu [encrypt-region] 1410 (bindings--define-key menu [encrypt-region]
1420 `(menu-item ,(purecopy "Encrypt Region") epa-encrypt-region 1411 '(menu-item "Encrypt Region" epa-encrypt-region
1421 :help ,(purecopy "Encrypt the current region"))) 1412 :help "Encrypt the current region"))
1422 1413
1423 (define-key menu [decrypt-region] 1414 (bindings--define-key menu [decrypt-region]
1424 `(menu-item ,(purecopy "Decrypt Region") epa-decrypt-region 1415 '(menu-item "Decrypt Region" epa-decrypt-region
1425 :help ,(purecopy "Decrypt the current region"))) 1416 :help "Decrypt the current region"))
1426 1417
1427 (define-key menu [separator-file] 1418 (bindings--define-key menu [separator-file]
1428 menu-bar-separator) 1419 menu-bar-separator)
1429 1420
1430 (define-key menu [sign-file] 1421 (bindings--define-key menu [sign-file]
1431 `(menu-item ,(purecopy "Sign File...") epa-sign-file 1422 '(menu-item "Sign File..." epa-sign-file
1432 :help ,(purecopy "Create digital signature of a file"))) 1423 :help "Create digital signature of a file"))
1433 1424
1434 (define-key menu [verify-file] 1425 (bindings--define-key menu [verify-file]
1435 `(menu-item ,(purecopy "Verify File...") epa-verify-file 1426 '(menu-item "Verify File..." epa-verify-file
1436 :help ,(purecopy "Verify digital signature of a file"))) 1427 :help "Verify digital signature of a file"))
1437 1428
1438 (define-key menu [encrypt-file] 1429 (bindings--define-key menu [encrypt-file]
1439 `(menu-item ,(purecopy "Encrypt File...") epa-encrypt-file 1430 '(menu-item "Encrypt File..." epa-encrypt-file
1440 :help ,(purecopy "Encrypt a file"))) 1431 :help "Encrypt a file"))
1441 1432
1442 (define-key menu [decrypt-file] 1433 (bindings--define-key menu [decrypt-file]
1443 `(menu-item ,(purecopy "Decrypt File...") epa-decrypt-file 1434 '(menu-item "Decrypt File..." epa-decrypt-file
1444 :help ,(purecopy "Decrypt a file"))) 1435 :help "Decrypt a file"))
1445 1436
1446 menu)) 1437 menu))
1447 1438
@@ -1453,102 +1444,103 @@ mail status in mode line"))
1453(defvar menu-bar-tools-menu 1444(defvar menu-bar-tools-menu
1454 (let ((menu (make-sparse-keymap "Tools"))) 1445 (let ((menu (make-sparse-keymap "Tools")))
1455 1446
1456 (define-key menu [games] 1447 (bindings--define-key menu [games]
1457 `(menu-item ,(purecopy "Games") ,menu-bar-games-menu)) 1448 `(menu-item "Games" ,menu-bar-games-menu))
1458 1449
1459 (define-key menu [separator-games] 1450 (bindings--define-key menu [separator-games]
1460 menu-bar-separator) 1451 menu-bar-separator)
1461 1452
1462 (define-key menu [encryption-decryption] 1453 (bindings--define-key menu [encryption-decryption]
1463 `(menu-item ,(purecopy "Encryption/Decryption") ,menu-bar-encryption-decryption-menu)) 1454 `(menu-item "Encryption/Decryption"
1455 ,menu-bar-encryption-decryption-menu))
1464 1456
1465 (define-key menu [separator-encryption-decryption] 1457 (bindings--define-key menu [separator-encryption-decryption]
1466 menu-bar-separator) 1458 menu-bar-separator)
1467 1459
1468 (define-key menu [simple-calculator] 1460 (bindings--define-key menu [simple-calculator]
1469 `(menu-item ,(purecopy "Simple Calculator") calculator 1461 '(menu-item "Simple Calculator" calculator
1470 :help ,(purecopy "Invoke the Emacs built-in quick calculator"))) 1462 :help "Invoke the Emacs built-in quick calculator"))
1471 (define-key menu [calc] 1463 (bindings--define-key menu [calc]
1472 `(menu-item ,(purecopy "Programmable Calculator") calc 1464 '(menu-item "Programmable Calculator" calc
1473 :help ,(purecopy "Invoke the Emacs built-in full scientific calculator"))) 1465 :help "Invoke the Emacs built-in full scientific calculator"))
1474 (define-key menu [calendar] 1466 (bindings--define-key menu [calendar]
1475 `(menu-item ,(purecopy "Calendar") calendar 1467 '(menu-item "Calendar" calendar
1476 :help ,(purecopy "Invoke the Emacs built-in calendar"))) 1468 :help "Invoke the Emacs built-in calendar"))
1477 1469
1478 (define-key menu [separator-net] 1470 (bindings--define-key menu [separator-net]
1479 menu-bar-separator) 1471 menu-bar-separator)
1480 1472
1481 (define-key menu [directory-search] 1473 (bindings--define-key menu [directory-search]
1482 `(menu-item ,(purecopy "Directory Search") eudc-tools-menu)) 1474 '(menu-item "Directory Search" eudc-tools-menu))
1483 (define-key menu [compose-mail] 1475 (bindings--define-key menu [compose-mail]
1484 `(menu-item (format "Send Mail (with %s)" (send-mail-item-name)) compose-mail 1476 '(menu-item (format "Send Mail (with %s)" (send-mail-item-name)) compose-mail
1485 :visible (and mail-user-agent (not (eq mail-user-agent 'ignore))) 1477 :visible (and mail-user-agent (not (eq mail-user-agent 'ignore)))
1486 :help ,(purecopy "Send a mail message"))) 1478 :help "Send a mail message"))
1487 (define-key menu [rmail] 1479 (bindings--define-key menu [rmail]
1488 `(menu-item (format "Read Mail (with %s)" (read-mail-item-name)) 1480 '(menu-item (format "Read Mail (with %s)" (read-mail-item-name))
1489 menu-bar-read-mail 1481 menu-bar-read-mail
1490 :visible (and read-mail-command 1482 :visible (and read-mail-command
1491 (not (eq read-mail-command 'ignore))) 1483 (not (eq read-mail-command 'ignore)))
1492 :help ,(purecopy "Read your mail and reply to it"))) 1484 :help "Read your mail and reply to it"))
1493 1485
1494 (define-key menu [gnus] 1486 (bindings--define-key menu [gnus]
1495 `(menu-item ,(purecopy "Read Net News (Gnus)") gnus 1487 '(menu-item "Read Net News (Gnus)" gnus
1496 :help ,(purecopy "Read network news groups"))) 1488 :help "Read network news groups"))
1497 1489
1498 (define-key menu [separator-vc] 1490 (bindings--define-key menu [separator-vc]
1499 menu-bar-separator) 1491 menu-bar-separator)
1500 1492
1501 (define-key menu [pcl-cvs] 1493 (bindings--define-key menu [pcl-cvs]
1502 `(menu-item ,(purecopy "PCL-CVS") cvs-global-menu)) 1494 '(menu-item "PCL-CVS" cvs-global-menu))
1503 (define-key menu [vc] nil) ;Create the place for the VC menu. 1495 (bindings--define-key menu [vc] nil) ;Create the place for the VC menu.
1504 1496
1505 (define-key menu [separator-compare] 1497 (bindings--define-key menu [separator-compare]
1506 menu-bar-separator) 1498 menu-bar-separator)
1507 1499
1508 (define-key menu [epatch] 1500 (bindings--define-key menu [epatch]
1509 `(menu-item ,(purecopy "Apply Patch") menu-bar-epatch-menu)) 1501 '(menu-item "Apply Patch" menu-bar-epatch-menu))
1510 (define-key menu [ediff-merge] 1502 (bindings--define-key menu [ediff-merge]
1511 `(menu-item ,(purecopy "Merge") menu-bar-ediff-merge-menu)) 1503 '(menu-item "Merge" menu-bar-ediff-merge-menu))
1512 (define-key menu [compare] 1504 (bindings--define-key menu [compare]
1513 `(menu-item ,(purecopy "Compare (Ediff)") menu-bar-ediff-menu)) 1505 '(menu-item "Compare (Ediff)" menu-bar-ediff-menu))
1514 1506
1515 (define-key menu [separator-spell] 1507 (bindings--define-key menu [separator-spell]
1516 menu-bar-separator) 1508 menu-bar-separator)
1517 1509
1518 (define-key menu [spell] 1510 (bindings--define-key menu [spell]
1519 `(menu-item ,(purecopy "Spell Checking") ispell-menu-map)) 1511 '(menu-item "Spell Checking" ispell-menu-map))
1520 1512
1521 (define-key menu [separator-prog] 1513 (bindings--define-key menu [separator-prog]
1522 menu-bar-separator) 1514 menu-bar-separator)
1523 1515
1524 (define-key menu [semantic] 1516 (bindings--define-key menu [semantic]
1525 `(menu-item ,(purecopy "Source Code Parsers (Semantic)") 1517 '(menu-item "Source Code Parsers (Semantic)"
1526 semantic-mode 1518 semantic-mode
1527 :help ,(purecopy "Toggle automatic parsing in source code buffers (Semantic mode)") 1519 :help "Toggle automatic parsing in source code buffers (Semantic mode)"
1528 :button (:toggle . (bound-and-true-p semantic-mode)))) 1520 :button (:toggle . (bound-and-true-p semantic-mode))))
1529 1521
1530 (define-key menu [ede] 1522 (bindings--define-key menu [ede]
1531 `(menu-item ,(purecopy "Project support (EDE)") 1523 '(menu-item "Project support (EDE)"
1532 global-ede-mode 1524 global-ede-mode
1533 :help ,(purecopy "Toggle the Emacs Development Environment (Global EDE mode)") 1525 :help "Toggle the Emacs Development Environment (Global EDE mode)"
1534 :button (:toggle . (bound-and-true-p global-ede-mode)))) 1526 :button (:toggle . (bound-and-true-p global-ede-mode))))
1535 1527
1536 (define-key menu [gdb] 1528 (bindings--define-key menu [gdb]
1537 `(menu-item ,(purecopy "Debugger (GDB)...") gdb 1529 '(menu-item "Debugger (GDB)..." gdb
1538 :help ,(purecopy "Debug a program from within Emacs with GDB"))) 1530 :help "Debug a program from within Emacs with GDB"))
1539 (define-key menu [shell-on-region] 1531 (bindings--define-key menu [shell-on-region]
1540 `(menu-item ,(purecopy "Shell Command on Region...") shell-command-on-region 1532 '(menu-item "Shell Command on Region..." shell-command-on-region
1541 :enable mark-active 1533 :enable mark-active
1542 :help ,(purecopy "Pass marked region to a shell command"))) 1534 :help "Pass marked region to a shell command"))
1543 (define-key menu [shell] 1535 (bindings--define-key menu [shell]
1544 `(menu-item ,(purecopy "Shell Command...") shell-command 1536 '(menu-item "Shell Command..." shell-command
1545 :help ,(purecopy "Invoke a shell command and catch its output"))) 1537 :help "Invoke a shell command and catch its output"))
1546 (define-key menu [compile] 1538 (bindings--define-key menu [compile]
1547 `(menu-item ,(purecopy "Compile...") compile 1539 '(menu-item "Compile..." compile
1548 :help ,(purecopy "Invoke compiler or Make, view compilation errors"))) 1540 :help "Invoke compiler or Make, view compilation errors"))
1549 (define-key menu [grep] 1541 (bindings--define-key menu [grep]
1550 `(menu-item ,(purecopy "Search Files (Grep)...") grep 1542 '(menu-item "Search Files (Grep)..." grep
1551 :help ,(purecopy "Search files for strings or regexps (with Grep)"))) 1543 :help "Search files for strings or regexps (with Grep)"))
1552 menu)) 1544 menu))
1553 1545
1554;; The "Help" menu items 1546;; The "Help" menu items
@@ -1556,54 +1548,54 @@ mail status in mode line"))
1556(defvar menu-bar-describe-menu 1548(defvar menu-bar-describe-menu
1557 (let ((menu (make-sparse-keymap "Describe"))) 1549 (let ((menu (make-sparse-keymap "Describe")))
1558 1550
1559 (define-key menu [mule-diag] 1551 (bindings--define-key menu [mule-diag]
1560 `(menu-item ,(purecopy "Show All of Mule Status") mule-diag 1552 '(menu-item "Show All of Mule Status" mule-diag
1561 :visible (default-value 'enable-multibyte-characters) 1553 :visible (default-value 'enable-multibyte-characters)
1562 :help ,(purecopy "Display multilingual environment settings"))) 1554 :help "Display multilingual environment settings"))
1563 (define-key menu [describe-coding-system-briefly] 1555 (bindings--define-key menu [describe-coding-system-briefly]
1564 `(menu-item ,(purecopy "Describe Coding System (Briefly)") 1556 '(menu-item "Describe Coding System (Briefly)"
1565 describe-current-coding-system-briefly 1557 describe-current-coding-system-briefly
1566 :visible (default-value 'enable-multibyte-characters))) 1558 :visible (default-value 'enable-multibyte-characters)))
1567 (define-key menu [describe-coding-system] 1559 (bindings--define-key menu [describe-coding-system]
1568 `(menu-item ,(purecopy "Describe Coding System...") describe-coding-system 1560 '(menu-item "Describe Coding System..." describe-coding-system
1569 :visible (default-value 'enable-multibyte-characters))) 1561 :visible (default-value 'enable-multibyte-characters)))
1570 (define-key menu [describe-input-method] 1562 (bindings--define-key menu [describe-input-method]
1571 `(menu-item ,(purecopy "Describe Input Method...") describe-input-method 1563 '(menu-item "Describe Input Method..." describe-input-method
1572 :visible (default-value 'enable-multibyte-characters) 1564 :visible (default-value 'enable-multibyte-characters)
1573 :help ,(purecopy "Keyboard layout for specific input method"))) 1565 :help "Keyboard layout for specific input method"))
1574 (define-key menu [describe-language-environment] 1566 (bindings--define-key menu [describe-language-environment]
1575 `(menu-item ,(purecopy "Describe Language Environment") 1567 `(menu-item "Describe Language Environment"
1576 ,describe-language-environment-map)) 1568 ,describe-language-environment-map))
1577 1569
1578 (define-key menu [separator-desc-mule] 1570 (bindings--define-key menu [separator-desc-mule]
1579 menu-bar-separator) 1571 menu-bar-separator)
1580 1572
1581 (define-key menu [list-keybindings] 1573 (bindings--define-key menu [list-keybindings]
1582 `(menu-item ,(purecopy "List Key Bindings") describe-bindings 1574 '(menu-item "List Key Bindings" describe-bindings
1583 :help ,(purecopy "Display all current key bindings (keyboard shortcuts)"))) 1575 :help "Display all current key bindings (keyboard shortcuts)"))
1584 (define-key menu [describe-current-display-table] 1576 (bindings--define-key menu [describe-current-display-table]
1585 `(menu-item ,(purecopy "Describe Display Table") describe-current-display-table 1577 '(menu-item "Describe Display Table" describe-current-display-table
1586 :help ,(purecopy "Describe the current display table"))) 1578 :help "Describe the current display table"))
1587 (define-key menu [describe-package] 1579 (bindings--define-key menu [describe-package]
1588 `(menu-item ,(purecopy "Describe Package...") describe-package 1580 '(menu-item "Describe Package..." describe-package
1589 :help ,(purecopy "Display documentation of a Lisp package"))) 1581 :help "Display documentation of a Lisp package"))
1590 (define-key menu [describe-face] 1582 (bindings--define-key menu [describe-face]
1591 `(menu-item ,(purecopy "Describe Face...") describe-face 1583 '(menu-item "Describe Face..." describe-face
1592 :help ,(purecopy "Display the properties of a face"))) 1584 :help "Display the properties of a face"))
1593 (define-key menu [describe-variable] 1585 (bindings--define-key menu [describe-variable]
1594 `(menu-item ,(purecopy "Describe Variable...") describe-variable 1586 '(menu-item "Describe Variable..." describe-variable
1595 :help ,(purecopy "Display documentation of variable/option"))) 1587 :help "Display documentation of variable/option"))
1596 (define-key menu [describe-function] 1588 (bindings--define-key menu [describe-function]
1597 `(menu-item ,(purecopy "Describe Function...") describe-function 1589 '(menu-item "Describe Function..." describe-function
1598 :help ,(purecopy "Display documentation of function/command"))) 1590 :help "Display documentation of function/command"))
1599 (define-key menu [describe-key-1] 1591 (bindings--define-key menu [describe-key-1]
1600 `(menu-item ,(purecopy "Describe Key or Mouse Operation...") describe-key 1592 '(menu-item "Describe Key or Mouse Operation..." describe-key
1601 ;; Users typically don't identify keys and menu items... 1593 ;; Users typically don't identify keys and menu items...
1602 :help ,(purecopy "Display documentation of command bound to a \ 1594 :help "Display documentation of command bound to a \
1603key, a click, or a menu-item"))) 1595key, a click, or a menu-item"))
1604 (define-key menu [describe-mode] 1596 (bindings--define-key menu [describe-mode]
1605 `(menu-item ,(purecopy "Describe Buffer Modes") describe-mode 1597 '(menu-item "Describe Buffer Modes" describe-mode
1606 :help ,(purecopy "Describe this buffer's major and minor mode"))) 1598 :help "Describe this buffer's major and minor mode"))
1607 menu)) 1599 menu))
1608 1600
1609(defun menu-bar-read-lispref () 1601(defun menu-bar-read-lispref ()
@@ -1636,64 +1628,64 @@ key, a click, or a menu-item")))
1636(defvar menu-bar-search-documentation-menu 1628(defvar menu-bar-search-documentation-menu
1637 (let ((menu (make-sparse-keymap "Search Documentation"))) 1629 (let ((menu (make-sparse-keymap "Search Documentation")))
1638 1630
1639 (define-key menu [search-documentation-strings] 1631 (bindings--define-key menu [search-documentation-strings]
1640 `(menu-item ,(purecopy "Search Documentation Strings...") apropos-documentation 1632 '(menu-item "Search Documentation Strings..." apropos-documentation
1641 :help 1633 :help
1642 ,(purecopy "Find functions and variables whose doc strings match a regexp"))) 1634 "Find functions and variables whose doc strings match a regexp"))
1643 (define-key menu [find-any-object-by-name] 1635 (bindings--define-key menu [find-any-object-by-name]
1644 `(menu-item ,(purecopy "Find Any Object by Name...") apropos 1636 '(menu-item "Find Any Object by Name..." apropos
1645 :help ,(purecopy "Find symbols of any kind whose names match a regexp"))) 1637 :help "Find symbols of any kind whose names match a regexp"))
1646 (define-key menu [find-option-by-value] 1638 (bindings--define-key menu [find-option-by-value]
1647 `(menu-item ,(purecopy "Find Options by Value...") apropos-value 1639 '(menu-item "Find Options by Value..." apropos-value
1648 :help ,(purecopy "Find variables whose values match a regexp"))) 1640 :help "Find variables whose values match a regexp"))
1649 (define-key menu [find-options-by-name] 1641 (bindings--define-key menu [find-options-by-name]
1650 `(menu-item ,(purecopy "Find Options by Name...") apropos-variable 1642 '(menu-item "Find Options by Name..." apropos-variable
1651 :help ,(purecopy "Find variables whose names match a regexp"))) 1643 :help "Find variables whose names match a regexp"))
1652 (define-key menu [find-commands-by-name] 1644 (bindings--define-key menu [find-commands-by-name]
1653 `(menu-item ,(purecopy "Find Commands by Name...") apropos-command 1645 '(menu-item "Find Commands by Name..." apropos-command
1654 :help ,(purecopy "Find commands whose names match a regexp"))) 1646 :help "Find commands whose names match a regexp"))
1655 (define-key menu [sep1] 1647 (bindings--define-key menu [sep1]
1656 menu-bar-separator) 1648 menu-bar-separator)
1657 (define-key menu [lookup-command-in-manual] 1649 (bindings--define-key menu [lookup-command-in-manual]
1658 `(menu-item ,(purecopy "Look Up Command in User Manual...") Info-goto-emacs-command-node 1650 '(menu-item "Look Up Command in User Manual..." Info-goto-emacs-command-node
1659 :help ,(purecopy "Display manual section that describes a command"))) 1651 :help "Display manual section that describes a command"))
1660 (define-key menu [lookup-key-in-manual] 1652 (bindings--define-key menu [lookup-key-in-manual]
1661 `(menu-item ,(purecopy "Look Up Key in User Manual...") Info-goto-emacs-key-command-node 1653 '(menu-item "Look Up Key in User Manual..." Info-goto-emacs-key-command-node
1662 :help ,(purecopy "Display manual section that describes a key"))) 1654 :help "Display manual section that describes a key"))
1663 (define-key menu [lookup-subject-in-elisp-manual] 1655 (bindings--define-key menu [lookup-subject-in-elisp-manual]
1664 `(menu-item ,(purecopy "Look Up Subject in ELisp Manual...") elisp-index-search 1656 '(menu-item "Look Up Subject in ELisp Manual..." elisp-index-search
1665 :help ,(purecopy "Find description of a subject in Emacs Lisp manual"))) 1657 :help "Find description of a subject in Emacs Lisp manual"))
1666 (define-key menu [lookup-subject-in-emacs-manual] 1658 (bindings--define-key menu [lookup-subject-in-emacs-manual]
1667 `(menu-item ,(purecopy "Look Up Subject in User Manual...") emacs-index-search 1659 '(menu-item "Look Up Subject in User Manual..." emacs-index-search
1668 :help ,(purecopy "Find description of a subject in Emacs User manual"))) 1660 :help "Find description of a subject in Emacs User manual"))
1669 (define-key menu [emacs-terminology] 1661 (bindings--define-key menu [emacs-terminology]
1670 `(menu-item ,(purecopy "Emacs Terminology") search-emacs-glossary 1662 '(menu-item "Emacs Terminology" search-emacs-glossary
1671 :help ,(purecopy "Display the Glossary section of the Emacs manual"))) 1663 :help "Display the Glossary section of the Emacs manual"))
1672 menu)) 1664 menu))
1673 1665
1674(defvar menu-bar-manuals-menu 1666(defvar menu-bar-manuals-menu
1675 (let ((menu (make-sparse-keymap "More Manuals"))) 1667 (let ((menu (make-sparse-keymap "More Manuals")))
1676 1668
1677 (define-key menu [man] 1669 (bindings--define-key menu [man]
1678 `(menu-item ,(purecopy "Read Man Page...") manual-entry 1670 '(menu-item "Read Man Page..." manual-entry
1679 :help ,(purecopy "Man-page docs for external commands and libraries"))) 1671 :help "Man-page docs for external commands and libraries"))
1680 (define-key menu [sep2] 1672 (bindings--define-key menu [sep2]
1681 menu-bar-separator) 1673 menu-bar-separator)
1682 (define-key menu [order-emacs-manuals] 1674 (bindings--define-key menu [order-emacs-manuals]
1683 `(menu-item ,(purecopy "Ordering Manuals") view-order-manuals 1675 '(menu-item "Ordering Manuals" view-order-manuals
1684 :help ,(purecopy "How to order manuals from the Free Software Foundation"))) 1676 :help "How to order manuals from the Free Software Foundation"))
1685 (define-key menu [lookup-subject-in-all-manuals] 1677 (bindings--define-key menu [lookup-subject-in-all-manuals]
1686 `(menu-item ,(purecopy "Lookup Subject in all Manuals...") info-apropos 1678 '(menu-item "Lookup Subject in all Manuals..." info-apropos
1687 :help ,(purecopy "Find description of a subject in all installed manuals"))) 1679 :help "Find description of a subject in all installed manuals"))
1688 (define-key menu [other-manuals] 1680 (bindings--define-key menu [other-manuals]
1689 `(menu-item ,(purecopy "All Other Manuals (Info)") Info-directory 1681 '(menu-item "All Other Manuals (Info)" Info-directory
1690 :help ,(purecopy "Read any of the installed manuals"))) 1682 :help "Read any of the installed manuals"))
1691 (define-key menu [emacs-lisp-reference] 1683 (bindings--define-key menu [emacs-lisp-reference]
1692 `(menu-item ,(purecopy "Emacs Lisp Reference") menu-bar-read-lispref 1684 '(menu-item "Emacs Lisp Reference" menu-bar-read-lispref
1693 :help ,(purecopy "Read the Emacs Lisp Reference manual"))) 1685 :help "Read the Emacs Lisp Reference manual"))
1694 (define-key menu [emacs-lisp-intro] 1686 (bindings--define-key menu [emacs-lisp-intro]
1695 `(menu-item ,(purecopy "Introduction to Emacs Lisp") menu-bar-read-lispintro 1687 '(menu-item "Introduction to Emacs Lisp" menu-bar-read-lispintro
1696 :help ,(purecopy "Read the Introduction to Emacs Lisp Programming"))) 1688 :help "Read the Introduction to Emacs Lisp Programming"))
1697 menu)) 1689 menu))
1698 1690
1699(defun menu-bar-help-extra-packages () 1691(defun menu-bar-help-extra-packages ()
@@ -1711,94 +1703,94 @@ key, a click, or a menu-item")))
1711 1703
1712(defvar menu-bar-help-menu 1704(defvar menu-bar-help-menu
1713 (let ((menu (make-sparse-keymap "Help"))) 1705 (let ((menu (make-sparse-keymap "Help")))
1714 (define-key menu [about-gnu-project] 1706 (bindings--define-key menu [about-gnu-project]
1715 `(menu-item ,(purecopy "About GNU") describe-gnu-project 1707 '(menu-item "About GNU" describe-gnu-project
1716 :help ,(purecopy "About the GNU System, GNU Project, and GNU/Linux"))) 1708 :help "About the GNU System, GNU Project, and GNU/Linux"))
1717 (define-key menu [about-emacs] 1709 (bindings--define-key menu [about-emacs]
1718 `(menu-item ,(purecopy "About Emacs") about-emacs 1710 '(menu-item "About Emacs" about-emacs
1719 :help ,(purecopy "Display version number, copyright info, and basic help"))) 1711 :help "Display version number, copyright info, and basic help"))
1720 (define-key menu [sep4] 1712 (bindings--define-key menu [sep4]
1721 menu-bar-separator) 1713 menu-bar-separator)
1722 (define-key menu [describe-no-warranty] 1714 (bindings--define-key menu [describe-no-warranty]
1723 `(menu-item ,(purecopy "(Non)Warranty") describe-no-warranty 1715 '(menu-item "(Non)Warranty" describe-no-warranty
1724 :help ,(purecopy "Explain that Emacs has NO WARRANTY"))) 1716 :help "Explain that Emacs has NO WARRANTY"))
1725 (define-key menu [describe-copying] 1717 (bindings--define-key menu [describe-copying]
1726 `(menu-item ,(purecopy "Copying Conditions") describe-copying 1718 '(menu-item "Copying Conditions" describe-copying
1727 :help ,(purecopy "Show the Emacs license (GPL)"))) 1719 :help "Show the Emacs license (GPL)"))
1728 (define-key menu [getting-new-versions] 1720 (bindings--define-key menu [getting-new-versions]
1729 `(menu-item ,(purecopy "Getting New Versions") describe-distribution 1721 '(menu-item "Getting New Versions" describe-distribution
1730 :help ,(purecopy "How to get the latest version of Emacs"))) 1722 :help "How to get the latest version of Emacs"))
1731 (define-key menu [sep2] 1723 (bindings--define-key menu [sep2]
1732 menu-bar-separator) 1724 menu-bar-separator)
1733 (define-key menu [external-packages] 1725 (bindings--define-key menu [external-packages]
1734 `(menu-item ,(purecopy "Finding Extra Packages") menu-bar-help-extra-packages 1726 '(menu-item "Finding Extra Packages" menu-bar-help-extra-packages
1735 :help ,(purecopy "Lisp packages distributed separately for use in Emacs"))) 1727 :help "Lisp packages distributed separately for use in Emacs"))
1736 (define-key menu [find-emacs-packages] 1728 (bindings--define-key menu [find-emacs-packages]
1737 `(menu-item ,(purecopy "Search Built-in Packages") finder-by-keyword 1729 '(menu-item "Search Built-in Packages" finder-by-keyword
1738 :help ,(purecopy "Find built-in packages and features by keyword"))) 1730 :help "Find built-in packages and features by keyword"))
1739 (define-key menu [more-manuals] 1731 (bindings--define-key menu [more-manuals]
1740 `(menu-item ,(purecopy "More Manuals") ,menu-bar-manuals-menu)) 1732 `(menu-item "More Manuals" ,menu-bar-manuals-menu))
1741 (define-key menu [emacs-manual] 1733 (bindings--define-key menu [emacs-manual]
1742 `(menu-item ,(purecopy "Read the Emacs Manual") info-emacs-manual 1734 '(menu-item "Read the Emacs Manual" info-emacs-manual
1743 :help ,(purecopy "Full documentation of Emacs features"))) 1735 :help "Full documentation of Emacs features"))
1744 (define-key menu [describe] 1736 (bindings--define-key menu [describe]
1745 `(menu-item ,(purecopy "Describe") ,menu-bar-describe-menu)) 1737 `(menu-item "Describe" ,menu-bar-describe-menu))
1746 (define-key menu [search-documentation] 1738 (bindings--define-key menu [search-documentation]
1747 `(menu-item ,(purecopy "Search Documentation") ,menu-bar-search-documentation-menu)) 1739 `(menu-item "Search Documentation" ,menu-bar-search-documentation-menu))
1748 (define-key menu [sep1] 1740 (bindings--define-key menu [sep1]
1749 menu-bar-separator) 1741 menu-bar-separator)
1750 (define-key menu [emacs-psychotherapist] 1742 (bindings--define-key menu [emacs-psychotherapist]
1751 `(menu-item ,(purecopy "Emacs Psychotherapist") doctor 1743 '(menu-item "Emacs Psychotherapist" doctor
1752 :help ,(purecopy "Our doctor will help you feel better"))) 1744 :help "Our doctor will help you feel better"))
1753 (define-key menu [send-emacs-bug-report] 1745 (bindings--define-key menu [send-emacs-bug-report]
1754 `(menu-item ,(purecopy "Send Bug Report...") report-emacs-bug 1746 '(menu-item "Send Bug Report..." report-emacs-bug
1755 :help ,(purecopy "Send e-mail to Emacs maintainers"))) 1747 :help "Send e-mail to Emacs maintainers"))
1756 (define-key menu [emacs-manual-bug] 1748 (bindings--define-key menu [emacs-manual-bug]
1757 `(menu-item ,(purecopy "How to Report a Bug") info-emacs-bug 1749 '(menu-item "How to Report a Bug" info-emacs-bug
1758 :help ,(purecopy "Read about how to report an Emacs bug"))) 1750 :help "Read about how to report an Emacs bug"))
1759 (define-key menu [emacs-known-problems] 1751 (bindings--define-key menu [emacs-known-problems]
1760 `(menu-item ,(purecopy "Emacs Known Problems") view-emacs-problems 1752 '(menu-item "Emacs Known Problems" view-emacs-problems
1761 :help ,(purecopy "Read about known problems with Emacs"))) 1753 :help "Read about known problems with Emacs"))
1762 (define-key menu [emacs-news] 1754 (bindings--define-key menu [emacs-news]
1763 `(menu-item ,(purecopy "Emacs News") view-emacs-news 1755 '(menu-item "Emacs News" view-emacs-news
1764 :help ,(purecopy "New features of this version"))) 1756 :help "New features of this version"))
1765 (define-key menu [emacs-faq] 1757 (bindings--define-key menu [emacs-faq]
1766 `(menu-item ,(purecopy "Emacs FAQ") view-emacs-FAQ 1758 '(menu-item "Emacs FAQ" view-emacs-FAQ
1767 :help ,(purecopy "Frequently asked (and answered) questions about Emacs"))) 1759 :help "Frequently asked (and answered) questions about Emacs"))
1768 1760
1769 (define-key menu [emacs-tutorial-language-specific] 1761 (bindings--define-key menu [emacs-tutorial-language-specific]
1770 `(menu-item ,(purecopy "Emacs Tutorial (choose language)...") 1762 '(menu-item "Emacs Tutorial (choose language)..."
1771 help-with-tutorial-spec-language 1763 help-with-tutorial-spec-language
1772 :help ,(purecopy "Learn how to use Emacs (choose a language)"))) 1764 :help "Learn how to use Emacs (choose a language)"))
1773 (define-key menu [emacs-tutorial] 1765 (bindings--define-key menu [emacs-tutorial]
1774 `(menu-item ,(purecopy "Emacs Tutorial") help-with-tutorial 1766 '(menu-item "Emacs Tutorial" help-with-tutorial
1775 :help ,(purecopy "Learn how to use Emacs"))) 1767 :help "Learn how to use Emacs"))
1776 1768
1777 ;; In OS X it's in the app menu already. 1769 ;; In OS X it's in the app menu already.
1778 ;; FIXME? There already is an "About Emacs" (sans ...) entry in the Help menu. 1770 ;; FIXME? There already is an "About Emacs" (sans ...) entry in the Help menu.
1779 (and (featurep 'ns) 1771 (and (featurep 'ns)
1780 (not (eq system-type 'darwin)) 1772 (not (eq system-type 'darwin))
1781 (define-key menu [info-panel] 1773 (bindings--define-key menu [info-panel]
1782 `(menu-item ,(purecopy "About Emacs...") ns-do-emacs-info-panel))) 1774 '(menu-item "About Emacs..." ns-do-emacs-info-panel)))
1783 menu)) 1775 menu))
1784 1776
1785(define-key global-map [menu-bar tools] 1777(bindings--define-key global-map [menu-bar tools]
1786 (cons (purecopy "Tools") menu-bar-tools-menu)) 1778 (cons "Tools" menu-bar-tools-menu))
1787(define-key global-map [menu-bar buffer] 1779(bindings--define-key global-map [menu-bar buffer]
1788 (cons (purecopy "Buffers") global-buffers-menu-map)) 1780 (cons "Buffers" global-buffers-menu-map))
1789(define-key global-map [menu-bar options] 1781(bindings--define-key global-map [menu-bar options]
1790 (cons (purecopy "Options") menu-bar-options-menu)) 1782 (cons "Options" menu-bar-options-menu))
1791(define-key global-map [menu-bar edit] 1783(bindings--define-key global-map [menu-bar edit]
1792 (cons (purecopy "Edit") menu-bar-edit-menu)) 1784 (cons "Edit" menu-bar-edit-menu))
1793(define-key global-map [menu-bar file] 1785(bindings--define-key global-map [menu-bar file]
1794 (cons (purecopy "File") menu-bar-file-menu)) 1786 (cons "File" menu-bar-file-menu))
1795 1787
1796;; Put "Help" menu at the end, or Info at the front. 1788;; Put "Help" menu at the end, or Info at the front.
1797;; If running under GNUstep, "Help" is moved and renamed "Info" (see below). 1789;; If running under GNUstep, "Help" is moved and renamed "Info" (see below).
1798(if (and (featurep 'ns) 1790(if (and (featurep 'ns)
1799 (not (eq system-type 'darwin))) 1791 (not (eq system-type 'darwin)))
1800 (define-key global-map [menu-bar help-menu] 1792 (bindings--define-key global-map [menu-bar help-menu]
1801 (cons (purecopy "Info") menu-bar-help-menu)) 1793 (cons "Info" menu-bar-help-menu))
1802 (define-key-after global-map [menu-bar help-menu] 1794 (define-key-after global-map [menu-bar help-menu]
1803 (cons (purecopy "Help") menu-bar-help-menu))) 1795 (cons (purecopy "Help") menu-bar-help-menu)))
1804 1796
@@ -2118,40 +2110,40 @@ It must accept a buffer as its only required argument.")
2118 ;; This shouldn't be necessary, but there's a funny 2110 ;; This shouldn't be necessary, but there's a funny
2119 ;; bug in keymap.c that I don't understand yet. -stef 2111 ;; bug in keymap.c that I don't understand yet. -stef
2120 minibuffer-local-completion-map)) 2112 minibuffer-local-completion-map))
2121 (define-key map [menu-bar minibuf] 2113 (bindings--define-key map [menu-bar minibuf]
2122 (cons (purecopy "Minibuf") (make-sparse-keymap "Minibuf")))) 2114 (cons "Minibuf" (make-sparse-keymap "Minibuf"))))
2123 2115
2124(let ((map minibuffer-local-completion-map)) 2116(let ((map minibuffer-local-completion-map))
2125 (define-key map [menu-bar minibuf ?\?] 2117 (bindings--define-key map [menu-bar minibuf ?\?]
2126 `(menu-item ,(purecopy "List Completions") minibuffer-completion-help 2118 '(menu-item "List Completions" minibuffer-completion-help
2127 :help ,(purecopy "Display all possible completions"))) 2119 :help "Display all possible completions"))
2128 (define-key map [menu-bar minibuf space] 2120 (bindings--define-key map [menu-bar minibuf space]
2129 `(menu-item ,(purecopy "Complete Word") minibuffer-complete-word 2121 '(menu-item "Complete Word" minibuffer-complete-word
2130 :help ,(purecopy "Complete at most one word"))) 2122 :help "Complete at most one word"))
2131 (define-key map [menu-bar minibuf tab] 2123 (bindings--define-key map [menu-bar minibuf tab]
2132 `(menu-item ,(purecopy "Complete") minibuffer-complete 2124 '(menu-item "Complete" minibuffer-complete
2133 :help ,(purecopy "Complete as far as possible")))) 2125 :help "Complete as far as possible")))
2134 2126
2135(let ((map minibuffer-local-map)) 2127(let ((map minibuffer-local-map))
2136 (define-key map [menu-bar minibuf quit] 2128 (bindings--define-key map [menu-bar minibuf quit]
2137 `(menu-item ,(purecopy "Quit") abort-recursive-edit 2129 '(menu-item "Quit" abort-recursive-edit
2138 :help ,(purecopy "Abort input and exit minibuffer"))) 2130 :help "Abort input and exit minibuffer"))
2139 (define-key map [menu-bar minibuf return] 2131 (bindings--define-key map [menu-bar minibuf return]
2140 `(menu-item ,(purecopy "Enter") exit-minibuffer 2132 '(menu-item "Enter" exit-minibuffer
2141 :key-sequence ,(purecopy "\r") 2133 :key-sequence "\r"
2142 :help ,(purecopy "Terminate input and exit minibuffer"))) 2134 :help "Terminate input and exit minibuffer"))
2143 (define-key map [menu-bar minibuf isearch-forward] 2135 (bindings--define-key map [menu-bar minibuf isearch-forward]
2144 `(menu-item ,(purecopy "Isearch History Forward") isearch-forward 2136 '(menu-item "Isearch History Forward" isearch-forward
2145 :help ,(purecopy "Incrementally search minibuffer history forward"))) 2137 :help "Incrementally search minibuffer history forward"))
2146 (define-key map [menu-bar minibuf isearch-backward] 2138 (bindings--define-key map [menu-bar minibuf isearch-backward]
2147 `(menu-item ,(purecopy "Isearch History Backward") isearch-backward 2139 '(menu-item "Isearch History Backward" isearch-backward
2148 :help ,(purecopy "Incrementally search minibuffer history backward"))) 2140 :help "Incrementally search minibuffer history backward"))
2149 (define-key map [menu-bar minibuf next] 2141 (bindings--define-key map [menu-bar minibuf next]
2150 `(menu-item ,(purecopy "Next History Item") next-history-element 2142 '(menu-item "Next History Item" next-history-element
2151 :help ,(purecopy "Put next minibuffer history element in the minibuffer"))) 2143 :help "Put next minibuffer history element in the minibuffer"))
2152 (define-key map [menu-bar minibuf previous] 2144 (bindings--define-key map [menu-bar minibuf previous]
2153 `(menu-item ,(purecopy "Previous History Item") previous-history-element 2145 '(menu-item "Previous History Item" previous-history-element
2154 :help ,(purecopy "Put previous minibuffer history element in the minibuffer")))) 2146 :help "Put previous minibuffer history element in the minibuffer")))
2155 2147
2156(define-minor-mode menu-bar-mode 2148(define-minor-mode menu-bar-mode
2157 "Toggle display of a menu bar on each frame (Menu Bar mode). 2149 "Toggle display of a menu bar on each frame (Menu Bar mode).
diff --git a/lisp/replace.el b/lisp/replace.el
index ad87d474b8b..5baf68224c4 100644
--- a/lisp/replace.el
+++ b/lisp/replace.el
@@ -763,48 +763,47 @@ a previously found match."
763 763
764(defvar occur-menu-map 764(defvar occur-menu-map
765 (let ((map (make-sparse-keymap))) 765 (let ((map (make-sparse-keymap)))
766 (define-key map [next-error-follow-minor-mode] 766 (bindings--define-key map [next-error-follow-minor-mode]
767 `(menu-item ,(purecopy "Auto Occurrence Display") 767 '(menu-item "Auto Occurrence Display"
768 next-error-follow-minor-mode 768 next-error-follow-minor-mode
769 :help ,(purecopy 769 :help "Display another occurrence when moving the cursor"
770 "Display another occurrence when moving the cursor")
771 :button (:toggle . (and (boundp 'next-error-follow-minor-mode) 770 :button (:toggle . (and (boundp 'next-error-follow-minor-mode)
772 next-error-follow-minor-mode)))) 771 next-error-follow-minor-mode))))
773 (define-key map [separator-1] menu-bar-separator) 772 (bindings--define-key map [separator-1] menu-bar-separator)
774 (define-key map [kill-this-buffer] 773 (bindings--define-key map [kill-this-buffer]
775 `(menu-item ,(purecopy "Kill Occur Buffer") kill-this-buffer 774 '(menu-item "Kill Occur Buffer" kill-this-buffer
776 :help ,(purecopy "Kill the current *Occur* buffer"))) 775 :help "Kill the current *Occur* buffer"))
777 (define-key map [quit-window] 776 (bindings--define-key map [quit-window]
778 `(menu-item ,(purecopy "Quit Occur Window") quit-window 777 '(menu-item "Quit Occur Window" quit-window
779 :help ,(purecopy "Quit the current *Occur* buffer. Bury it, and maybe delete the selected frame"))) 778 :help "Quit the current *Occur* buffer. Bury it, and maybe delete the selected frame"))
780 (define-key map [revert-buffer] 779 (bindings--define-key map [revert-buffer]
781 `(menu-item ,(purecopy "Revert Occur Buffer") revert-buffer 780 '(menu-item "Revert Occur Buffer" revert-buffer
782 :help ,(purecopy "Replace the text in the *Occur* buffer with the results of rerunning occur"))) 781 :help "Replace the text in the *Occur* buffer with the results of rerunning occur"))
783 (define-key map [clone-buffer] 782 (bindings--define-key map [clone-buffer]
784 `(menu-item ,(purecopy "Clone Occur Buffer") clone-buffer 783 '(menu-item "Clone Occur Buffer" clone-buffer
785 :help ,(purecopy "Create and return a twin copy of the current *Occur* buffer"))) 784 :help "Create and return a twin copy of the current *Occur* buffer"))
786 (define-key map [occur-rename-buffer] 785 (bindings--define-key map [occur-rename-buffer]
787 `(menu-item ,(purecopy "Rename Occur Buffer") occur-rename-buffer 786 '(menu-item "Rename Occur Buffer" occur-rename-buffer
788 :help ,(purecopy "Rename the current *Occur* buffer to *Occur: original-buffer-name*."))) 787 :help "Rename the current *Occur* buffer to *Occur: original-buffer-name*."))
789 (define-key map [occur-edit-buffer] 788 (bindings--define-key map [occur-edit-buffer]
790 `(menu-item ,(purecopy "Edit Occur Buffer") occur-edit-mode 789 '(menu-item "Edit Occur Buffer" occur-edit-mode
791 :help ,(purecopy "Edit the *Occur* buffer and apply changes to the original buffers."))) 790 :help "Edit the *Occur* buffer and apply changes to the original buffers."))
792 (define-key map [separator-2] menu-bar-separator) 791 (bindings--define-key map [separator-2] menu-bar-separator)
793 (define-key map [occur-mode-goto-occurrence-other-window] 792 (bindings--define-key map [occur-mode-goto-occurrence-other-window]
794 `(menu-item ,(purecopy "Go To Occurrence Other Window") occur-mode-goto-occurrence-other-window 793 '(menu-item "Go To Occurrence Other Window" occur-mode-goto-occurrence-other-window
795 :help ,(purecopy "Go to the occurrence the current line describes, in another window"))) 794 :help "Go to the occurrence the current line describes, in another window"))
796 (define-key map [occur-mode-goto-occurrence] 795 (bindings--define-key map [occur-mode-goto-occurrence]
797 `(menu-item ,(purecopy "Go To Occurrence") occur-mode-goto-occurrence 796 '(menu-item "Go To Occurrence" occur-mode-goto-occurrence
798 :help ,(purecopy "Go to the occurrence the current line describes"))) 797 :help "Go to the occurrence the current line describes"))
799 (define-key map [occur-mode-display-occurrence] 798 (bindings--define-key map [occur-mode-display-occurrence]
800 `(menu-item ,(purecopy "Display Occurrence") occur-mode-display-occurrence 799 '(menu-item "Display Occurrence" occur-mode-display-occurrence
801 :help ,(purecopy "Display in another window the occurrence the current line describes"))) 800 :help "Display in another window the occurrence the current line describes"))
802 (define-key map [occur-next] 801 (bindings--define-key map [occur-next]
803 `(menu-item ,(purecopy "Move to Next Match") occur-next 802 '(menu-item "Move to Next Match" occur-next
804 :help ,(purecopy "Move to the Nth (default 1) next match in an Occur mode buffer"))) 803 :help "Move to the Nth (default 1) next match in an Occur mode buffer"))
805 (define-key map [occur-prev] 804 (bindings--define-key map [occur-prev]
806 `(menu-item ,(purecopy "Move to Previous Match") occur-prev 805 '(menu-item "Move to Previous Match" occur-prev
807 :help ,(purecopy "Move to the Nth (default 1) previous match in an Occur mode buffer"))) 806 :help "Move to the Nth (default 1) previous match in an Occur mode buffer"))
808 map) 807 map)
809 "Menu keymap for `occur-mode'.") 808 "Menu keymap for `occur-mode'.")
810 809
@@ -822,7 +821,7 @@ a previously found match."
822 (define-key map "r" 'occur-rename-buffer) 821 (define-key map "r" 'occur-rename-buffer)
823 (define-key map "c" 'clone-buffer) 822 (define-key map "c" 'clone-buffer)
824 (define-key map "\C-c\C-f" 'next-error-follow-minor-mode) 823 (define-key map "\C-c\C-f" 'next-error-follow-minor-mode)
825 (define-key map [menu-bar occur] (cons (purecopy "Occur") occur-menu-map)) 824 (bindings--define-key map [menu-bar occur] (cons "Occur" occur-menu-map))
826 map) 825 map)
827 "Keymap for `occur-mode'.") 826 "Keymap for `occur-mode'.")
828 827
@@ -870,7 +869,7 @@ Alternatively, click \\[occur-mode-mouse-goto] on an item to go to it.
870 (define-key map "\C-c\C-c" 'occur-cease-edit) 869 (define-key map "\C-c\C-c" 'occur-cease-edit)
871 (define-key map "\C-o" 'occur-mode-display-occurrence) 870 (define-key map "\C-o" 'occur-mode-display-occurrence)
872 (define-key map "\C-c\C-f" 'next-error-follow-minor-mode) 871 (define-key map "\C-c\C-f" 'next-error-follow-minor-mode)
873 (define-key map [menu-bar occur] (cons (purecopy "Occur") occur-menu-map)) 872 (bindings--define-key map [menu-bar occur] (cons "Occur" occur-menu-map))
874 map) 873 map)
875 "Keymap for `occur-edit-mode'.") 874 "Keymap for `occur-edit-mode'.")
876 875
diff --git a/lisp/vc/vc-hooks.el b/lisp/vc/vc-hooks.el
index bba72177050..dff49c26e4e 100644
--- a/lisp/vc/vc-hooks.el
+++ b/lisp/vc/vc-hooks.el
@@ -947,66 +947,66 @@ current, and kill the buffer that visits the link."
947 (let ((map (make-sparse-keymap "Version Control"))) 947 (let ((map (make-sparse-keymap "Version Control")))
948 ;;(define-key map [show-files] 948 ;;(define-key map [show-files]
949 ;; '("Show Files under VC" . (vc-directory t))) 949 ;; '("Show Files under VC" . (vc-directory t)))
950 (define-key map [vc-retrieve-tag] 950 (bindings--define-key map [vc-retrieve-tag]
951 `(menu-item ,(purecopy "Retrieve Tag") vc-retrieve-tag 951 '(menu-item "Retrieve Tag" vc-retrieve-tag
952 :help ,(purecopy "Retrieve tagged version or branch"))) 952 :help "Retrieve tagged version or branch"))
953 (define-key map [vc-create-tag] 953 (bindings--define-key map [vc-create-tag]
954 `(menu-item ,(purecopy "Create Tag") vc-create-tag 954 '(menu-item "Create Tag" vc-create-tag
955 :help ,(purecopy "Create version tag"))) 955 :help "Create version tag"))
956 (define-key map [separator1] menu-bar-separator) 956 (bindings--define-key map [separator1] menu-bar-separator)
957 (define-key map [vc-annotate] 957 (bindings--define-key map [vc-annotate]
958 `(menu-item ,(purecopy "Annotate") vc-annotate 958 '(menu-item "Annotate" vc-annotate
959 :help ,(purecopy "Display the edit history of the current file using colors"))) 959 :help "Display the edit history of the current file using colors"))
960 (define-key map [vc-rename-file] 960 (bindings--define-key map [vc-rename-file]
961 `(menu-item ,(purecopy "Rename File") vc-rename-file 961 '(menu-item "Rename File" vc-rename-file
962 :help ,(purecopy "Rename file"))) 962 :help "Rename file"))
963 (define-key map [vc-revision-other-window] 963 (bindings--define-key map [vc-revision-other-window]
964 `(menu-item ,(purecopy "Show Other Version") vc-revision-other-window 964 '(menu-item "Show Other Version" vc-revision-other-window
965 :help ,(purecopy "Visit another version of the current file in another window"))) 965 :help "Visit another version of the current file in another window"))
966 (define-key map [vc-diff] 966 (bindings--define-key map [vc-diff]
967 `(menu-item ,(purecopy "Compare with Base Version") vc-diff 967 '(menu-item "Compare with Base Version" vc-diff
968 :help ,(purecopy "Compare file set with the base version"))) 968 :help "Compare file set with the base version"))
969 (define-key map [vc-root-diff] 969 (bindings--define-key map [vc-root-diff]
970 `(menu-item ,(purecopy "Compare Tree with Base Version") vc-root-diff 970 '(menu-item "Compare Tree with Base Version" vc-root-diff
971 :help ,(purecopy "Compare current tree with the base version"))) 971 :help "Compare current tree with the base version"))
972 (define-key map [vc-update-change-log] 972 (bindings--define-key map [vc-update-change-log]
973 `(menu-item ,(purecopy "Update ChangeLog") vc-update-change-log 973 '(menu-item "Update ChangeLog" vc-update-change-log
974 :help ,(purecopy "Find change log file and add entries from recent version control logs"))) 974 :help "Find change log file and add entries from recent version control logs"))
975 (define-key map [vc-log-out] 975 (bindings--define-key map [vc-log-out]
976 `(menu-item ,(purecopy "Show Outgoing Log") vc-log-outgoing 976 '(menu-item "Show Outgoing Log" vc-log-outgoing
977 :help ,(purecopy "Show a log of changes that will be sent with a push operation"))) 977 :help "Show a log of changes that will be sent with a push operation"))
978 (define-key map [vc-log-in] 978 (bindings--define-key map [vc-log-in]
979 `(menu-item ,(purecopy "Show Incoming Log") vc-log-incoming 979 '(menu-item "Show Incoming Log" vc-log-incoming
980 :help ,(purecopy "Show a log of changes that will be received with a pull operation"))) 980 :help "Show a log of changes that will be received with a pull operation"))
981 (define-key map [vc-print-log] 981 (bindings--define-key map [vc-print-log]
982 `(menu-item ,(purecopy "Show History") vc-print-log 982 '(menu-item "Show History" vc-print-log
983 :help ,(purecopy "List the change log of the current file set in a window"))) 983 :help "List the change log of the current file set in a window"))
984 (define-key map [vc-print-root-log] 984 (bindings--define-key map [vc-print-root-log]
985 `(menu-item ,(purecopy "Show Top of the Tree History ") vc-print-root-log 985 '(menu-item "Show Top of the Tree History " vc-print-root-log
986 :help ,(purecopy "List the change log for the current tree in a window"))) 986 :help "List the change log for the current tree in a window"))
987 (define-key map [separator2] menu-bar-separator) 987 (bindings--define-key map [separator2] menu-bar-separator)
988 (define-key map [vc-insert-header] 988 (bindings--define-key map [vc-insert-header]
989 `(menu-item ,(purecopy "Insert Header") vc-insert-headers 989 '(menu-item "Insert Header" vc-insert-headers
990 :help ,(purecopy "Insert headers into a file for use with a version control system. 990 :help "Insert headers into a file for use with a version control system.
991"))) 991"))
992 (define-key map [undo] 992 (bindings--define-key map [undo]
993 `(menu-item ,(purecopy "Undo Last Check-In") vc-rollback 993 '(menu-item "Undo Last Check-In" vc-rollback
994 :help ,(purecopy "Remove the most recent changeset committed to the repository"))) 994 :help "Remove the most recent changeset committed to the repository"))
995 (define-key map [vc-revert] 995 (bindings--define-key map [vc-revert]
996 `(menu-item ,(purecopy "Revert to Base Version") vc-revert 996 '(menu-item "Revert to Base Version" vc-revert
997 :help ,(purecopy "Revert working copies of the selected file set to their repository contents"))) 997 :help "Revert working copies of the selected file set to their repository contents"))
998 (define-key map [vc-update] 998 (bindings--define-key map [vc-update]
999 `(menu-item ,(purecopy "Update to Latest Version") vc-update 999 '(menu-item "Update to Latest Version" vc-update
1000 :help ,(purecopy "Update the current fileset's files to their tip revisions"))) 1000 :help "Update the current fileset's files to their tip revisions"))
1001 (define-key map [vc-next-action] 1001 (bindings--define-key map [vc-next-action]
1002 `(menu-item ,(purecopy "Check In/Out") vc-next-action 1002 '(menu-item "Check In/Out" vc-next-action
1003 :help ,(purecopy "Do the next logical version control operation on the current fileset"))) 1003 :help "Do the next logical version control operation on the current fileset"))
1004 (define-key map [vc-register] 1004 (bindings--define-key map [vc-register]
1005 `(menu-item ,(purecopy "Register") vc-register 1005 '(menu-item "Register" vc-register
1006 :help ,(purecopy "Register file set into a version control system"))) 1006 :help "Register file set into a version control system"))
1007 (define-key map [vc-dir] 1007 (bindings--define-key map [vc-dir]
1008 `(menu-item ,(purecopy "VC Dir") vc-dir 1008 '(menu-item "VC Dir" vc-dir
1009 :help ,(purecopy "Show the VC status of files in a directory"))) 1009 :help "Show the VC status of files in a directory"))
1010 map)) 1010 map))
1011 1011
1012(defalias 'vc-menu-map vc-menu-map) 1012(defalias 'vc-menu-map vc-menu-map)