diff options
| author | Paul Eggert | 2011-02-10 10:37:27 -0800 |
|---|---|---|
| committer | Paul Eggert | 2011-02-10 10:37:27 -0800 |
| commit | 2098fd549f4c8a00246324a35de6af8144f5b628 (patch) | |
| tree | 922d8e9f57dcf00a9be5e9144ee76f372e7aac57 | |
| parent | 90e04ea245917ca1d9856f1354c074991e99db7f (diff) | |
| parent | b016851cb127f91a7ffa5d8295e5f3d4fdd3222a (diff) | |
| download | emacs-2098fd549f4c8a00246324a35de6af8144f5b628.tar.gz emacs-2098fd549f4c8a00246324a35de6af8144f5b628.zip | |
Merge from mainline.
32 files changed, 2545 insertions, 2414 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 1a69d98f17e..c942f9c52ca 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,51 @@ | |||
| 1 | 2011-02-10 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | Move keymap initialization into declaration. | ||
| 4 | * textmodes/enriched.el (enriched-mode-map): | ||
| 5 | * textmodes/bib-mode.el (bib-mode-map): | ||
| 6 | * term/lk201.el (lk201-function-map): | ||
| 7 | * tar-mode.el (tar-mode-map): | ||
| 8 | * replace.el (occur-mode-map): | ||
| 9 | * progmodes/idlwave.el (idlwave-rinfo-mouse-map, idlwave-rinfo-map): | ||
| 10 | * progmodes/idlw-help.el (idlwave-help-mode-map): | ||
| 11 | * progmodes/gdb-mi.el (gdb-memory-format-menu, gdb-memory-unit-menu): | ||
| 12 | * play/solitaire.el (solitaire-mode-map): | ||
| 13 | * play/snake.el (snake-mode-map, snake-null-map): | ||
| 14 | * play/pong.el (pong-mode-map): | ||
| 15 | * play/handwrite.el (menu-bar-handwrite-map): | ||
| 16 | * play/gametree.el (gametree-mode-map): | ||
| 17 | * net/rcirc.el (rcirc-mode-map, rcirc-browse-url-map | ||
| 18 | (rcirc-multiline-minor-mode-map, rcirc-track-minor-mode-map): | ||
| 19 | * net/newst-plainview.el (newsticker-menu, newsticker-mode-map) | ||
| 20 | (newsticker--url-keymap): | ||
| 21 | * net/net-utils.el (nslookup-mode-map, ftp-mode-map): | ||
| 22 | * menu-bar.el (menu-bar-file-menu, menu-bar-i-search-menu) | ||
| 23 | (menu-bar-search-menu, menu-bar-replace-menu, menu-bar-goto-menu) | ||
| 24 | (menu-bar-edit-menu, menu-bar-custom-menu) | ||
| 25 | (menu-bar-showhide-fringe-ind-menu, menu-bar-showhide-fringe-menu) | ||
| 26 | (menu-bar-showhide-scroll-bar-menu, menu-bar-showhide-menu) | ||
| 27 | (menu-bar-line-wrapping-menu, menu-bar-options-menu) | ||
| 28 | (menu-bar-games-menu, menu-bar-encryption-decryption-menu) | ||
| 29 | (menu-bar-tools-menu, menu-bar-describe-menu) | ||
| 30 | (menu-bar-search-documentation-menu, menu-bar-manuals-menu) | ||
| 31 | (menu-bar-help-menu): | ||
| 32 | * mail/rmailsum.el (rmail-summary-mode-map): | ||
| 33 | * kmacro.el (kmacro-step-edit-map): | ||
| 34 | * ibuffer.el (ibuffer-mode-groups-popup, ibuffer-mode-map) | ||
| 35 | (ibuffer-mode-operate-map): | ||
| 36 | * hi-lock.el (hi-lock-menu, hi-lock-map): | ||
| 37 | * emulation/vip.el (vip-mode-map): | ||
| 38 | * emacs-lisp/re-builder.el (reb-lisp-mode-map): | ||
| 39 | * bookmark.el (bookmark-bmenu-mode-map): | ||
| 40 | * help-mode.el (help-mode-map): Move initialization into declaration. | ||
| 41 | |||
| 42 | 2011-02-10 Deniz Dogan <deniz.a.m.dogan@gmail.com> | ||
| 43 | |||
| 44 | * net/rcirc.el: Add PRIVMSG and CTCP functions. | ||
| 45 | (rcirc-send-privmsg, rcirc-send-ctcp): New functions. | ||
| 46 | (rcirc-keepalive, rcirc-cmd-ctcp, rcirc-ctcp-sender-PING) | ||
| 47 | (rcirc-cmd-me, rcirc-authenticate): Use them. | ||
| 48 | |||
| 1 | 2011-02-10 Ken Manheimer <ken.manheimer@gmail.com> | 49 | 2011-02-10 Ken Manheimer <ken.manheimer@gmail.com> |
| 2 | 50 | ||
| 3 | * allout.el: Synopsis: Change allout user configuration so | 51 | * allout.el: Synopsis: Change allout user configuration so |
| @@ -63,8 +111,7 @@ | |||
| 63 | 111 | ||
| 64 | 2011-02-07 Michael Albinus <michael.albinus@gmx.de> | 112 | 2011-02-07 Michael Albinus <michael.albinus@gmx.de> |
| 65 | 113 | ||
| 66 | * net/dbus.el (dbus-list-activatable-names): Add optional argument | 114 | * net/dbus.el (dbus-list-activatable-names): Add optional argument BUS. |
| 67 | BUS. | ||
| 68 | 115 | ||
| 69 | 2011-02-07 Deniz Dogan <deniz.a.m.dogan@gmail.com> | 116 | 2011-02-07 Deniz Dogan <deniz.a.m.dogan@gmail.com> |
| 70 | 117 | ||
| @@ -72,21 +119,21 @@ | |||
| 72 | 119 | ||
| 73 | 2011-02-06 Jay Belanger <jay.p.belanger@gmail.com> | 120 | 2011-02-06 Jay Belanger <jay.p.belanger@gmail.com> |
| 74 | 121 | ||
| 75 | * calc/calc.el (calc-logunits-field-reference) Renamed from | 122 | * calc/calc.el (calc-logunits-field-reference): Rename from |
| 76 | `calc-default-field-reference-level'. | 123 | `calc-default-field-reference-level'. |
| 77 | (calc-logunits-power-reference): Renamed from | 124 | (calc-logunits-power-reference): Rename from |
| 78 | `calc-default-power-reference-level' | 125 | `calc-default-power-reference-level' |
| 79 | 126 | ||
| 80 | * calc/calc-units.el (math-logunits-quant): Renamed from | 127 | * calc/calc-units.el (math-logunits-quant): Rename from |
| 81 | `math-logunits-level' | 128 | `math-logunits-level' |
| 82 | (math-logunits-plus): Renamed from math-logcombine. | 129 | (math-logunits-plus): Rename from math-logcombine. |
| 83 | (calcFunc-luplus, calcFunc-luminus calc-luplus, calc-luminus): Remove. | 130 | (calcFunc-luplus, calcFunc-luminus calc-luplus, calc-luminus): Remove. |
| 84 | (calcFunc-lufieldadd, calcFunc-lupoweradd, calcFunc-lufieldsub) | 131 | (calcFunc-lufieldadd, calcFunc-lupoweradd, calcFunc-lufieldsub) |
| 85 | (calcFunc-lufieldsub,calc-logunits-add calc-logunits-sub): | 132 | (calcFunc-lufieldsub,calc-logunits-add calc-logunits-sub): |
| 86 | New functions. | 133 | New functions. |
| 87 | (calcFunc-fieldquant): Renamed from `calcFunc-fieldlevel'. | 134 | (calcFunc-fieldquant): Rename from `calcFunc-fieldlevel'. |
| 88 | (calcFunc-powerquant): Renamed from `calcFunc-powerlevel'. | 135 | (calcFunc-powerquant): Rename from `calcFunc-powerlevel'. |
| 89 | (calc-logunits-quantity): Renamed from `calc-level'. | 136 | (calc-logunits-quantity): Rename from `calc-level'. |
| 90 | (calcFunc-dbfieldlevel, calcFunc-dbpowerlevel, calcFunc-npfieldlevel) | 137 | (calcFunc-dbfieldlevel, calcFunc-dbpowerlevel, calcFunc-npfieldlevel) |
| 91 | (calcFunc-nppowerlevel,calc-logunits-dblevel, calc-logunits-nplevel) | 138 | (calcFunc-nppowerlevel,calc-logunits-dblevel, calc-logunits-nplevel) |
| 92 | (math-logunits-mul, calcFunc-lufieldmul, calcFunc-lupowermul) | 139 | (math-logunits-mul, calcFunc-lufieldmul, calcFunc-lupowermul) |
| @@ -94,7 +141,7 @@ | |||
| 94 | (calcFunc-lupowerdiv,calc-logunits-divide,math-logunits-level): | 141 | (calcFunc-lupowerdiv,calc-logunits-divide,math-logunits-level): |
| 95 | New functions. | 142 | New functions. |
| 96 | 143 | ||
| 97 | * calc/calc-help.el (calc-u-prefix-help): Removed "L" reference. | 144 | * calc/calc-help.el (calc-u-prefix-help): Remove "L" reference. |
| 98 | (calc-ul-prefix-help): Remove. | 145 | (calc-ul-prefix-help): Remove. |
| 99 | (calc-l-prefix-help): New function. | 146 | (calc-l-prefix-help): New function. |
| 100 | (calc-full-help): Add reference to `calc-l-prefix-help'. | 147 | (calc-full-help): Add reference to `calc-l-prefix-help'. |
diff --git a/lisp/bookmark.el b/lisp/bookmark.el index 503264f4b32..cd946e46be9 100644 --- a/lisp/bookmark.el +++ b/lisp/bookmark.el | |||
| @@ -1473,6 +1473,43 @@ method buffers use to resolve name collisions." | |||
| 1473 | (defvar bookmark-bmenu-hidden-bookmarks ()) | 1473 | (defvar bookmark-bmenu-hidden-bookmarks ()) |
| 1474 | 1474 | ||
| 1475 | 1475 | ||
| 1476 | (defvar bookmark-bmenu-mode-map | ||
| 1477 | (let ((map (make-keymap))) | ||
| 1478 | (set-keymap-parent map special-mode-map) | ||
| 1479 | (define-key map "v" 'bookmark-bmenu-select) | ||
| 1480 | (define-key map "w" 'bookmark-bmenu-locate) | ||
| 1481 | (define-key map "2" 'bookmark-bmenu-2-window) | ||
| 1482 | (define-key map "1" 'bookmark-bmenu-1-window) | ||
| 1483 | (define-key map "j" 'bookmark-bmenu-this-window) | ||
| 1484 | (define-key map "\C-c\C-c" 'bookmark-bmenu-this-window) | ||
| 1485 | (define-key map "f" 'bookmark-bmenu-this-window) | ||
| 1486 | (define-key map "\C-m" 'bookmark-bmenu-this-window) | ||
| 1487 | (define-key map "o" 'bookmark-bmenu-other-window) | ||
| 1488 | (define-key map "\C-o" 'bookmark-bmenu-switch-other-window) | ||
| 1489 | (define-key map "s" 'bookmark-bmenu-save) | ||
| 1490 | (define-key map "k" 'bookmark-bmenu-delete) | ||
| 1491 | (define-key map "\C-d" 'bookmark-bmenu-delete-backwards) | ||
| 1492 | (define-key map "x" 'bookmark-bmenu-execute-deletions) | ||
| 1493 | (define-key map "d" 'bookmark-bmenu-delete) | ||
| 1494 | (define-key map " " 'next-line) | ||
| 1495 | (define-key map "n" 'next-line) | ||
| 1496 | (define-key map "p" 'previous-line) | ||
| 1497 | (define-key map "\177" 'bookmark-bmenu-backup-unmark) | ||
| 1498 | (define-key map "u" 'bookmark-bmenu-unmark) | ||
| 1499 | (define-key map "m" 'bookmark-bmenu-mark) | ||
| 1500 | (define-key map "l" 'bookmark-bmenu-load) | ||
| 1501 | (define-key map "r" 'bookmark-bmenu-rename) | ||
| 1502 | (define-key map "R" 'bookmark-bmenu-relocate) | ||
| 1503 | (define-key map "t" 'bookmark-bmenu-toggle-filenames) | ||
| 1504 | (define-key map "a" 'bookmark-bmenu-show-annotation) | ||
| 1505 | (define-key map "A" 'bookmark-bmenu-show-all-annotations) | ||
| 1506 | (define-key map "e" 'bookmark-bmenu-edit-annotation) | ||
| 1507 | ;; The original binding of M-g hides the M-g prefix map. | ||
| 1508 | ;; If someone has a better idea than M-g s, I'm open to suggestions. | ||
| 1509 | (define-key map [?\M-g ?s] 'bookmark-bmenu-search) | ||
| 1510 | (define-key map [mouse-2] 'bookmark-bmenu-other-window-with-mouse) | ||
| 1511 | map)) | ||
| 1512 | |||
| 1476 | ;; Bookmark Buffer Menu mode is suitable only for specially formatted | 1513 | ;; Bookmark Buffer Menu mode is suitable only for specially formatted |
| 1477 | ;; data. | 1514 | ;; data. |
| 1478 | (put 'bookmark-bmenu-mode 'mode-class 'special) | 1515 | (put 'bookmark-bmenu-mode 'mode-class 'special) |
| @@ -1583,39 +1620,6 @@ Bookmark names preceded by a \"*\" have annotations. | |||
| 1583 | (setq truncate-lines t) | 1620 | (setq truncate-lines t) |
| 1584 | (setq buffer-read-only t)) | 1621 | (setq buffer-read-only t)) |
| 1585 | 1622 | ||
| 1586 | (define-key bookmark-bmenu-mode-map "q" 'quit-window) | ||
| 1587 | (define-key bookmark-bmenu-mode-map "v" 'bookmark-bmenu-select) | ||
| 1588 | (define-key bookmark-bmenu-mode-map "w" 'bookmark-bmenu-locate) | ||
| 1589 | (define-key bookmark-bmenu-mode-map "2" 'bookmark-bmenu-2-window) | ||
| 1590 | (define-key bookmark-bmenu-mode-map "1" 'bookmark-bmenu-1-window) | ||
| 1591 | (define-key bookmark-bmenu-mode-map "j" 'bookmark-bmenu-this-window) | ||
| 1592 | (define-key bookmark-bmenu-mode-map "\C-c\C-c" 'bookmark-bmenu-this-window) | ||
| 1593 | (define-key bookmark-bmenu-mode-map "f" 'bookmark-bmenu-this-window) | ||
| 1594 | (define-key bookmark-bmenu-mode-map "\C-m" 'bookmark-bmenu-this-window) | ||
| 1595 | (define-key bookmark-bmenu-mode-map "o" 'bookmark-bmenu-other-window) | ||
| 1596 | (define-key bookmark-bmenu-mode-map "\C-o" 'bookmark-bmenu-switch-other-window) | ||
| 1597 | (define-key bookmark-bmenu-mode-map "s" 'bookmark-bmenu-save) | ||
| 1598 | (define-key bookmark-bmenu-mode-map "k" 'bookmark-bmenu-delete) | ||
| 1599 | (define-key bookmark-bmenu-mode-map "\C-d" 'bookmark-bmenu-delete-backwards) | ||
| 1600 | (define-key bookmark-bmenu-mode-map "x" 'bookmark-bmenu-execute-deletions) | ||
| 1601 | (define-key bookmark-bmenu-mode-map "d" 'bookmark-bmenu-delete) | ||
| 1602 | (define-key bookmark-bmenu-mode-map " " 'next-line) | ||
| 1603 | (define-key bookmark-bmenu-mode-map "n" 'next-line) | ||
| 1604 | (define-key bookmark-bmenu-mode-map "p" 'previous-line) | ||
| 1605 | (define-key bookmark-bmenu-mode-map "\177" 'bookmark-bmenu-backup-unmark) | ||
| 1606 | (define-key bookmark-bmenu-mode-map "?" 'describe-mode) | ||
| 1607 | (define-key bookmark-bmenu-mode-map "u" 'bookmark-bmenu-unmark) | ||
| 1608 | (define-key bookmark-bmenu-mode-map "m" 'bookmark-bmenu-mark) | ||
| 1609 | (define-key bookmark-bmenu-mode-map "l" 'bookmark-bmenu-load) | ||
| 1610 | (define-key bookmark-bmenu-mode-map "r" 'bookmark-bmenu-rename) | ||
| 1611 | (define-key bookmark-bmenu-mode-map "R" 'bookmark-bmenu-relocate) | ||
| 1612 | (define-key bookmark-bmenu-mode-map "t" 'bookmark-bmenu-toggle-filenames) | ||
| 1613 | (define-key bookmark-bmenu-mode-map "a" 'bookmark-bmenu-show-annotation) | ||
| 1614 | (define-key bookmark-bmenu-mode-map "A" 'bookmark-bmenu-show-all-annotations) | ||
| 1615 | (define-key bookmark-bmenu-mode-map "e" 'bookmark-bmenu-edit-annotation) | ||
| 1616 | ;; The original binding of M-g hides the M-g prefix map. | ||
| 1617 | ;; If someone has a better idea than M-g s, I'm open to suggestions. | ||
| 1618 | (define-key bookmark-bmenu-mode-map [?\M-g ?s] 'bookmark-bmenu-search)(define-key bookmark-bmenu-mode-map [mouse-2] 'bookmark-bmenu-other-window-with-mouse) | ||
| 1619 | 1623 | ||
| 1620 | (defun bookmark-bmenu-toggle-filenames (&optional show) | 1624 | (defun bookmark-bmenu-toggle-filenames (&optional show) |
| 1621 | "Toggle whether filenames are shown in the bookmark list. | 1625 | "Toggle whether filenames are shown in the bookmark list. |
diff --git a/lisp/emacs-lisp/re-builder.el b/lisp/emacs-lisp/re-builder.el index e3c030b3c60..59a30d62b02 100644 --- a/lisp/emacs-lisp/re-builder.el +++ b/lisp/emacs-lisp/re-builder.el | |||
| @@ -275,6 +275,13 @@ Except for Lisp syntax this is the same as `reb-regexp'.") | |||
| 275 | (set (make-local-variable 'blink-matching-paren) nil) | 275 | (set (make-local-variable 'blink-matching-paren) nil) |
| 276 | (reb-mode-common)) | 276 | (reb-mode-common)) |
| 277 | 277 | ||
| 278 | (defvar reb-lisp-mode-map | ||
| 279 | (let ((map (make-sparse-keymap))) | ||
| 280 | ;; Use the same "\C-c" keymap as `reb-mode' and use font-locking from | ||
| 281 | ;; `emacs-lisp-mode' | ||
| 282 | (define-key map "\C-c" (lookup-key reb-mode-map "\C-c")) | ||
| 283 | map)) | ||
| 284 | |||
| 278 | (define-derived-mode reb-lisp-mode | 285 | (define-derived-mode reb-lisp-mode |
| 279 | emacs-lisp-mode "RE Builder Lisp" | 286 | emacs-lisp-mode "RE Builder Lisp" |
| 280 | "Major mode for interactively building symbolic Regular Expressions." | 287 | "Major mode for interactively building symbolic Regular Expressions." |
| @@ -283,11 +290,6 @@ Except for Lisp syntax this is the same as `reb-regexp'.") | |||
| 283 | (require 'rx))) ; require rx anyway | 290 | (require 'rx))) ; require rx anyway |
| 284 | (reb-mode-common)) | 291 | (reb-mode-common)) |
| 285 | 292 | ||
| 286 | ;; Use the same "\C-c" keymap as `reb-mode' and use font-locking from | ||
| 287 | ;; `emacs-lisp-mode' | ||
| 288 | (define-key reb-lisp-mode-map "\C-c" | ||
| 289 | (lookup-key reb-mode-map "\C-c")) | ||
| 290 | |||
| 291 | (defvar reb-subexp-mode-map | 293 | (defvar reb-subexp-mode-map |
| 292 | (let ((m (make-keymap))) | 294 | (let ((m (make-keymap))) |
| 293 | (suppress-keymap m) | 295 | (suppress-keymap m) |
diff --git a/lisp/emulation/vip.el b/lisp/emulation/vip.el index 328fbac9033..6f4f0ce80ec 100644 --- a/lisp/emulation/vip.el +++ b/lisp/emulation/vip.el | |||
| @@ -164,132 +164,133 @@ If nil then it is bound to `delete-backward-char'." | |||
| 164 | 164 | ||
| 165 | ;; key bindings | 165 | ;; key bindings |
| 166 | 166 | ||
| 167 | (defvar vip-mode-map (make-keymap)) | 167 | (defvar vip-mode-map |
| 168 | 168 | (let ((map (make-keymap))) | |
| 169 | (define-key vip-mode-map "\C-a" 'beginning-of-line) | 169 | (define-key map "\C-a" 'beginning-of-line) |
| 170 | (define-key vip-mode-map "\C-b" 'vip-scroll-back) | 170 | (define-key map "\C-b" 'vip-scroll-back) |
| 171 | (define-key vip-mode-map "\C-c" 'vip-ctl-c) | 171 | (define-key map "\C-c" 'vip-ctl-c) |
| 172 | (define-key vip-mode-map "\C-d" 'vip-scroll-up) | 172 | (define-key map "\C-d" 'vip-scroll-up) |
| 173 | (define-key vip-mode-map "\C-e" 'vip-scroll-up-one) | 173 | (define-key map "\C-e" 'vip-scroll-up-one) |
| 174 | (define-key vip-mode-map "\C-f" 'vip-scroll) | 174 | (define-key map "\C-f" 'vip-scroll) |
| 175 | (define-key vip-mode-map "\C-g" 'vip-keyboard-quit) | 175 | (define-key map "\C-g" 'vip-keyboard-quit) |
| 176 | (define-key vip-mode-map "\C-h" 'help-command) | 176 | (define-key map "\C-h" 'help-command) |
| 177 | (define-key vip-mode-map "\C-m" 'vip-scroll-back) | 177 | (define-key map "\C-m" 'vip-scroll-back) |
| 178 | (define-key vip-mode-map "\C-n" 'vip-other-window) | 178 | (define-key map "\C-n" 'vip-other-window) |
| 179 | (define-key vip-mode-map "\C-o" 'vip-open-line-at-point) | 179 | (define-key map "\C-o" 'vip-open-line-at-point) |
| 180 | (define-key vip-mode-map "\C-u" 'vip-scroll-down) | 180 | (define-key map "\C-u" 'vip-scroll-down) |
| 181 | (define-key vip-mode-map "\C-x" 'vip-ctl-x) | 181 | (define-key map "\C-x" 'vip-ctl-x) |
| 182 | (define-key vip-mode-map "\C-y" 'vip-scroll-down-one) | 182 | (define-key map "\C-y" 'vip-scroll-down-one) |
| 183 | (define-key vip-mode-map "\C-z" 'vip-change-mode-to-emacs) | 183 | (define-key map "\C-z" 'vip-change-mode-to-emacs) |
| 184 | (define-key vip-mode-map "\e" 'vip-ESC) | 184 | (define-key map "\e" 'vip-ESC) |
| 185 | 185 | ||
| 186 | (define-key vip-mode-map " " 'vip-scroll) | 186 | (define-key map " " 'vip-scroll) |
| 187 | (define-key vip-mode-map "!" 'vip-command-argument) | 187 | (define-key map "!" 'vip-command-argument) |
| 188 | (define-key vip-mode-map "\"" 'vip-command-argument) | 188 | (define-key map "\"" 'vip-command-argument) |
| 189 | (define-key vip-mode-map "#" 'vip-command-argument) | 189 | (define-key map "#" 'vip-command-argument) |
| 190 | (define-key vip-mode-map "$" 'vip-goto-eol) | 190 | (define-key map "$" 'vip-goto-eol) |
| 191 | (define-key vip-mode-map "%" 'vip-paren-match) | 191 | (define-key map "%" 'vip-paren-match) |
| 192 | (define-key vip-mode-map "&" 'vip-nil) | 192 | (define-key map "&" 'vip-nil) |
| 193 | (define-key vip-mode-map "'" 'vip-goto-mark-and-skip-white) | 193 | (define-key map "'" 'vip-goto-mark-and-skip-white) |
| 194 | (define-key vip-mode-map "(" 'vip-backward-sentence) | 194 | (define-key map "(" 'vip-backward-sentence) |
| 195 | (define-key vip-mode-map ")" 'vip-forward-sentence) | 195 | (define-key map ")" 'vip-forward-sentence) |
| 196 | (define-key vip-mode-map "*" 'call-last-kbd-macro) | 196 | (define-key map "*" 'call-last-kbd-macro) |
| 197 | (define-key vip-mode-map "+" 'vip-next-line-at-bol) | 197 | (define-key map "+" 'vip-next-line-at-bol) |
| 198 | (define-key vip-mode-map "," 'vip-repeat-find-opposite) | 198 | (define-key map "," 'vip-repeat-find-opposite) |
| 199 | (define-key vip-mode-map "-" 'vip-previous-line-at-bol) | 199 | (define-key map "-" 'vip-previous-line-at-bol) |
| 200 | (define-key vip-mode-map "." 'vip-repeat) | 200 | (define-key map "." 'vip-repeat) |
| 201 | (define-key vip-mode-map "/" 'vip-search-forward) | 201 | (define-key map "/" 'vip-search-forward) |
| 202 | 202 | ||
| 203 | (define-key vip-mode-map "0" 'vip-beginning-of-line) | 203 | (define-key map "0" 'vip-beginning-of-line) |
| 204 | (define-key vip-mode-map "1" 'vip-digit-argument) | 204 | (define-key map "1" 'vip-digit-argument) |
| 205 | (define-key vip-mode-map "2" 'vip-digit-argument) | 205 | (define-key map "2" 'vip-digit-argument) |
| 206 | (define-key vip-mode-map "3" 'vip-digit-argument) | 206 | (define-key map "3" 'vip-digit-argument) |
| 207 | (define-key vip-mode-map "4" 'vip-digit-argument) | 207 | (define-key map "4" 'vip-digit-argument) |
| 208 | (define-key vip-mode-map "5" 'vip-digit-argument) | 208 | (define-key map "5" 'vip-digit-argument) |
| 209 | (define-key vip-mode-map "6" 'vip-digit-argument) | 209 | (define-key map "6" 'vip-digit-argument) |
| 210 | (define-key vip-mode-map "7" 'vip-digit-argument) | 210 | (define-key map "7" 'vip-digit-argument) |
| 211 | (define-key vip-mode-map "8" 'vip-digit-argument) | 211 | (define-key map "8" 'vip-digit-argument) |
| 212 | (define-key vip-mode-map "9" 'vip-digit-argument) | 212 | (define-key map "9" 'vip-digit-argument) |
| 213 | 213 | ||
| 214 | (define-key vip-mode-map ":" 'vip-ex) | 214 | (define-key map ":" 'vip-ex) |
| 215 | (define-key vip-mode-map ";" 'vip-repeat-find) | 215 | (define-key map ";" 'vip-repeat-find) |
| 216 | (define-key vip-mode-map "<" 'vip-command-argument) | 216 | (define-key map "<" 'vip-command-argument) |
| 217 | (define-key vip-mode-map "=" 'vip-command-argument) | 217 | (define-key map "=" 'vip-command-argument) |
| 218 | (define-key vip-mode-map ">" 'vip-command-argument) | 218 | (define-key map ">" 'vip-command-argument) |
| 219 | (define-key vip-mode-map "?" 'vip-search-backward) | 219 | (define-key map "?" 'vip-search-backward) |
| 220 | (define-key vip-mode-map "@" 'vip-nil) | 220 | (define-key map "@" 'vip-nil) |
| 221 | 221 | ||
| 222 | (define-key vip-mode-map "A" 'vip-Append) | 222 | (define-key map "A" 'vip-Append) |
| 223 | (define-key vip-mode-map "B" 'vip-backward-Word) | 223 | (define-key map "B" 'vip-backward-Word) |
| 224 | (define-key vip-mode-map "C" 'vip-ctl-c-equivalent) | 224 | (define-key map "C" 'vip-ctl-c-equivalent) |
| 225 | (define-key vip-mode-map "D" 'vip-kill-line) | 225 | (define-key map "D" 'vip-kill-line) |
| 226 | (define-key vip-mode-map "E" 'vip-end-of-Word) | 226 | (define-key map "E" 'vip-end-of-Word) |
| 227 | (define-key vip-mode-map "F" 'vip-find-char-backward) | 227 | (define-key map "F" 'vip-find-char-backward) |
| 228 | (define-key vip-mode-map "G" 'vip-goto-line) | 228 | (define-key map "G" 'vip-goto-line) |
| 229 | (define-key vip-mode-map "H" 'vip-window-top) | 229 | (define-key map "H" 'vip-window-top) |
| 230 | (define-key vip-mode-map "I" 'vip-Insert) | 230 | (define-key map "I" 'vip-Insert) |
| 231 | (define-key vip-mode-map "J" 'vip-join-lines) | 231 | (define-key map "J" 'vip-join-lines) |
| 232 | (define-key vip-mode-map "K" 'vip-kill-buffer) | 232 | (define-key map "K" 'vip-kill-buffer) |
| 233 | (define-key vip-mode-map "L" 'vip-window-bottom) | 233 | (define-key map "L" 'vip-window-bottom) |
| 234 | (define-key vip-mode-map "M" 'vip-window-middle) | 234 | (define-key map "M" 'vip-window-middle) |
| 235 | (define-key vip-mode-map "N" 'vip-search-Next) | 235 | (define-key map "N" 'vip-search-Next) |
| 236 | (define-key vip-mode-map "O" 'vip-Open-line) | 236 | (define-key map "O" 'vip-Open-line) |
| 237 | (define-key vip-mode-map "P" 'vip-Put-back) | 237 | (define-key map "P" 'vip-Put-back) |
| 238 | (define-key vip-mode-map "Q" 'vip-query-replace) | 238 | (define-key map "Q" 'vip-query-replace) |
| 239 | (define-key vip-mode-map "R" 'vip-replace-string) | 239 | (define-key map "R" 'vip-replace-string) |
| 240 | (define-key vip-mode-map "S" 'vip-switch-to-buffer-other-window) | 240 | (define-key map "S" 'vip-switch-to-buffer-other-window) |
| 241 | (define-key vip-mode-map "T" 'vip-goto-char-backward) | 241 | (define-key map "T" 'vip-goto-char-backward) |
| 242 | (define-key vip-mode-map "U" 'vip-nil) | 242 | (define-key map "U" 'vip-nil) |
| 243 | (define-key vip-mode-map "V" 'vip-find-file-other-window) | 243 | (define-key map "V" 'vip-find-file-other-window) |
| 244 | (define-key vip-mode-map "W" 'vip-forward-Word) | 244 | (define-key map "W" 'vip-forward-Word) |
| 245 | (define-key vip-mode-map "X" 'vip-ctl-x-equivalent) | 245 | (define-key map "X" 'vip-ctl-x-equivalent) |
| 246 | (define-key vip-mode-map "Y" 'vip-yank-line) | 246 | (define-key map "Y" 'vip-yank-line) |
| 247 | (define-key vip-mode-map "ZZ" 'save-buffers-kill-emacs) | 247 | (define-key map "ZZ" 'save-buffers-kill-emacs) |
| 248 | 248 | ||
| 249 | (define-key vip-mode-map "[" 'vip-nil) | 249 | (define-key map "[" 'vip-nil) |
| 250 | (define-key vip-mode-map "\\" 'vip-escape-to-emacs) | 250 | (define-key map "\\" 'vip-escape-to-emacs) |
| 251 | (define-key vip-mode-map "]" 'vip-nil) | 251 | (define-key map "]" 'vip-nil) |
| 252 | (define-key vip-mode-map "^" 'vip-bol-and-skip-white) | 252 | (define-key map "^" 'vip-bol-and-skip-white) |
| 253 | (define-key vip-mode-map "_" 'vip-nil) | 253 | (define-key map "_" 'vip-nil) |
| 254 | (define-key vip-mode-map "`" 'vip-goto-mark) | 254 | (define-key map "`" 'vip-goto-mark) |
| 255 | 255 | ||
| 256 | (define-key vip-mode-map "a" 'vip-append) | 256 | (define-key map "a" 'vip-append) |
| 257 | (define-key vip-mode-map "b" 'vip-backward-word) | 257 | (define-key map "b" 'vip-backward-word) |
| 258 | (define-key vip-mode-map "c" 'vip-command-argument) | 258 | (define-key map "c" 'vip-command-argument) |
| 259 | (define-key vip-mode-map "d" 'vip-command-argument) | 259 | (define-key map "d" 'vip-command-argument) |
| 260 | (define-key vip-mode-map "e" 'vip-end-of-word) | 260 | (define-key map "e" 'vip-end-of-word) |
| 261 | (define-key vip-mode-map "f" 'vip-find-char-forward) | 261 | (define-key map "f" 'vip-find-char-forward) |
| 262 | (define-key vip-mode-map "g" 'vip-info-on-file) | 262 | (define-key map "g" 'vip-info-on-file) |
| 263 | (define-key vip-mode-map "h" 'vip-backward-char) | 263 | (define-key map "h" 'vip-backward-char) |
| 264 | (define-key vip-mode-map "i" 'vip-insert) | 264 | (define-key map "i" 'vip-insert) |
| 265 | (define-key vip-mode-map "j" 'vip-next-line) | 265 | (define-key map "j" 'vip-next-line) |
| 266 | (define-key vip-mode-map "k" 'vip-previous-line) | 266 | (define-key map "k" 'vip-previous-line) |
| 267 | (define-key vip-mode-map "l" 'vip-forward-char) | 267 | (define-key map "l" 'vip-forward-char) |
| 268 | (define-key vip-mode-map "m" 'vip-mark-point) | 268 | (define-key map "m" 'vip-mark-point) |
| 269 | (define-key vip-mode-map "n" 'vip-search-next) | 269 | (define-key map "n" 'vip-search-next) |
| 270 | (define-key vip-mode-map "o" 'vip-open-line) | 270 | (define-key map "o" 'vip-open-line) |
| 271 | (define-key vip-mode-map "p" 'vip-put-back) | 271 | (define-key map "p" 'vip-put-back) |
| 272 | (define-key vip-mode-map "q" 'vip-nil) | 272 | (define-key map "q" 'vip-nil) |
| 273 | (define-key vip-mode-map "r" 'vip-replace-char) | 273 | (define-key map "r" 'vip-replace-char) |
| 274 | (define-key vip-mode-map "s" 'vip-switch-to-buffer) | 274 | (define-key map "s" 'vip-switch-to-buffer) |
| 275 | (define-key vip-mode-map "t" 'vip-goto-char-forward) | 275 | (define-key map "t" 'vip-goto-char-forward) |
| 276 | (define-key vip-mode-map "u" 'vip-undo) | 276 | (define-key map "u" 'vip-undo) |
| 277 | (define-key vip-mode-map "v" 'vip-find-file) | 277 | (define-key map "v" 'vip-find-file) |
| 278 | (define-key vip-mode-map "w" 'vip-forward-word) | 278 | (define-key map "w" 'vip-forward-word) |
| 279 | (define-key vip-mode-map "x" 'vip-delete-char) | 279 | (define-key map "x" 'vip-delete-char) |
| 280 | (define-key vip-mode-map "y" 'vip-command-argument) | 280 | (define-key map "y" 'vip-command-argument) |
| 281 | (define-key vip-mode-map "zH" 'vip-line-to-top) | 281 | (define-key map "zH" 'vip-line-to-top) |
| 282 | (define-key vip-mode-map "zM" 'vip-line-to-middle) | 282 | (define-key map "zM" 'vip-line-to-middle) |
| 283 | (define-key vip-mode-map "zL" 'vip-line-to-bottom) | 283 | (define-key map "zL" 'vip-line-to-bottom) |
| 284 | (define-key vip-mode-map "z\C-m" 'vip-line-to-top) | 284 | (define-key map "z\C-m" 'vip-line-to-top) |
| 285 | (define-key vip-mode-map "z." 'vip-line-to-middle) | 285 | (define-key map "z." 'vip-line-to-middle) |
| 286 | (define-key vip-mode-map "z-" 'vip-line-to-bottom) | 286 | (define-key map "z-" 'vip-line-to-bottom) |
| 287 | 287 | ||
| 288 | (define-key vip-mode-map "{" 'vip-backward-paragraph) | 288 | (define-key map "{" 'vip-backward-paragraph) |
| 289 | (define-key vip-mode-map "|" 'vip-goto-col) | 289 | (define-key map "|" 'vip-goto-col) |
| 290 | (define-key vip-mode-map "}" 'vip-forward-paragraph) | 290 | (define-key map "}" 'vip-forward-paragraph) |
| 291 | (define-key vip-mode-map "~" 'vip-nil) | 291 | (define-key map "~" 'vip-nil) |
| 292 | (define-key vip-mode-map "\177" 'vip-delete-backward-char) | 292 | (define-key map "\177" 'vip-delete-backward-char) |
| 293 | map)) | ||
| 293 | 294 | ||
| 294 | (defun vip-version () | 295 | (defun vip-version () |
| 295 | (interactive) | 296 | (interactive) |
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog index b7cf79cc3cb..2996fee9bcb 100644 --- a/lisp/erc/ChangeLog +++ b/lisp/erc/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2011-02-10 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * erc-list.el (erc-list-menu-mode-map): Move initialization | ||
| 4 | into declaration. | ||
| 5 | |||
| 1 | 2011-02-07 Julien Danjou <julien@danjou.info> | 6 | 2011-02-07 Julien Danjou <julien@danjou.info> |
| 2 | 7 | ||
| 3 | * erc-track.el (erc-window-configuration-change): New function. | 8 | * erc-track.el (erc-window-configuration-change): New function. |
diff --git a/lisp/erc/erc-list.el b/lisp/erc/erc-list.el index ae579dba3bd..b8eb5a4aa19 100644 --- a/lisp/erc/erc-list.el +++ b/lisp/erc/erc-list.el | |||
| @@ -117,6 +117,17 @@ | |||
| 117 | (sort-fields col (point-min) (point-max)) | 117 | (sort-fields col (point-min) (point-max)) |
| 118 | (sort-numeric-fields col (point-min) (point-max)))))) | 118 | (sort-numeric-fields col (point-min) (point-max)))))) |
| 119 | 119 | ||
| 120 | (defvar erc-list-menu-mode-map | ||
| 121 | (let ((map (make-keymap))) | ||
| 122 | (set-keymap-parent map special-mode-map) | ||
| 123 | (define-key map "k" 'erc-list-kill) | ||
| 124 | (define-key map "j" 'erc-list-join) | ||
| 125 | (define-key map "g" 'erc-list-revert) | ||
| 126 | (define-key map "n" 'next-line) | ||
| 127 | (define-key map "p" 'previous-line) | ||
| 128 | map) | ||
| 129 | "Local keymap for `erc-list-mode' buffers.") | ||
| 130 | |||
| 120 | (defvar erc-list-menu-sort-button-map | 131 | (defvar erc-list-menu-sort-button-map |
| 121 | (let ((map (make-sparse-keymap))) | 132 | (let ((map (make-sparse-keymap))) |
| 122 | (define-key map [header-line mouse-1] 'erc-list-menu-sort-by-column) | 133 | (define-key map [header-line mouse-1] 'erc-list-menu-sort-by-column) |
| @@ -146,12 +157,6 @@ | |||
| 146 | 157 | ||
| 147 | (put 'erc-list-menu-mode 'mode-class 'special) | 158 | (put 'erc-list-menu-mode 'mode-class 'special) |
| 148 | 159 | ||
| 149 | (define-key erc-list-menu-mode-map "k" 'erc-list-kill) | ||
| 150 | (define-key erc-list-menu-mode-map "j" 'erc-list-join) | ||
| 151 | (define-key erc-list-menu-mode-map "g" 'erc-list-revert) | ||
| 152 | (define-key erc-list-menu-mode-map "n" 'next-line) | ||
| 153 | (define-key erc-list-menu-mode-map "p" 'previous-line) | ||
| 154 | |||
| 155 | ;; Handle a "322" response. This response tells us about a single | 160 | ;; Handle a "322" response. This response tells us about a single |
| 156 | ;; channel. | 161 | ;; channel. |
| 157 | (defun erc-list-handle-322 (proc parsed) | 162 | (defun erc-list-handle-322 (proc parsed) |
diff --git a/lisp/help-mode.el b/lisp/help-mode.el index 826145d7af0..724b0186679 100644 --- a/lisp/help-mode.el +++ b/lisp/help-mode.el | |||
| @@ -33,18 +33,19 @@ | |||
| 33 | (require 'view) | 33 | (require 'view) |
| 34 | (eval-when-compile (require 'easymenu)) | 34 | (eval-when-compile (require 'easymenu)) |
| 35 | 35 | ||
| 36 | (defvar help-mode-map (make-sparse-keymap) | 36 | (defvar help-mode-map |
| 37 | (let ((map (make-sparse-keymap))) | ||
| 38 | (set-keymap-parent map button-buffer-map) | ||
| 39 | |||
| 40 | (define-key map [mouse-2] 'help-follow-mouse) | ||
| 41 | (define-key map "\C-c\C-b" 'help-go-back) | ||
| 42 | (define-key map "\C-c\C-f" 'help-go-forward) | ||
| 43 | (define-key map "\C-c\C-c" 'help-follow-symbol) | ||
| 44 | ;; Documentation only, since we use minor-mode-overriding-map-alist. | ||
| 45 | (define-key map "\r" 'help-follow) | ||
| 46 | map) | ||
| 37 | "Keymap for help mode.") | 47 | "Keymap for help mode.") |
| 38 | 48 | ||
| 39 | (set-keymap-parent help-mode-map button-buffer-map) | ||
| 40 | |||
| 41 | (define-key help-mode-map [mouse-2] 'help-follow-mouse) | ||
| 42 | (define-key help-mode-map "\C-c\C-b" 'help-go-back) | ||
| 43 | (define-key help-mode-map "\C-c\C-f" 'help-go-forward) | ||
| 44 | (define-key help-mode-map "\C-c\C-c" 'help-follow-symbol) | ||
| 45 | ;; Documentation only, since we use minor-mode-overriding-map-alist. | ||
| 46 | (define-key help-mode-map "\r" 'help-follow) | ||
| 47 | |||
| 48 | (easy-menu-define help-mode-menu help-mode-map | 49 | (easy-menu-define help-mode-menu help-mode-map |
| 49 | "Menu for Help Mode." | 50 | "Menu for Help Mode." |
| 50 | '("Help-Mode" | 51 | '("Help-Mode" |
diff --git a/lisp/hi-lock.el b/lisp/hi-lock.el index d97e6cf4b08..a0b5844582b 100644 --- a/lisp/hi-lock.el +++ b/lisp/hi-lock.el | |||
| @@ -238,45 +238,47 @@ a library is being loaded.") | |||
| 238 | (make-variable-buffer-local 'hi-lock-file-patterns) | 238 | (make-variable-buffer-local 'hi-lock-file-patterns) |
| 239 | (put 'hi-lock-file-patterns 'permanent-local t) | 239 | (put 'hi-lock-file-patterns 'permanent-local t) |
| 240 | 240 | ||
| 241 | (defvar hi-lock-menu (make-sparse-keymap "Hi Lock") | 241 | (defvar hi-lock-menu |
| 242 | (let ((map (make-sparse-keymap "Hi Lock"))) | ||
| 243 | (define-key-after map [highlight-regexp] | ||
| 244 | '(menu-item "Highlight Regexp..." highlight-regexp | ||
| 245 | :help "Highlight text matching PATTERN (a regexp).")) | ||
| 246 | |||
| 247 | (define-key-after map [highlight-phrase] | ||
| 248 | '(menu-item "Highlight Phrase..." highlight-phrase | ||
| 249 | :help "Highlight text matching PATTERN (a regexp processed to match phrases).")) | ||
| 250 | |||
| 251 | (define-key-after map [highlight-lines-matching-regexp] | ||
| 252 | '(menu-item "Highlight Lines..." highlight-lines-matching-regexp | ||
| 253 | :help "Highlight lines containing match of PATTERN (a regexp).")) | ||
| 254 | |||
| 255 | (define-key-after map [unhighlight-regexp] | ||
| 256 | '(menu-item "Remove Highlighting..." unhighlight-regexp | ||
| 257 | :help "Remove previously entered highlighting pattern." | ||
| 258 | :enable hi-lock-interactive-patterns)) | ||
| 259 | |||
| 260 | (define-key-after map [hi-lock-write-interactive-patterns] | ||
| 261 | '(menu-item "Patterns to Buffer" hi-lock-write-interactive-patterns | ||
| 262 | :help "Insert interactively added REGEXPs into buffer at point." | ||
| 263 | :enable hi-lock-interactive-patterns)) | ||
| 264 | |||
| 265 | (define-key-after map [hi-lock-find-patterns] | ||
| 266 | '(menu-item "Patterns from Buffer" hi-lock-find-patterns | ||
| 267 | :help "Use patterns (if any) near top of buffer.")) | ||
| 268 | map) | ||
| 242 | "Menu for hi-lock mode.") | 269 | "Menu for hi-lock mode.") |
| 243 | 270 | ||
| 244 | (define-key-after hi-lock-menu [highlight-regexp] | 271 | (defvar hi-lock-map |
| 245 | '(menu-item "Highlight Regexp..." highlight-regexp | 272 | (let ((map (make-sparse-keymap "Hi Lock"))) |
| 246 | :help "Highlight text matching PATTERN (a regexp).")) | 273 | (define-key map "\C-xwi" 'hi-lock-find-patterns) |
| 247 | 274 | (define-key map "\C-xwl" 'highlight-lines-matching-regexp) | |
| 248 | (define-key-after hi-lock-menu [highlight-phrase] | 275 | (define-key map "\C-xwp" 'highlight-phrase) |
| 249 | '(menu-item "Highlight Phrase..." highlight-phrase | 276 | (define-key map "\C-xwh" 'highlight-regexp) |
| 250 | :help "Highlight text matching PATTERN (a regexp processed to match phrases).")) | 277 | (define-key map "\C-xwr" 'unhighlight-regexp) |
| 251 | 278 | (define-key map "\C-xwb" 'hi-lock-write-interactive-patterns) | |
| 252 | (define-key-after hi-lock-menu [highlight-lines-matching-regexp] | 279 | map) |
| 253 | '(menu-item "Highlight Lines..." highlight-lines-matching-regexp | ||
| 254 | :help "Highlight lines containing match of PATTERN (a regexp).")) | ||
| 255 | |||
| 256 | (define-key-after hi-lock-menu [unhighlight-regexp] | ||
| 257 | '(menu-item "Remove Highlighting..." unhighlight-regexp | ||
| 258 | :help "Remove previously entered highlighting pattern." | ||
| 259 | :enable hi-lock-interactive-patterns)) | ||
| 260 | |||
| 261 | (define-key-after hi-lock-menu [hi-lock-write-interactive-patterns] | ||
| 262 | '(menu-item "Patterns to Buffer" hi-lock-write-interactive-patterns | ||
| 263 | :help "Insert interactively added REGEXPs into buffer at point." | ||
| 264 | :enable hi-lock-interactive-patterns)) | ||
| 265 | |||
| 266 | (define-key-after hi-lock-menu [hi-lock-find-patterns] | ||
| 267 | '(menu-item "Patterns from Buffer" hi-lock-find-patterns | ||
| 268 | :help "Use patterns (if any) near top of buffer.")) | ||
| 269 | |||
| 270 | (defvar hi-lock-map (make-sparse-keymap "Hi Lock") | ||
| 271 | "Key map for hi-lock.") | 280 | "Key map for hi-lock.") |
| 272 | 281 | ||
| 273 | (define-key hi-lock-map "\C-xwi" 'hi-lock-find-patterns) | ||
| 274 | (define-key hi-lock-map "\C-xwl" 'highlight-lines-matching-regexp) | ||
| 275 | (define-key hi-lock-map "\C-xwp" 'highlight-phrase) | ||
| 276 | (define-key hi-lock-map "\C-xwh" 'highlight-regexp) | ||
| 277 | (define-key hi-lock-map "\C-xwr" 'unhighlight-regexp) | ||
| 278 | (define-key hi-lock-map "\C-xwb" 'hi-lock-write-interactive-patterns) | ||
| 279 | |||
| 280 | ;; Visible Functions | 282 | ;; Visible Functions |
| 281 | 283 | ||
| 282 | ;;;###autoload | 284 | ;;;###autoload |
diff --git a/lisp/ibuffer.el b/lisp/ibuffer.el index 04048e0e572..f7ac24fa2e3 100644 --- a/lisp/ibuffer.el +++ b/lisp/ibuffer.el | |||
| @@ -384,14 +384,66 @@ directory, like `default-directory'." | |||
| 384 | (regexp :tag "To"))) | 384 | (regexp :tag "To"))) |
| 385 | :group 'ibuffer) | 385 | :group 'ibuffer) |
| 386 | 386 | ||
| 387 | (defvar ibuffer-mode-groups-popup | ||
| 388 | (let ((groups-map (make-sparse-keymap "Filter Groups"))) | ||
| 389 | ;; Filter groups | ||
| 390 | |||
| 391 | (define-key-after groups-map [filters-to-filter-group] | ||
| 392 | '(menu-item "Create filter group from current filters..." | ||
| 393 | ibuffer-filters-to-filter-group | ||
| 394 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) | ||
| 395 | (define-key-after groups-map [forward-filter-group] | ||
| 396 | '(menu-item "Move point to the next filter group" | ||
| 397 | ibuffer-forward-filter-group)) | ||
| 398 | (define-key-after groups-map [backward-filter-group] | ||
| 399 | '(menu-item "Move point to the previous filter group" | ||
| 400 | ibuffer-backward-filter-group)) | ||
| 401 | (define-key-after groups-map [jump-to-filter-group] | ||
| 402 | '(menu-item "Move point to a specific filter group..." | ||
| 403 | ibuffer-jump-to-filter-group)) | ||
| 404 | (define-key-after groups-map [kill-filter-group] | ||
| 405 | '(menu-item "Kill filter group named..." | ||
| 406 | ibuffer-kill-filter-group | ||
| 407 | :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) | ||
| 408 | (define-key-after groups-map [yank-filter-group] | ||
| 409 | '(menu-item "Yank last killed filter group before..." | ||
| 410 | ibuffer-yank-filter-group | ||
| 411 | :enable (and (featurep 'ibuf-ext) ibuffer-filter-group-kill-ring))) | ||
| 412 | (define-key-after groups-map [pop-filter-group] | ||
| 413 | '(menu-item "Remove top filter group" | ||
| 414 | ibuffer-pop-filter-group | ||
| 415 | :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) | ||
| 416 | (define-key-after groups-map [clear-filter-groups] | ||
| 417 | '(menu-item "Remove all filter groups" | ||
| 418 | ibuffer-clear-filter-groups | ||
| 419 | :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) | ||
| 420 | (define-key-after groups-map [pop-filter-group] | ||
| 421 | '(menu-item "Decompose filter group..." | ||
| 422 | ibuffer-pop-filter-group | ||
| 423 | :help "\"Unmake\" a filter group" | ||
| 424 | :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) | ||
| 425 | (define-key-after groups-map [save-filter-groups] | ||
| 426 | '(menu-item "Save current filter groups permanently..." | ||
| 427 | ibuffer-save-filter-groups | ||
| 428 | :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups) | ||
| 429 | :help "Use a mnemnonic name to store current filter groups")) | ||
| 430 | (define-key-after groups-map [switch-to-saved-filter-groups] | ||
| 431 | '(menu-item "Restore permanently saved filters..." | ||
| 432 | ibuffer-switch-to-saved-filter-groups | ||
| 433 | :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups) | ||
| 434 | :help "Replace current filters with a saved stack")) | ||
| 435 | (define-key-after groups-map [delete-saved-filter-groups] | ||
| 436 | '(menu-item "Delete permanently saved filter groups..." | ||
| 437 | ibuffer-delete-saved-filter-groups | ||
| 438 | :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups))) | ||
| 439 | (define-key-after groups-map [set-filter-groups-by-mode] | ||
| 440 | '(menu-item "Set current filter groups to filter by mode" | ||
| 441 | ibuffer-set-filter-groups-by-mode)) | ||
| 442 | |||
| 443 | groups-map)) | ||
| 387 | 444 | ||
| 388 | (defvar ibuffer-mode-map nil) | 445 | (defvar ibuffer-mode-map |
| 389 | (defvar ibuffer-mode-operate-map nil) | 446 | (let ((map (make-keymap))) |
| 390 | (defvar ibuffer-mode-groups-popup nil) | ||
| 391 | (unless ibuffer-mode-map | ||
| 392 | (let ((map (make-sparse-keymap)) | ||
| 393 | (operate-map (make-sparse-keymap "Operate")) | ||
| 394 | (groups-map (make-sparse-keymap "Filter Groups"))) | ||
| 395 | (define-key map (kbd "0") 'digit-argument) | 447 | (define-key map (kbd "0") 'digit-argument) |
| 396 | (define-key map (kbd "1") 'digit-argument) | 448 | (define-key map (kbd "1") 'digit-argument) |
| 397 | (define-key map (kbd "2") 'digit-argument) | 449 | (define-key map (kbd "2") 'digit-argument) |
| @@ -545,10 +597,10 @@ directory, like `default-directory'." | |||
| 545 | '(menu-item "View (other frame)" ibuffer-visit-buffer-other-frame)) | 597 | '(menu-item "View (other frame)" ibuffer-visit-buffer-other-frame)) |
| 546 | (define-key-after map [menu-bar view ibuffer-update] | 598 | (define-key-after map [menu-bar view ibuffer-update] |
| 547 | '(menu-item "Update" ibuffer-update | 599 | '(menu-item "Update" ibuffer-update |
| 548 | :help "Regenerate the list of buffers")) | 600 | :help "Regenerate the list of buffers")) |
| 549 | (define-key-after map [menu-bar view switch-format] | 601 | (define-key-after map [menu-bar view switch-format] |
| 550 | '(menu-item "Switch display format" ibuffer-switch-format | 602 | '(menu-item "Switch display format" ibuffer-switch-format |
| 551 | :help "Toggle between available values of `ibuffer-formats'")) | 603 | :help "Toggle between available values of `ibuffer-formats'")) |
| 552 | 604 | ||
| 553 | (define-key-after map [menu-bar view dashes] | 605 | (define-key-after map [menu-bar view dashes] |
| 554 | '("--")) | 606 | '("--")) |
| @@ -562,28 +614,29 @@ directory, like `default-directory'." | |||
| 562 | '(menu-item "Sort by buffer size" ibuffer-do-sort-by-size)) | 614 | '(menu-item "Sort by buffer size" ibuffer-do-sort-by-size)) |
| 563 | (define-key-after map [menu-bar view sort do-sort-by-alphabetic] | 615 | (define-key-after map [menu-bar view sort do-sort-by-alphabetic] |
| 564 | '(menu-item "Sort lexicographically" ibuffer-do-sort-by-alphabetic | 616 | '(menu-item "Sort lexicographically" ibuffer-do-sort-by-alphabetic |
| 565 | :help "Sort by the alphabetic order of buffer name")) | 617 | :help "Sort by the alphabetic order of buffer name")) |
| 566 | (define-key-after map [menu-bar view sort do-sort-by-recency] | 618 | (define-key-after map [menu-bar view sort do-sort-by-recency] |
| 567 | '(menu-item "Sort by view time" ibuffer-do-sort-by-recency | 619 | '(menu-item "Sort by view time" ibuffer-do-sort-by-recency |
| 568 | :help "Sort by the last time the buffer was displayed")) | 620 | :help "Sort by the last time the buffer was displayed")) |
| 569 | (define-key-after map [menu-bar view sort dashes] | 621 | (define-key-after map [menu-bar view sort dashes] |
| 570 | '("--")) | 622 | '("--")) |
| 571 | (define-key-after map [menu-bar view sort invert-sorting] | 623 | (define-key-after map [menu-bar view sort invert-sorting] |
| 572 | '(menu-item "Reverse sorting order" ibuffer-invert-sorting)) | 624 | '(menu-item "Reverse sorting order" ibuffer-invert-sorting)) |
| 573 | (define-key-after map [menu-bar view sort toggle-sorting-mode] | 625 | (define-key-after map [menu-bar view sort toggle-sorting-mode] |
| 574 | '(menu-item "Switch sorting mode" ibuffer-toggle-sorting-mode | 626 | '(menu-item "Switch sorting mode" ibuffer-toggle-sorting-mode |
| 575 | :help "Switch between the various sorting criteria")) | 627 | :help "Switch between the various sorting criteria")) |
| 576 | 628 | ||
| 577 | (define-key-after map [menu-bar view filter] | 629 | (define-key-after map [menu-bar view filter] |
| 578 | (cons "Filter" (make-sparse-keymap "Filter"))) | 630 | (cons "Filter" (make-sparse-keymap "Filter"))) |
| 579 | 631 | ||
| 580 | (define-key-after map [menu-bar view filter filter-disable] | 632 | (define-key-after map [menu-bar view filter filter-disable] |
| 581 | '(menu-item "Disable all filtering" ibuffer-filter-disable | 633 | '(menu-item "Disable all filtering" ibuffer-filter-disable |
| 582 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) | 634 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) |
| 583 | (define-key-after map [menu-bar view filter filter-by-mode] | 635 | (define-key-after map [menu-bar view filter filter-by-mode] |
| 584 | '(menu-item "Add filter by major mode..." ibuffer-filter-by-mode)) | 636 | '(menu-item "Add filter by major mode..." ibuffer-filter-by-mode)) |
| 585 | (define-key-after map [menu-bar view filter filter-by-mode] | 637 | (define-key-after map [menu-bar view filter filter-by-mode] |
| 586 | '(menu-item "Add filter by major mode in use..." ibuffer-filter-by-used-mode)) | 638 | '(menu-item "Add filter by major mode in use..." |
| 639 | ibuffer-filter-by-used-mode)) | ||
| 587 | (define-key-after map [menu-bar view filter filter-by-name] | 640 | (define-key-after map [menu-bar view filter filter-by-name] |
| 588 | '(menu-item "Add filter by buffer name..." ibuffer-filter-by-name)) | 641 | '(menu-item "Add filter by buffer name..." ibuffer-filter-by-name)) |
| 589 | (define-key-after map [menu-bar view filter filter-by-filename] | 642 | (define-key-after map [menu-bar view filter filter-by-filename] |
| @@ -591,158 +644,112 @@ directory, like `default-directory'." | |||
| 591 | (define-key-after map [menu-bar view filter filter-by-size-lt] | 644 | (define-key-after map [menu-bar view filter filter-by-size-lt] |
| 592 | '(menu-item "Add filter by size less than..." ibuffer-filter-by-size-lt)) | 645 | '(menu-item "Add filter by size less than..." ibuffer-filter-by-size-lt)) |
| 593 | (define-key-after map [menu-bar view filter filter-by-size-gt] | 646 | (define-key-after map [menu-bar view filter filter-by-size-gt] |
| 594 | '(menu-item "Add filter by size greater than..." ibuffer-filter-by-size-gt)) | 647 | '(menu-item "Add filter by size greater than..." |
| 648 | ibuffer-filter-by-size-gt)) | ||
| 595 | (define-key-after map [menu-bar view filter filter-by-content] | 649 | (define-key-after map [menu-bar view filter filter-by-content] |
| 596 | '(menu-item "Add filter by content (regexp)..." ibuffer-filter-by-content)) | 650 | '(menu-item "Add filter by content (regexp)..." |
| 651 | ibuffer-filter-by-content)) | ||
| 597 | (define-key-after map [menu-bar view filter filter-by-predicate] | 652 | (define-key-after map [menu-bar view filter filter-by-predicate] |
| 598 | '(menu-item "Add filter by Lisp predicate..." ibuffer-filter-by-predicate)) | 653 | '(menu-item "Add filter by Lisp predicate..." |
| 654 | ibuffer-filter-by-predicate)) | ||
| 599 | (define-key-after map [menu-bar view filter pop-filter] | 655 | (define-key-after map [menu-bar view filter pop-filter] |
| 600 | '(menu-item "Remove top filter" ibuffer-pop-filter | 656 | '(menu-item "Remove top filter" ibuffer-pop-filter |
| 601 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) | 657 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) |
| 602 | (define-key-after map [menu-bar view filter or-filter] | 658 | (define-key-after map [menu-bar view filter or-filter] |
| 603 | '(menu-item "OR top two filters" ibuffer-or-filter | 659 | '(menu-item "OR top two filters" ibuffer-or-filter |
| 604 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers | 660 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers |
| 605 | (cdr ibuffer-filtering-qualifiers)) | 661 | (cdr ibuffer-filtering-qualifiers)) |
| 606 | :help "Create a new filter which is the logical OR of the top two filters")) | 662 | :help |
| 663 | "Create a new filter which is the logical OR of the top two filters")) | ||
| 607 | (define-key-after map [menu-bar view filter negate-filter] | 664 | (define-key-after map [menu-bar view filter negate-filter] |
| 608 | '(menu-item "Negate top filter" ibuffer-negate-filter | 665 | '(menu-item "Negate top filter" ibuffer-negate-filter |
| 609 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) | 666 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) |
| 610 | (define-key-after map [menu-bar view filter decompose-filter] | 667 | (define-key-after map [menu-bar view filter decompose-filter] |
| 611 | '(menu-item "Decompose top filter" ibuffer-decompose-filter | 668 | '(menu-item "Decompose top filter" ibuffer-decompose-filter |
| 612 | :enable (and (featurep 'ibuf-ext) (memq (car ibuffer-filtering-qualifiers) '(or saved not))) | 669 | :enable (and (featurep 'ibuf-ext) |
| 613 | :help "Break down a complex filter like OR or NOT")) | 670 | (memq (car ibuffer-filtering-qualifiers) '(or saved not))) |
| 671 | :help "Break down a complex filter like OR or NOT")) | ||
| 614 | (define-key-after map [menu-bar view filter exchange-filters] | 672 | (define-key-after map [menu-bar view filter exchange-filters] |
| 615 | '(menu-item "Swap top two filters" ibuffer-exchange-filters | 673 | '(menu-item "Swap top two filters" ibuffer-exchange-filters |
| 616 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers | 674 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers |
| 617 | (cdr ibuffer-filtering-qualifiers)))) | 675 | (cdr ibuffer-filtering-qualifiers)))) |
| 618 | (define-key-after map [menu-bar view filter save-filters] | 676 | (define-key-after map [menu-bar view filter save-filters] |
| 619 | '(menu-item "Save current filters permanently..." ibuffer-save-filters | 677 | '(menu-item "Save current filters permanently..." ibuffer-save-filters |
| 620 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers) | 678 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers) |
| 621 | :help "Use a mnemnonic name to store current filter stack")) | 679 | :help "Use a mnemnonic name to store current filter stack")) |
| 622 | (define-key-after map [menu-bar view filter switch-to-saved-filters] | 680 | (define-key-after map [menu-bar view filter switch-to-saved-filters] |
| 623 | '(menu-item "Restore permanently saved filters..." ibuffer-switch-to-saved-filters | 681 | '(menu-item "Restore permanently saved filters..." |
| 624 | :enable (and (featurep 'ibuf-ext) ibuffer-saved-filters) | 682 | ibuffer-switch-to-saved-filters |
| 625 | :help "Replace current filters with a saved stack")) | 683 | :enable (and (featurep 'ibuf-ext) ibuffer-saved-filters) |
| 684 | :help "Replace current filters with a saved stack")) | ||
| 626 | (define-key-after map [menu-bar view filter add-saved-filters] | 685 | (define-key-after map [menu-bar view filter add-saved-filters] |
| 627 | '(menu-item "Add to permanently saved filters..." ibuffer-add-saved-filters | 686 | '(menu-item "Add to permanently saved filters..." |
| 628 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers) | 687 | ibuffer-add-saved-filters |
| 629 | :help "Include already saved stack with current filters")) | 688 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers) |
| 689 | :help "Include already saved stack with current filters")) | ||
| 630 | (define-key-after map [menu-bar view filter delete-saved-filters] | 690 | (define-key-after map [menu-bar view filter delete-saved-filters] |
| 631 | '(menu-item "Delete permanently saved filters..." | 691 | '(menu-item "Delete permanently saved filters..." |
| 632 | ibuffer-delete-saved-filters | 692 | ibuffer-delete-saved-filters |
| 633 | :enable (and (featurep 'ibuf-ext) ibuffer-saved-filters))) | 693 | :enable (and (featurep 'ibuf-ext) ibuffer-saved-filters))) |
| 634 | |||
| 635 | ;; Filter groups | ||
| 636 | |||
| 637 | (define-key-after groups-map [filters-to-filter-group] | ||
| 638 | '(menu-item "Create filter group from current filters..." | ||
| 639 | ibuffer-filters-to-filter-group | ||
| 640 | :enable (and (featurep 'ibuf-ext) ibuffer-filtering-qualifiers))) | ||
| 641 | (define-key-after groups-map [forward-filter-group] | ||
| 642 | '(menu-item "Move point to the next filter group" | ||
| 643 | ibuffer-forward-filter-group)) | ||
| 644 | (define-key-after groups-map [backward-filter-group] | ||
| 645 | '(menu-item "Move point to the previous filter group" | ||
| 646 | ibuffer-backward-filter-group)) | ||
| 647 | (define-key-after groups-map [jump-to-filter-group] | ||
| 648 | '(menu-item "Move point to a specific filter group..." | ||
| 649 | ibuffer-jump-to-filter-group)) | ||
| 650 | (define-key-after groups-map [kill-filter-group] | ||
| 651 | '(menu-item "Kill filter group named..." | ||
| 652 | ibuffer-kill-filter-group | ||
| 653 | :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) | ||
| 654 | (define-key-after groups-map [yank-filter-group] | ||
| 655 | '(menu-item "Yank last killed filter group before..." | ||
| 656 | ibuffer-yank-filter-group | ||
| 657 | :enable (and (featurep 'ibuf-ext) ibuffer-filter-group-kill-ring))) | ||
| 658 | (define-key-after groups-map [pop-filter-group] | ||
| 659 | '(menu-item "Remove top filter group" | ||
| 660 | ibuffer-pop-filter-group | ||
| 661 | :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) | ||
| 662 | (define-key-after groups-map [clear-filter-groups] | ||
| 663 | '(menu-item "Remove all filter groups" | ||
| 664 | ibuffer-clear-filter-groups | ||
| 665 | :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) | ||
| 666 | (define-key-after groups-map [pop-filter-group] | ||
| 667 | '(menu-item "Decompose filter group..." | ||
| 668 | ibuffer-pop-filter-group | ||
| 669 | :help "\"Unmake\" a filter group" | ||
| 670 | :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups))) | ||
| 671 | (define-key-after groups-map [save-filter-groups] | ||
| 672 | '(menu-item "Save current filter groups permanently..." | ||
| 673 | ibuffer-save-filter-groups | ||
| 674 | :enable (and (featurep 'ibuf-ext) ibuffer-filter-groups) | ||
| 675 | :help "Use a mnemnonic name to store current filter groups")) | ||
| 676 | (define-key-after groups-map [switch-to-saved-filter-groups] | ||
| 677 | '(menu-item "Restore permanently saved filters..." | ||
| 678 | ibuffer-switch-to-saved-filter-groups | ||
| 679 | :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups) | ||
| 680 | :help "Replace current filters with a saved stack")) | ||
| 681 | (define-key-after groups-map [delete-saved-filter-groups] | ||
| 682 | '(menu-item "Delete permanently saved filter groups..." | ||
| 683 | ibuffer-delete-saved-filter-groups | ||
| 684 | :enable (and (featurep 'ibuf-ext) ibuffer-saved-filter-groups))) | ||
| 685 | (define-key-after groups-map [set-filter-groups-by-mode] | ||
| 686 | '(menu-item "Set current filter groups to filter by mode" | ||
| 687 | ibuffer-set-filter-groups-by-mode)) | ||
| 688 | 694 | ||
| 689 | (define-key-after map [menu-bar view filter-groups] | 695 | (define-key-after map [menu-bar view filter-groups] |
| 690 | (cons "Filter Groups" groups-map)) | 696 | (cons "Filter Groups" ibuffer-mode-groups-popup)) |
| 691 | 697 | ||
| 692 | (define-key-after map [menu-bar view dashes2] | 698 | (define-key-after map [menu-bar view dashes2] |
| 693 | '("--")) | 699 | '("--")) |
| 694 | (define-key-after map [menu-bar view diff-with-file] | 700 | (define-key-after map [menu-bar view diff-with-file] |
| 695 | '(menu-item "Diff with file" ibuffer-diff-with-file | 701 | '(menu-item "Diff with file" ibuffer-diff-with-file |
| 696 | :help "View the differences between this buffer and its file")) | 702 | :help "View the differences between this buffer and its file")) |
| 697 | (define-key-after map [menu-bar view auto-mode] | 703 | (define-key-after map [menu-bar view auto-mode] |
| 698 | '(menu-item "Toggle Auto Mode" ibuffer-auto-mode | 704 | '(menu-item "Toggle Auto Mode" ibuffer-auto-mode |
| 699 | :help "Attempt to automatically update the Ibuffer buffer")) | 705 | :help "Attempt to automatically update the Ibuffer buffer")) |
| 700 | (define-key-after map [menu-bar view customize] | 706 | (define-key-after map [menu-bar view customize] |
| 701 | '(menu-item "Customize Ibuffer" ibuffer-customize | 707 | '(menu-item "Customize Ibuffer" ibuffer-customize |
| 702 | :help "Use Custom to customize Ibuffer")) | 708 | :help "Use Custom to customize Ibuffer")) |
| 703 | 709 | ||
| 704 | (define-key-after map [menu-bar mark] | 710 | (define-key-after map [menu-bar mark] |
| 705 | (cons "Mark" (make-sparse-keymap "Mark"))) | 711 | (cons "Mark" (make-sparse-keymap "Mark"))) |
| 706 | 712 | ||
| 707 | (define-key-after map [menu-bar mark toggle-marks] | 713 | (define-key-after map [menu-bar mark toggle-marks] |
| 708 | '(menu-item "Toggle marks" ibuffer-toggle-marks | 714 | '(menu-item "Toggle marks" ibuffer-toggle-marks |
| 709 | :help "Unmark marked buffers, and mark unmarked buffers")) | 715 | :help "Unmark marked buffers, and mark unmarked buffers")) |
| 710 | (define-key-after map [menu-bar mark mark-forward] | 716 | (define-key-after map [menu-bar mark mark-forward] |
| 711 | '(menu-item "Mark" ibuffer-mark-forward | 717 | '(menu-item "Mark" ibuffer-mark-forward |
| 712 | :help "Mark the buffer at point")) | 718 | :help "Mark the buffer at point")) |
| 713 | (define-key-after map [menu-bar mark unmark-forward] | 719 | (define-key-after map [menu-bar mark unmark-forward] |
| 714 | '(menu-item "Unmark" ibuffer-unmark-forward | 720 | '(menu-item "Unmark" ibuffer-unmark-forward |
| 715 | :help "Unmark the buffer at point")) | 721 | :help "Unmark the buffer at point")) |
| 716 | (define-key-after map [menu-bar mark mark-by-mode] | 722 | (define-key-after map [menu-bar mark mark-by-mode] |
| 717 | '(menu-item "Mark by mode..." ibuffer-mark-by-mode | 723 | '(menu-item "Mark by mode..." ibuffer-mark-by-mode |
| 718 | :help "Mark all buffers in a particular major mode")) | 724 | :help "Mark all buffers in a particular major mode")) |
| 719 | (define-key-after map [menu-bar mark mark-modified-buffers] | 725 | (define-key-after map [menu-bar mark mark-modified-buffers] |
| 720 | '(menu-item "Mark modified buffers" ibuffer-mark-modified-buffers | 726 | '(menu-item "Mark modified buffers" ibuffer-mark-modified-buffers |
| 721 | :help "Mark all buffers which have been modified")) | 727 | :help "Mark all buffers which have been modified")) |
| 722 | (define-key-after map [menu-bar mark mark-unsaved-buffers] | 728 | (define-key-after map [menu-bar mark mark-unsaved-buffers] |
| 723 | '(menu-item "Mark unsaved buffers" ibuffer-mark-unsaved-buffers | 729 | '(menu-item "Mark unsaved buffers" ibuffer-mark-unsaved-buffers |
| 724 | :help "Mark all buffers which have a file and are modified")) | 730 | :help "Mark all buffers which have a file and are modified")) |
| 725 | (define-key-after map [menu-bar mark mark-read-only-buffers] | 731 | (define-key-after map [menu-bar mark mark-read-only-buffers] |
| 726 | '(menu-item "Mark read-only buffers" ibuffer-mark-read-only-buffers | 732 | '(menu-item "Mark read-only buffers" ibuffer-mark-read-only-buffers |
| 727 | :help "Mark all buffers which are read-only")) | 733 | :help "Mark all buffers which are read-only")) |
| 728 | (define-key-after map [menu-bar mark mark-special-buffers] | 734 | (define-key-after map [menu-bar mark mark-special-buffers] |
| 729 | '(menu-item "Mark special buffers" ibuffer-mark-special-buffers | 735 | '(menu-item "Mark special buffers" ibuffer-mark-special-buffers |
| 730 | :help "Mark all buffers whose name begins with a *")) | 736 | :help "Mark all buffers whose name begins with a *")) |
| 731 | (define-key-after map [menu-bar mark mark-dired-buffers] | 737 | (define-key-after map [menu-bar mark mark-dired-buffers] |
| 732 | '(menu-item "Mark dired buffers" ibuffer-mark-dired-buffers | 738 | '(menu-item "Mark dired buffers" ibuffer-mark-dired-buffers |
| 733 | :help "Mark buffers in dired-mode")) | 739 | :help "Mark buffers in dired-mode")) |
| 734 | (define-key-after map [menu-bar mark mark-dissociated-buffers] | 740 | (define-key-after map [menu-bar mark mark-dissociated-buffers] |
| 735 | '(menu-item "Mark dissociated buffers" ibuffer-mark-dissociated-buffers | 741 | '(menu-item "Mark dissociated buffers" ibuffer-mark-dissociated-buffers |
| 736 | :help "Mark buffers with a non-existent associated file")) | 742 | :help "Mark buffers with a non-existent associated file")) |
| 737 | (define-key-after map [menu-bar mark mark-help-buffers] | 743 | (define-key-after map [menu-bar mark mark-help-buffers] |
| 738 | '(menu-item "Mark help buffers" ibuffer-mark-help-buffers | 744 | '(menu-item "Mark help buffers" ibuffer-mark-help-buffers |
| 739 | :help "Mark buffers in help-mode")) | 745 | :help "Mark buffers in help-mode")) |
| 740 | (define-key-after map [menu-bar mark mark-compressed-file-buffers] | 746 | (define-key-after map [menu-bar mark mark-compressed-file-buffers] |
| 741 | '(menu-item "Mark compressed file buffers" ibuffer-mark-compressed-file-buffers | 747 | '(menu-item "Mark compressed file buffers" |
| 742 | :help "Mark buffers which have a file that is compressed")) | 748 | ibuffer-mark-compressed-file-buffers |
| 749 | :help "Mark buffers which have a file that is compressed")) | ||
| 743 | (define-key-after map [menu-bar mark mark-old-buffers] | 750 | (define-key-after map [menu-bar mark mark-old-buffers] |
| 744 | '(menu-item "Mark old buffers" ibuffer-mark-old-buffers | 751 | '(menu-item "Mark old buffers" ibuffer-mark-old-buffers |
| 745 | :help "Mark buffers which have not been viewed recently")) | 752 | :help "Mark buffers which have not been viewed recently")) |
| 746 | (define-key-after map [menu-bar mark unmark-all] | 753 | (define-key-after map [menu-bar mark unmark-all] |
| 747 | '(menu-item "Unmark All" ibuffer-unmark-all)) | 754 | '(menu-item "Unmark All" ibuffer-unmark-all)) |
| 748 | 755 | ||
| @@ -751,16 +758,19 @@ directory, like `default-directory'." | |||
| 751 | 758 | ||
| 752 | (define-key-after map [menu-bar mark mark-by-name-regexp] | 759 | (define-key-after map [menu-bar mark mark-by-name-regexp] |
| 753 | '(menu-item "Mark by buffer name (regexp)..." ibuffer-mark-by-name-regexp | 760 | '(menu-item "Mark by buffer name (regexp)..." ibuffer-mark-by-name-regexp |
| 754 | :help "Mark buffers whose name matches a regexp")) | 761 | :help "Mark buffers whose name matches a regexp")) |
| 755 | (define-key-after map [menu-bar mark mark-by-mode-regexp] | 762 | (define-key-after map [menu-bar mark mark-by-mode-regexp] |
| 756 | '(menu-item "Mark by major mode (regexp)..." ibuffer-mark-by-mode-regexp | 763 | '(menu-item "Mark by major mode (regexp)..." ibuffer-mark-by-mode-regexp |
| 757 | :help "Mark buffers whose major mode name matches a regexp")) | 764 | :help "Mark buffers whose major mode name matches a regexp")) |
| 758 | (define-key-after map [menu-bar mark mark-by-file-name-regexp] | 765 | (define-key-after map [menu-bar mark mark-by-file-name-regexp] |
| 759 | '(menu-item "Mark by file name (regexp)..." ibuffer-mark-by-file-name-regexp | 766 | '(menu-item "Mark by file name (regexp)..." |
| 760 | :help "Mark buffers whose file name matches a regexp")) | 767 | ibuffer-mark-by-file-name-regexp |
| 768 | :help "Mark buffers whose file name matches a regexp")) | ||
| 761 | 769 | ||
| 762 | ;; Operate map is added later | 770 | map)) |
| 763 | 771 | ||
| 772 | (defvar ibuffer-mode-operate-map | ||
| 773 | (let ((operate-map (make-sparse-keymap "Operate"))) | ||
| 764 | (define-key-after operate-map [do-view] | 774 | (define-key-after operate-map [do-view] |
| 765 | '(menu-item "View" ibuffer-do-view)) | 775 | '(menu-item "View" ibuffer-do-view)) |
| 766 | (define-key-after operate-map [do-view-other-frame] | 776 | (define-key-after operate-map [do-view-other-frame] |
| @@ -769,47 +779,45 @@ directory, like `default-directory'." | |||
| 769 | '(menu-item "Save" ibuffer-do-save)) | 779 | '(menu-item "Save" ibuffer-do-save)) |
| 770 | (define-key-after operate-map [do-replace-regexp] | 780 | (define-key-after operate-map [do-replace-regexp] |
| 771 | '(menu-item "Replace (regexp)..." ibuffer-do-replace-regexp | 781 | '(menu-item "Replace (regexp)..." ibuffer-do-replace-regexp |
| 772 | :help "Replace text inside marked buffers")) | 782 | :help "Replace text inside marked buffers")) |
| 773 | (define-key-after operate-map [do-query-replace] | 783 | (define-key-after operate-map [do-query-replace] |
| 774 | '(menu-item "Query Replace..." ibuffer-do-query-replace | 784 | '(menu-item "Query Replace..." ibuffer-do-query-replace |
| 775 | :help "Replace text in marked buffers, asking each time")) | 785 | :help "Replace text in marked buffers, asking each time")) |
| 776 | (define-key-after operate-map [do-query-replace-regexp] | 786 | (define-key-after operate-map [do-query-replace-regexp] |
| 777 | '(menu-item "Query Replace (regexp)..." ibuffer-do-query-replace-regexp | 787 | '(menu-item "Query Replace (regexp)..." ibuffer-do-query-replace-regexp |
| 778 | :help "Replace text in marked buffers by regexp, asking each time")) | 788 | :help "Replace text in marked buffers by regexp, asking each time")) |
| 779 | (define-key-after operate-map [do-print] | 789 | (define-key-after operate-map [do-print] |
| 780 | '(menu-item "Print" ibuffer-do-print)) | 790 | '(menu-item "Print" ibuffer-do-print)) |
| 781 | (define-key-after operate-map [do-toggle-modified] | 791 | (define-key-after operate-map [do-toggle-modified] |
| 782 | '(menu-item "Toggle modification flag" ibuffer-do-toggle-modified)) | 792 | '(menu-item "Toggle modification flag" ibuffer-do-toggle-modified)) |
| 783 | (define-key-after operate-map [do-revert] | 793 | (define-key-after operate-map [do-revert] |
| 784 | '(menu-item "Revert" ibuffer-do-revert | 794 | '(menu-item "Revert" ibuffer-do-revert |
| 785 | :help "Revert marked buffers to their associated file")) | 795 | :help "Revert marked buffers to their associated file")) |
| 786 | (define-key-after operate-map [do-rename-uniquely] | 796 | (define-key-after operate-map [do-rename-uniquely] |
| 787 | '(menu-item "Rename Uniquely" ibuffer-do-rename-uniquely | 797 | '(menu-item "Rename Uniquely" ibuffer-do-rename-uniquely |
| 788 | :help "Rename marked buffers to a new, unique name")) | 798 | :help "Rename marked buffers to a new, unique name")) |
| 789 | (define-key-after operate-map [do-delete] | 799 | (define-key-after operate-map [do-delete] |
| 790 | '(menu-item "Kill" ibuffer-do-delete)) | 800 | '(menu-item "Kill" ibuffer-do-delete)) |
| 791 | (define-key-after operate-map [do-occur] | 801 | (define-key-after operate-map [do-occur] |
| 792 | '(menu-item "List lines matching..." ibuffer-do-occur | 802 | '(menu-item "List lines matching..." ibuffer-do-occur |
| 793 | :help "View all lines in marked buffers matching a regexp")) | 803 | :help "View all lines in marked buffers matching a regexp")) |
| 794 | (define-key-after operate-map [do-shell-command-pipe] | 804 | (define-key-after operate-map [do-shell-command-pipe] |
| 795 | '(menu-item "Pipe to shell command..." ibuffer-do-shell-command-pipe | 805 | '(menu-item "Pipe to shell command..." ibuffer-do-shell-command-pipe |
| 796 | :help "For each marked buffer, send its contents to a shell command")) | 806 | :help "For each marked buffer, send its contents to a shell command")) |
| 797 | (define-key-after operate-map [do-shell-command-pipe-replace] | 807 | (define-key-after operate-map [do-shell-command-pipe-replace] |
| 798 | '(menu-item "Pipe to shell command (replace)..." ibuffer-do-shell-command-pipe-replace | 808 | '(menu-item "Pipe to shell command (replace)..." ibuffer-do-shell-command-pipe-replace |
| 799 | :help "For each marked buffer, replace its contents with output of shell command")) | 809 | :help "For each marked buffer, replace its contents with output of shell command")) |
| 800 | (define-key-after operate-map [do-shell-command-file] | 810 | (define-key-after operate-map [do-shell-command-file] |
| 801 | '(menu-item "Shell command on buffer's file..." ibuffer-do-shell-command-file | 811 | '(menu-item "Shell command on buffer's file..." ibuffer-do-shell-command-file |
| 802 | :help "For each marked buffer, run a shell command with its file as argument")) | 812 | :help "For each marked buffer, run a shell command with its file as argument")) |
| 803 | (define-key-after operate-map [do-eval] | 813 | (define-key-after operate-map [do-eval] |
| 804 | '(menu-item "Eval..." ibuffer-do-eval | 814 | '(menu-item "Eval..." ibuffer-do-eval |
| 805 | :help "Evaluate a Lisp form in each marked buffer")) | 815 | :help "Evaluate a Lisp form in each marked buffer")) |
| 806 | (define-key-after operate-map [do-view-and-eval] | 816 | (define-key-after operate-map [do-view-and-eval] |
| 807 | '(menu-item "Eval (viewing buffer)..." ibuffer-do-view-and-eval | 817 | '(menu-item "Eval (viewing buffer)..." ibuffer-do-view-and-eval |
| 808 | :help "Evaluate a Lisp form in each marked buffer while viewing it")) | 818 | :help "Evaluate a Lisp form in each marked buffer while viewing it")) |
| 809 | 819 | ||
| 810 | (setq ibuffer-mode-map map | 820 | operate-map)) |
| 811 | ibuffer-mode-operate-map operate-map | ||
| 812 | ibuffer-mode-groups-popup (copy-keymap groups-map)))) | ||
| 813 | 821 | ||
| 814 | (define-key ibuffer-mode-groups-popup [kill-filter-group] | 822 | (define-key ibuffer-mode-groups-popup [kill-filter-group] |
| 815 | '(menu-item "Kill filter group" | 823 | '(menu-item "Kill filter group" |
| @@ -1559,9 +1567,8 @@ If point is on a group name, this function operates on that group." | |||
| 1559 | from-end-p)) | 1567 | from-end-p)) |
| 1560 | (setq strlen (length str)) | 1568 | (setq strlen (length str)) |
| 1561 | (setq str | 1569 | (setq str |
| 1562 | ,(ibuffer-compile-make-eliding-form 'str | 1570 | ,(ibuffer-compile-make-eliding-form |
| 1563 | elide | 1571 | 'str elide from-end-p))))) |
| 1564 | from-end-p))))) | ||
| 1565 | ;; Now, put these forms together with the rest of the code. | 1572 | ;; Now, put these forms together with the rest of the code. |
| 1566 | (let ((callform | 1573 | (let ((callform |
| 1567 | ;; Is this an "inline" column? This means we have | 1574 | ;; Is this an "inline" column? This means we have |
| @@ -1575,16 +1582,18 @@ If point is on a group name, this function operates on that group." | |||
| 1575 | ;; You're not expected to understand this. Hell, I | 1582 | ;; You're not expected to understand this. Hell, I |
| 1576 | ;; don't even understand it, and I wrote it five | 1583 | ;; don't even understand it, and I wrote it five |
| 1577 | ;; minutes ago. | 1584 | ;; minutes ago. |
| 1578 | (insertgenfn (ibuffer-aif (get sym 'ibuffer-column-summarizer) | 1585 | (insertgenfn |
| 1579 | ;; I really, really wish Emacs Lisp had closures. | 1586 | (ibuffer-aif (get sym 'ibuffer-column-summarizer) |
| 1580 | (lambda (arg sym) | 1587 | ;; I really, really wish Emacs Lisp had closures. |
| 1581 | `(insert | 1588 | (lambda (arg sym) |
| 1582 | (let ((ret ,arg)) | 1589 | `(insert |
| 1583 | (put ',sym 'ibuffer-column-summary | 1590 | (let ((ret ,arg)) |
| 1584 | (cons ret (get ',sym 'ibuffer-column-summary))) | 1591 | (put ',sym 'ibuffer-column-summary |
| 1585 | ret))) | 1592 | (cons ret (get ',sym |
| 1586 | (lambda (arg sym) | 1593 | 'ibuffer-column-summary))) |
| 1587 | `(insert ,arg)))) | 1594 | ret))) |
| 1595 | (lambda (arg sym) | ||
| 1596 | `(insert ,arg)))) | ||
| 1588 | (mincompform `(< strlen ,(if (integerp min) | 1597 | (mincompform `(< strlen ,(if (integerp min) |
| 1589 | min | 1598 | min |
| 1590 | 'min))) | 1599 | 'min))) |
| @@ -1617,7 +1626,8 @@ If point is on a group name, this function operates on that group." | |||
| 1617 | `(strlen (length str)))) | 1626 | `(strlen (length str)))) |
| 1618 | outforms) | 1627 | outforms) |
| 1619 | (setq outforms | 1628 | (setq outforms |
| 1620 | (append outforms (list (funcall insertgenfn 'str sym))))) | 1629 | (append outforms |
| 1630 | (list (funcall insertgenfn 'str sym))))) | ||
| 1621 | ;; The simple case; just insert the string. | 1631 | ;; The simple case; just insert the string. |
| 1622 | (push (funcall insertgenfn callform sym) outforms)) | 1632 | (push (funcall insertgenfn callform sym) outforms)) |
| 1623 | ;; Finally, return a `let' form which binds the | 1633 | ;; Finally, return a `let' form which binds the |
diff --git a/lisp/kmacro.el b/lisp/kmacro.el index 689120c0f8f..6f4bed3ec5b 100644 --- a/lisp/kmacro.el +++ b/lisp/kmacro.el | |||
| @@ -916,34 +916,35 @@ without repeating the prefix." | |||
| 916 | (defvar kmacro-step-edit-help) ;; kmacro step edit help enabled | 916 | (defvar kmacro-step-edit-help) ;; kmacro step edit help enabled |
| 917 | (defvar kmacro-step-edit-num-input-keys) ;; to ignore duplicate pre-command hook | 917 | (defvar kmacro-step-edit-num-input-keys) ;; to ignore duplicate pre-command hook |
| 918 | 918 | ||
| 919 | (defvar kmacro-step-edit-map (make-sparse-keymap) | 919 | (defvar kmacro-step-edit-map |
| 920 | (let ((map (make-sparse-keymap))) | ||
| 921 | ;; query-replace-map answers include: `act', `skip', `act-and-show', | ||
| 922 | ;; `exit', `act-and-exit', `edit', `delete-and-edit', `recenter', | ||
| 923 | ;; `automatic', `backup', `exit-prefix', and `help'.") | ||
| 924 | ;; Also: `quit', `edit-replacement' | ||
| 925 | |||
| 926 | (set-keymap-parent map query-replace-map) | ||
| 927 | |||
| 928 | (define-key map "\t" 'act-repeat) | ||
| 929 | (define-key map [tab] 'act-repeat) | ||
| 930 | (define-key map "\C-k" 'skip-rest) | ||
| 931 | (define-key map "c" 'automatic) | ||
| 932 | (define-key map "f" 'skip-keep) | ||
| 933 | (define-key map "q" 'quit) | ||
| 934 | (define-key map "d" 'skip) | ||
| 935 | (define-key map "\C-d" 'skip) | ||
| 936 | (define-key map "i" 'insert) | ||
| 937 | (define-key map "I" 'insert-1) | ||
| 938 | (define-key map "r" 'replace) | ||
| 939 | (define-key map "R" 'replace-1) | ||
| 940 | (define-key map "a" 'append) | ||
| 941 | (define-key map "A" 'append-end) | ||
| 942 | map) | ||
| 920 | "Keymap that defines the responses to questions in `kmacro-step-edit-macro'. | 943 | "Keymap that defines the responses to questions in `kmacro-step-edit-macro'. |
| 921 | This keymap is an extension to the `query-replace-map', allowing the | 944 | This keymap is an extension to the `query-replace-map', allowing the |
| 922 | following additional answers: `insert', `insert-1', `replace', `replace-1', | 945 | following additional answers: `insert', `insert-1', `replace', `replace-1', |
| 923 | `append', `append-end', `act-repeat', `skip-end', `skip-keep'.") | 946 | `append', `append-end', `act-repeat', `skip-end', `skip-keep'.") |
| 924 | 947 | ||
| 925 | ;; query-replace-map answers include: `act', `skip', `act-and-show', | ||
| 926 | ;; `exit', `act-and-exit', `edit', `delete-and-edit', `recenter', | ||
| 927 | ;; `automatic', `backup', `exit-prefix', and `help'.") | ||
| 928 | ;; Also: `quit', `edit-replacement' | ||
| 929 | |||
| 930 | (set-keymap-parent kmacro-step-edit-map query-replace-map) | ||
| 931 | |||
| 932 | (define-key kmacro-step-edit-map "\t" 'act-repeat) | ||
| 933 | (define-key kmacro-step-edit-map [tab] 'act-repeat) | ||
| 934 | (define-key kmacro-step-edit-map "\C-k" 'skip-rest) | ||
| 935 | (define-key kmacro-step-edit-map "c" 'automatic) | ||
| 936 | (define-key kmacro-step-edit-map "f" 'skip-keep) | ||
| 937 | (define-key kmacro-step-edit-map "q" 'quit) | ||
| 938 | (define-key kmacro-step-edit-map "d" 'skip) | ||
| 939 | (define-key kmacro-step-edit-map "\C-d" 'skip) | ||
| 940 | (define-key kmacro-step-edit-map "i" 'insert) | ||
| 941 | (define-key kmacro-step-edit-map "I" 'insert-1) | ||
| 942 | (define-key kmacro-step-edit-map "r" 'replace) | ||
| 943 | (define-key kmacro-step-edit-map "R" 'replace-1) | ||
| 944 | (define-key kmacro-step-edit-map "a" 'append) | ||
| 945 | (define-key kmacro-step-edit-map "A" 'append-end) | ||
| 946 | |||
| 947 | (defvar kmacro-step-edit-prefix-commands | 948 | (defvar kmacro-step-edit-prefix-commands |
| 948 | '(universal-argument universal-argument-more universal-argument-minus | 949 | '(universal-argument universal-argument-more universal-argument-minus |
| 949 | digit-argument negative-argument) | 950 | digit-argument negative-argument) |
diff --git a/lisp/mail/rmail.el b/lisp/mail/rmail.el index 7e1cbe4ea8d..7e44ae22e1e 100644 --- a/lisp/mail/rmail.el +++ b/lisp/mail/rmail.el | |||
| @@ -4418,7 +4418,7 @@ If prefix argument REVERSE is non-nil, sorts in reverse order. | |||
| 4418 | 4418 | ||
| 4419 | ;;;### (autoloads (rmail-summary-by-senders rmail-summary-by-topic | 4419 | ;;;### (autoloads (rmail-summary-by-senders rmail-summary-by-topic |
| 4420 | ;;;;;; rmail-summary-by-regexp rmail-summary-by-recipients rmail-summary-by-labels | 4420 | ;;;;;; rmail-summary-by-regexp rmail-summary-by-recipients rmail-summary-by-labels |
| 4421 | ;;;;;; rmail-summary) "rmailsum" "rmailsum.el" "76a7ae570a4fa96a9233d0276f52f515") | 4421 | ;;;;;; rmail-summary) "rmailsum" "rmailsum.el" "adad96c9eb13cae4bae0769f731d8784") |
| 4422 | ;;; Generated autoloads from rmailsum.el | 4422 | ;;; Generated autoloads from rmailsum.el |
| 4423 | 4423 | ||
| 4424 | (autoload 'rmail-summary "rmailsum" "\ | 4424 | (autoload 'rmail-summary "rmailsum" "\ |
diff --git a/lisp/mail/rmailsum.el b/lisp/mail/rmailsum.el index e0f40afc0d1..1d5e062fe27 100644 --- a/lisp/mail/rmailsum.el +++ b/lisp/mail/rmailsum.el | |||
| @@ -64,7 +64,196 @@ Setting this option to nil might speed up the generation of summaries." | |||
| 64 | "Overlay used to highlight the current message in the Rmail summary.") | 64 | "Overlay used to highlight the current message in the Rmail summary.") |
| 65 | (put 'rmail-summary-overlay 'permanent-local t) | 65 | (put 'rmail-summary-overlay 'permanent-local t) |
| 66 | 66 | ||
| 67 | (defvar rmail-summary-mode-map nil | 67 | (defvar rmail-summary-mode-map |
| 68 | (let ((map (make-keymap))) | ||
| 69 | (suppress-keymap map) | ||
| 70 | (define-key map [mouse-2] 'rmail-summary-mouse-goto-message) | ||
| 71 | (define-key map "a" 'rmail-summary-add-label) | ||
| 72 | (define-key map "b" 'rmail-summary-bury) | ||
| 73 | (define-key map "c" 'rmail-summary-continue) | ||
| 74 | (define-key map "d" 'rmail-summary-delete-forward) | ||
| 75 | (define-key map "\C-d" 'rmail-summary-delete-backward) | ||
| 76 | (define-key map "e" 'rmail-summary-edit-current-message) | ||
| 77 | (define-key map "f" 'rmail-summary-forward) | ||
| 78 | (define-key map "g" 'rmail-summary-get-new-mail) | ||
| 79 | (define-key map "h" 'rmail-summary) | ||
| 80 | (define-key map "i" 'rmail-summary-input) | ||
| 81 | (define-key map "j" 'rmail-summary-goto-msg) | ||
| 82 | (define-key map "\C-m" 'rmail-summary-goto-msg) | ||
| 83 | (define-key map "k" 'rmail-summary-kill-label) | ||
| 84 | (define-key map "l" 'rmail-summary-by-labels) | ||
| 85 | (define-key map "\e\C-h" 'rmail-summary) | ||
| 86 | (define-key map "\e\C-l" 'rmail-summary-by-labels) | ||
| 87 | (define-key map "\e\C-r" 'rmail-summary-by-recipients) | ||
| 88 | (define-key map "\e\C-s" 'rmail-summary-by-regexp) | ||
| 89 | ;; `f' for "from". | ||
| 90 | (define-key map "\e\C-f" 'rmail-summary-by-senders) | ||
| 91 | (define-key map "\e\C-t" 'rmail-summary-by-topic) | ||
| 92 | (define-key map "m" 'rmail-summary-mail) | ||
| 93 | (define-key map "\M-m" 'rmail-summary-retry-failure) | ||
| 94 | (define-key map "n" 'rmail-summary-next-msg) | ||
| 95 | (define-key map "\en" 'rmail-summary-next-all) | ||
| 96 | (define-key map "\e\C-n" 'rmail-summary-next-labeled-message) | ||
| 97 | (define-key map "o" 'rmail-summary-output) | ||
| 98 | (define-key map "\C-o" 'rmail-summary-output-as-seen) | ||
| 99 | (define-key map "p" 'rmail-summary-previous-msg) | ||
| 100 | (define-key map "\ep" 'rmail-summary-previous-all) | ||
| 101 | (define-key map "\e\C-p" 'rmail-summary-previous-labeled-message) | ||
| 102 | (define-key map "q" 'rmail-summary-quit) | ||
| 103 | (define-key map "Q" 'rmail-summary-wipe) | ||
| 104 | (define-key map "r" 'rmail-summary-reply) | ||
| 105 | (define-key map "s" 'rmail-summary-expunge-and-save) | ||
| 106 | ;; See rms's comment in rmail.el | ||
| 107 | ;; (define-key map "\er" 'rmail-summary-search-backward) | ||
| 108 | (define-key map "\es" 'rmail-summary-search) | ||
| 109 | (define-key map "t" 'rmail-summary-toggle-header) | ||
| 110 | (define-key map "u" 'rmail-summary-undelete) | ||
| 111 | (define-key map "\M-u" 'rmail-summary-undelete-many) | ||
| 112 | (define-key map "x" 'rmail-summary-expunge) | ||
| 113 | (define-key map "w" 'rmail-summary-output-body) | ||
| 114 | (define-key map "v" 'rmail-mime) | ||
| 115 | (define-key map "." 'rmail-summary-beginning-of-message) | ||
| 116 | (define-key map "/" 'rmail-summary-end-of-message) | ||
| 117 | (define-key map "<" 'rmail-summary-first-message) | ||
| 118 | (define-key map ">" 'rmail-summary-last-message) | ||
| 119 | (define-key map " " 'rmail-summary-scroll-msg-up) | ||
| 120 | (define-key map "\177" 'rmail-summary-scroll-msg-down) | ||
| 121 | (define-key map "?" 'describe-mode) | ||
| 122 | (define-key map "\C-c\C-n" 'rmail-summary-next-same-subject) | ||
| 123 | (define-key map "\C-c\C-p" 'rmail-summary-previous-same-subject) | ||
| 124 | (define-key map "\C-c\C-s\C-d" 'rmail-summary-sort-by-date) | ||
| 125 | (define-key map "\C-c\C-s\C-s" 'rmail-summary-sort-by-subject) | ||
| 126 | (define-key map "\C-c\C-s\C-a" 'rmail-summary-sort-by-author) | ||
| 127 | (define-key map "\C-c\C-s\C-r" 'rmail-summary-sort-by-recipient) | ||
| 128 | (define-key map "\C-c\C-s\C-c" 'rmail-summary-sort-by-correspondent) | ||
| 129 | (define-key map "\C-c\C-s\C-l" 'rmail-summary-sort-by-lines) | ||
| 130 | (define-key map "\C-c\C-s\C-k" 'rmail-summary-sort-by-labels) | ||
| 131 | (define-key map "\C-x\C-s" 'rmail-summary-save-buffer) | ||
| 132 | |||
| 133 | ;; Menu bar bindings. | ||
| 134 | |||
| 135 | (define-key map [menu-bar] (make-sparse-keymap)) | ||
| 136 | |||
| 137 | (define-key map [menu-bar classify] | ||
| 138 | (cons "Classify" (make-sparse-keymap "Classify"))) | ||
| 139 | |||
| 140 | (define-key map [menu-bar classify output-menu] | ||
| 141 | '("Output (Rmail Menu)..." . rmail-summary-output-menu)) | ||
| 142 | |||
| 143 | (define-key map [menu-bar classify input-menu] | ||
| 144 | '("Input Rmail File (menu)..." . rmail-input-menu)) | ||
| 145 | |||
| 146 | (define-key map [menu-bar classify input-menu] | ||
| 147 | '(nil)) | ||
| 148 | |||
| 149 | (define-key map [menu-bar classify output-menu] | ||
| 150 | '(nil)) | ||
| 151 | |||
| 152 | (define-key map [menu-bar classify output-body] | ||
| 153 | '("Output body..." . rmail-summary-output-body)) | ||
| 154 | |||
| 155 | (define-key map [menu-bar classify output-inbox] | ||
| 156 | '("Output..." . rmail-summary-output)) | ||
| 157 | |||
| 158 | (define-key map [menu-bar classify output] | ||
| 159 | '("Output as seen..." . rmail-summary-output-as-seen)) | ||
| 160 | |||
| 161 | (define-key map [menu-bar classify kill-label] | ||
| 162 | '("Kill Label..." . rmail-summary-kill-label)) | ||
| 163 | |||
| 164 | (define-key map [menu-bar classify add-label] | ||
| 165 | '("Add Label..." . rmail-summary-add-label)) | ||
| 166 | |||
| 167 | (define-key map [menu-bar summary] | ||
| 168 | (cons "Summary" (make-sparse-keymap "Summary"))) | ||
| 169 | |||
| 170 | (define-key map [menu-bar summary senders] | ||
| 171 | '("By Senders..." . rmail-summary-by-senders)) | ||
| 172 | |||
| 173 | (define-key map [menu-bar summary labels] | ||
| 174 | '("By Labels..." . rmail-summary-by-labels)) | ||
| 175 | |||
| 176 | (define-key map [menu-bar summary recipients] | ||
| 177 | '("By Recipients..." . rmail-summary-by-recipients)) | ||
| 178 | |||
| 179 | (define-key map [menu-bar summary topic] | ||
| 180 | '("By Topic..." . rmail-summary-by-topic)) | ||
| 181 | |||
| 182 | (define-key map [menu-bar summary regexp] | ||
| 183 | '("By Regexp..." . rmail-summary-by-regexp)) | ||
| 184 | |||
| 185 | (define-key map [menu-bar summary all] | ||
| 186 | '("All" . rmail-summary)) | ||
| 187 | |||
| 188 | (define-key map [menu-bar mail] | ||
| 189 | (cons "Mail" (make-sparse-keymap "Mail"))) | ||
| 190 | |||
| 191 | (define-key map [menu-bar mail rmail-summary-get-new-mail] | ||
| 192 | '("Get New Mail" . rmail-summary-get-new-mail)) | ||
| 193 | |||
| 194 | (define-key map [menu-bar mail lambda] | ||
| 195 | '("----")) | ||
| 196 | |||
| 197 | (define-key map [menu-bar mail continue] | ||
| 198 | '("Continue" . rmail-summary-continue)) | ||
| 199 | |||
| 200 | (define-key map [menu-bar mail resend] | ||
| 201 | '("Re-send..." . rmail-summary-resend)) | ||
| 202 | |||
| 203 | (define-key map [menu-bar mail forward] | ||
| 204 | '("Forward" . rmail-summary-forward)) | ||
| 205 | |||
| 206 | (define-key map [menu-bar mail retry] | ||
| 207 | '("Retry" . rmail-summary-retry-failure)) | ||
| 208 | |||
| 209 | (define-key map [menu-bar mail reply] | ||
| 210 | '("Reply" . rmail-summary-reply)) | ||
| 211 | |||
| 212 | (define-key map [menu-bar mail mail] | ||
| 213 | '("Mail" . rmail-summary-mail)) | ||
| 214 | |||
| 215 | (define-key map [menu-bar delete] | ||
| 216 | (cons "Delete" (make-sparse-keymap "Delete"))) | ||
| 217 | |||
| 218 | (define-key map [menu-bar delete expunge/save] | ||
| 219 | '("Expunge/Save" . rmail-summary-expunge-and-save)) | ||
| 220 | |||
| 221 | (define-key map [menu-bar delete expunge] | ||
| 222 | '("Expunge" . rmail-summary-expunge)) | ||
| 223 | |||
| 224 | (define-key map [menu-bar delete undelete] | ||
| 225 | '("Undelete" . rmail-summary-undelete)) | ||
| 226 | |||
| 227 | (define-key map [menu-bar delete delete] | ||
| 228 | '("Delete" . rmail-summary-delete-forward)) | ||
| 229 | |||
| 230 | (define-key map [menu-bar move] | ||
| 231 | (cons "Move" (make-sparse-keymap "Move"))) | ||
| 232 | |||
| 233 | (define-key map [menu-bar move search-back] | ||
| 234 | '("Search Back..." . rmail-summary-search-backward)) | ||
| 235 | |||
| 236 | (define-key map [menu-bar move search] | ||
| 237 | '("Search..." . rmail-summary-search)) | ||
| 238 | |||
| 239 | (define-key map [menu-bar move previous] | ||
| 240 | '("Previous Nondeleted" . rmail-summary-previous-msg)) | ||
| 241 | |||
| 242 | (define-key map [menu-bar move next] | ||
| 243 | '("Next Nondeleted" . rmail-summary-next-msg)) | ||
| 244 | |||
| 245 | (define-key map [menu-bar move last] | ||
| 246 | '("Last" . rmail-summary-last-message)) | ||
| 247 | |||
| 248 | (define-key map [menu-bar move first] | ||
| 249 | '("First" . rmail-summary-first-message)) | ||
| 250 | |||
| 251 | (define-key map [menu-bar move previous] | ||
| 252 | '("Previous" . rmail-summary-previous-all)) | ||
| 253 | |||
| 254 | (define-key map [menu-bar move next] | ||
| 255 | '("Next" . rmail-summary-next-all)) | ||
| 256 | map) | ||
| 68 | "Keymap used in Rmail summary mode.") | 257 | "Keymap used in Rmail summary mode.") |
| 69 | 258 | ||
| 70 | ;; Entry points for making a summary buffer. | 259 | ;; Entry points for making a summary buffer. |
| @@ -990,207 +1179,6 @@ Search, the `unseen' attribute is restored.") | |||
| 990 | (save-excursion | 1179 | (save-excursion |
| 991 | (switch-to-buffer rmail-buffer) | 1180 | (switch-to-buffer rmail-buffer) |
| 992 | (save-buffer)))) | 1181 | (save-buffer)))) |
| 993 | |||
| 994 | |||
| 995 | (if rmail-summary-mode-map | ||
| 996 | nil | ||
| 997 | (setq rmail-summary-mode-map (make-keymap)) | ||
| 998 | (suppress-keymap rmail-summary-mode-map) | ||
| 999 | |||
| 1000 | (define-key rmail-summary-mode-map [mouse-2] 'rmail-summary-mouse-goto-message) | ||
| 1001 | (define-key rmail-summary-mode-map "a" 'rmail-summary-add-label) | ||
| 1002 | (define-key rmail-summary-mode-map "b" 'rmail-summary-bury) | ||
| 1003 | (define-key rmail-summary-mode-map "c" 'rmail-summary-continue) | ||
| 1004 | (define-key rmail-summary-mode-map "d" 'rmail-summary-delete-forward) | ||
| 1005 | (define-key rmail-summary-mode-map "\C-d" 'rmail-summary-delete-backward) | ||
| 1006 | (define-key rmail-summary-mode-map "e" 'rmail-summary-edit-current-message) | ||
| 1007 | (define-key rmail-summary-mode-map "f" 'rmail-summary-forward) | ||
| 1008 | (define-key rmail-summary-mode-map "g" 'rmail-summary-get-new-mail) | ||
| 1009 | (define-key rmail-summary-mode-map "h" 'rmail-summary) | ||
| 1010 | (define-key rmail-summary-mode-map "i" 'rmail-summary-input) | ||
| 1011 | (define-key rmail-summary-mode-map "j" 'rmail-summary-goto-msg) | ||
| 1012 | (define-key rmail-summary-mode-map "\C-m" 'rmail-summary-goto-msg) | ||
| 1013 | (define-key rmail-summary-mode-map "k" 'rmail-summary-kill-label) | ||
| 1014 | (define-key rmail-summary-mode-map "l" 'rmail-summary-by-labels) | ||
| 1015 | (define-key rmail-summary-mode-map "\e\C-h" 'rmail-summary) | ||
| 1016 | (define-key rmail-summary-mode-map "\e\C-l" 'rmail-summary-by-labels) | ||
| 1017 | (define-key rmail-summary-mode-map "\e\C-r" 'rmail-summary-by-recipients) | ||
| 1018 | (define-key rmail-summary-mode-map "\e\C-s" 'rmail-summary-by-regexp) | ||
| 1019 | ;; `f' for "from". | ||
| 1020 | (define-key rmail-summary-mode-map "\e\C-f" 'rmail-summary-by-senders) | ||
| 1021 | (define-key rmail-summary-mode-map "\e\C-t" 'rmail-summary-by-topic) | ||
| 1022 | (define-key rmail-summary-mode-map "m" 'rmail-summary-mail) | ||
| 1023 | (define-key rmail-summary-mode-map "\M-m" 'rmail-summary-retry-failure) | ||
| 1024 | (define-key rmail-summary-mode-map "n" 'rmail-summary-next-msg) | ||
| 1025 | (define-key rmail-summary-mode-map "\en" 'rmail-summary-next-all) | ||
| 1026 | (define-key rmail-summary-mode-map "\e\C-n" 'rmail-summary-next-labeled-message) | ||
| 1027 | (define-key rmail-summary-mode-map "o" 'rmail-summary-output) | ||
| 1028 | (define-key rmail-summary-mode-map "\C-o" 'rmail-summary-output-as-seen) | ||
| 1029 | (define-key rmail-summary-mode-map "p" 'rmail-summary-previous-msg) | ||
| 1030 | (define-key rmail-summary-mode-map "\ep" 'rmail-summary-previous-all) | ||
| 1031 | (define-key rmail-summary-mode-map "\e\C-p" 'rmail-summary-previous-labeled-message) | ||
| 1032 | (define-key rmail-summary-mode-map "q" 'rmail-summary-quit) | ||
| 1033 | (define-key rmail-summary-mode-map "Q" 'rmail-summary-wipe) | ||
| 1034 | (define-key rmail-summary-mode-map "r" 'rmail-summary-reply) | ||
| 1035 | (define-key rmail-summary-mode-map "s" 'rmail-summary-expunge-and-save) | ||
| 1036 | ;; See rms's comment in rmail.el | ||
| 1037 | ;;; (define-key rmail-summary-mode-map "\er" 'rmail-summary-search-backward) | ||
| 1038 | (define-key rmail-summary-mode-map "\es" 'rmail-summary-search) | ||
| 1039 | (define-key rmail-summary-mode-map "t" 'rmail-summary-toggle-header) | ||
| 1040 | (define-key rmail-summary-mode-map "u" 'rmail-summary-undelete) | ||
| 1041 | (define-key rmail-summary-mode-map "\M-u" 'rmail-summary-undelete-many) | ||
| 1042 | (define-key rmail-summary-mode-map "x" 'rmail-summary-expunge) | ||
| 1043 | (define-key rmail-summary-mode-map "w" 'rmail-summary-output-body) | ||
| 1044 | (define-key rmail-summary-mode-map "v" 'rmail-mime) | ||
| 1045 | (define-key rmail-summary-mode-map "." 'rmail-summary-beginning-of-message) | ||
| 1046 | (define-key rmail-summary-mode-map "/" 'rmail-summary-end-of-message) | ||
| 1047 | (define-key rmail-summary-mode-map "<" 'rmail-summary-first-message) | ||
| 1048 | (define-key rmail-summary-mode-map ">" 'rmail-summary-last-message) | ||
| 1049 | (define-key rmail-summary-mode-map " " 'rmail-summary-scroll-msg-up) | ||
| 1050 | (define-key rmail-summary-mode-map "\177" 'rmail-summary-scroll-msg-down) | ||
| 1051 | (define-key rmail-summary-mode-map "?" 'describe-mode) | ||
| 1052 | (define-key rmail-summary-mode-map "\C-c\C-n" 'rmail-summary-next-same-subject) | ||
| 1053 | (define-key rmail-summary-mode-map "\C-c\C-p" 'rmail-summary-previous-same-subject) | ||
| 1054 | (define-key rmail-summary-mode-map "\C-c\C-s\C-d" | ||
| 1055 | 'rmail-summary-sort-by-date) | ||
| 1056 | (define-key rmail-summary-mode-map "\C-c\C-s\C-s" | ||
| 1057 | 'rmail-summary-sort-by-subject) | ||
| 1058 | (define-key rmail-summary-mode-map "\C-c\C-s\C-a" | ||
| 1059 | 'rmail-summary-sort-by-author) | ||
| 1060 | (define-key rmail-summary-mode-map "\C-c\C-s\C-r" | ||
| 1061 | 'rmail-summary-sort-by-recipient) | ||
| 1062 | (define-key rmail-summary-mode-map "\C-c\C-s\C-c" | ||
| 1063 | 'rmail-summary-sort-by-correspondent) | ||
| 1064 | (define-key rmail-summary-mode-map "\C-c\C-s\C-l" | ||
| 1065 | 'rmail-summary-sort-by-lines) | ||
| 1066 | (define-key rmail-summary-mode-map "\C-c\C-s\C-k" | ||
| 1067 | 'rmail-summary-sort-by-labels) | ||
| 1068 | (define-key rmail-summary-mode-map "\C-x\C-s" 'rmail-summary-save-buffer) | ||
| 1069 | ) | ||
| 1070 | |||
| 1071 | ;;; Menu bar bindings. | ||
| 1072 | |||
| 1073 | (define-key rmail-summary-mode-map [menu-bar] (make-sparse-keymap)) | ||
| 1074 | |||
| 1075 | (define-key rmail-summary-mode-map [menu-bar classify] | ||
| 1076 | (cons "Classify" (make-sparse-keymap "Classify"))) | ||
| 1077 | |||
| 1078 | (define-key rmail-summary-mode-map [menu-bar classify output-menu] | ||
| 1079 | '("Output (Rmail Menu)..." . rmail-summary-output-menu)) | ||
| 1080 | |||
| 1081 | (define-key rmail-summary-mode-map [menu-bar classify input-menu] | ||
| 1082 | '("Input Rmail File (menu)..." . rmail-input-menu)) | ||
| 1083 | |||
| 1084 | (define-key rmail-summary-mode-map [menu-bar classify input-menu] | ||
| 1085 | '(nil)) | ||
| 1086 | |||
| 1087 | (define-key rmail-summary-mode-map [menu-bar classify output-menu] | ||
| 1088 | '(nil)) | ||
| 1089 | |||
| 1090 | (define-key rmail-summary-mode-map [menu-bar classify output-body] | ||
| 1091 | '("Output body..." . rmail-summary-output-body)) | ||
| 1092 | |||
| 1093 | (define-key rmail-summary-mode-map [menu-bar classify output-inbox] | ||
| 1094 | '("Output..." . rmail-summary-output)) | ||
| 1095 | |||
| 1096 | (define-key rmail-summary-mode-map [menu-bar classify output] | ||
| 1097 | '("Output as seen..." . rmail-summary-output-as-seen)) | ||
| 1098 | |||
| 1099 | (define-key rmail-summary-mode-map [menu-bar classify kill-label] | ||
| 1100 | '("Kill Label..." . rmail-summary-kill-label)) | ||
| 1101 | |||
| 1102 | (define-key rmail-summary-mode-map [menu-bar classify add-label] | ||
| 1103 | '("Add Label..." . rmail-summary-add-label)) | ||
| 1104 | |||
| 1105 | (define-key rmail-summary-mode-map [menu-bar summary] | ||
| 1106 | (cons "Summary" (make-sparse-keymap "Summary"))) | ||
| 1107 | |||
| 1108 | (define-key rmail-summary-mode-map [menu-bar summary senders] | ||
| 1109 | '("By Senders..." . rmail-summary-by-senders)) | ||
| 1110 | |||
| 1111 | (define-key rmail-summary-mode-map [menu-bar summary labels] | ||
| 1112 | '("By Labels..." . rmail-summary-by-labels)) | ||
| 1113 | |||
| 1114 | (define-key rmail-summary-mode-map [menu-bar summary recipients] | ||
| 1115 | '("By Recipients..." . rmail-summary-by-recipients)) | ||
| 1116 | |||
| 1117 | (define-key rmail-summary-mode-map [menu-bar summary topic] | ||
| 1118 | '("By Topic..." . rmail-summary-by-topic)) | ||
| 1119 | |||
| 1120 | (define-key rmail-summary-mode-map [menu-bar summary regexp] | ||
| 1121 | '("By Regexp..." . rmail-summary-by-regexp)) | ||
| 1122 | |||
| 1123 | (define-key rmail-summary-mode-map [menu-bar summary all] | ||
| 1124 | '("All" . rmail-summary)) | ||
| 1125 | |||
| 1126 | (define-key rmail-summary-mode-map [menu-bar mail] | ||
| 1127 | (cons "Mail" (make-sparse-keymap "Mail"))) | ||
| 1128 | |||
| 1129 | (define-key rmail-summary-mode-map [menu-bar mail rmail-summary-get-new-mail] | ||
| 1130 | '("Get New Mail" . rmail-summary-get-new-mail)) | ||
| 1131 | |||
| 1132 | (define-key rmail-summary-mode-map [menu-bar mail lambda] | ||
| 1133 | '("----")) | ||
| 1134 | |||
| 1135 | (define-key rmail-summary-mode-map [menu-bar mail continue] | ||
| 1136 | '("Continue" . rmail-summary-continue)) | ||
| 1137 | |||
| 1138 | (define-key rmail-summary-mode-map [menu-bar mail resend] | ||
| 1139 | '("Re-send..." . rmail-summary-resend)) | ||
| 1140 | |||
| 1141 | (define-key rmail-summary-mode-map [menu-bar mail forward] | ||
| 1142 | '("Forward" . rmail-summary-forward)) | ||
| 1143 | |||
| 1144 | (define-key rmail-summary-mode-map [menu-bar mail retry] | ||
| 1145 | '("Retry" . rmail-summary-retry-failure)) | ||
| 1146 | |||
| 1147 | (define-key rmail-summary-mode-map [menu-bar mail reply] | ||
| 1148 | '("Reply" . rmail-summary-reply)) | ||
| 1149 | |||
| 1150 | (define-key rmail-summary-mode-map [menu-bar mail mail] | ||
| 1151 | '("Mail" . rmail-summary-mail)) | ||
| 1152 | |||
| 1153 | (define-key rmail-summary-mode-map [menu-bar delete] | ||
| 1154 | (cons "Delete" (make-sparse-keymap "Delete"))) | ||
| 1155 | |||
| 1156 | (define-key rmail-summary-mode-map [menu-bar delete expunge/save] | ||
| 1157 | '("Expunge/Save" . rmail-summary-expunge-and-save)) | ||
| 1158 | |||
| 1159 | (define-key rmail-summary-mode-map [menu-bar delete expunge] | ||
| 1160 | '("Expunge" . rmail-summary-expunge)) | ||
| 1161 | |||
| 1162 | (define-key rmail-summary-mode-map [menu-bar delete undelete] | ||
| 1163 | '("Undelete" . rmail-summary-undelete)) | ||
| 1164 | |||
| 1165 | (define-key rmail-summary-mode-map [menu-bar delete delete] | ||
| 1166 | '("Delete" . rmail-summary-delete-forward)) | ||
| 1167 | |||
| 1168 | (define-key rmail-summary-mode-map [menu-bar move] | ||
| 1169 | (cons "Move" (make-sparse-keymap "Move"))) | ||
| 1170 | |||
| 1171 | (define-key rmail-summary-mode-map [menu-bar move search-back] | ||
| 1172 | '("Search Back..." . rmail-summary-search-backward)) | ||
| 1173 | |||
| 1174 | (define-key rmail-summary-mode-map [menu-bar move search] | ||
| 1175 | '("Search..." . rmail-summary-search)) | ||
| 1176 | |||
| 1177 | (define-key rmail-summary-mode-map [menu-bar move previous] | ||
| 1178 | '("Previous Nondeleted" . rmail-summary-previous-msg)) | ||
| 1179 | |||
| 1180 | (define-key rmail-summary-mode-map [menu-bar move next] | ||
| 1181 | '("Next Nondeleted" . rmail-summary-next-msg)) | ||
| 1182 | |||
| 1183 | (define-key rmail-summary-mode-map [menu-bar move last] | ||
| 1184 | '("Last" . rmail-summary-last-message)) | ||
| 1185 | |||
| 1186 | (define-key rmail-summary-mode-map [menu-bar move first] | ||
| 1187 | '("First" . rmail-summary-first-message)) | ||
| 1188 | |||
| 1189 | (define-key rmail-summary-mode-map [menu-bar move previous] | ||
| 1190 | '("Previous" . rmail-summary-previous-all)) | ||
| 1191 | |||
| 1192 | (define-key rmail-summary-mode-map [menu-bar move next] | ||
| 1193 | '("Next" . rmail-summary-next-all)) | ||
| 1194 | 1182 | ||
| 1195 | (defun rmail-summary-mouse-goto-message (event) | 1183 | (defun rmail-summary-mouse-goto-message (event) |
| 1196 | "Select the message whose summary line you click on." | 1184 | "Select the message whose summary line you click on." |
diff --git a/lisp/menu-bar.el b/lisp/menu-bar.el index 42caeee447c..8a33381b618 100644 --- a/lisp/menu-bar.el +++ b/lisp/menu-bar.el | |||
| @@ -28,11 +28,17 @@ | |||
| 28 | 28 | ||
| 29 | ;;; Code: | 29 | ;;; Code: |
| 30 | 30 | ||
| 31 | ;; This is referenced by some code below; it is defined in uniquify.el | ||
| 32 | (defvar uniquify-buffer-name-style) | ||
| 33 | |||
| 34 | ;; From emulation/cua-base.el; used below | ||
| 35 | (defvar cua-enable-cua-keys) | ||
| 36 | |||
| 37 | |||
| 31 | ;; Don't clobber an existing menu-bar keymap, to preserve any menu-bar key | 38 | ;; Don't clobber an existing menu-bar keymap, to preserve any menu-bar key |
| 32 | ;; definitions made in loaddefs.el. | 39 | ;; definitions made in loaddefs.el. |
| 33 | (or (lookup-key global-map [menu-bar]) | 40 | (or (lookup-key global-map [menu-bar]) |
| 34 | (define-key global-map [menu-bar] (make-sparse-keymap "menu-bar"))) | 41 | (define-key global-map [menu-bar] (make-sparse-keymap "menu-bar"))) |
| 35 | (defvar menu-bar-help-menu (make-sparse-keymap "Help")) | ||
| 36 | 42 | ||
| 37 | (if (not (featurep 'ns)) | 43 | (if (not (featurep 'ns)) |
| 38 | ;; Force Help item to come last, after the major mode's own items. | 44 | ;; Force Help item to come last, after the major mode's own items. |
| @@ -52,149 +58,151 @@ | |||
| 52 | (define-key global-map [menu-bar services] ; set-up in ns-win | 58 | (define-key global-map [menu-bar services] ; set-up in ns-win |
| 53 | (cons (purecopy "Services") (make-sparse-keymap "Services")))) | 59 | (cons (purecopy "Services") (make-sparse-keymap "Services")))) |
| 54 | 60 | ||
| 55 | ;; If running under GNUstep, "Help" is moved and renamed "Info" (see below). | ||
| 56 | (or (and (featurep 'ns) | ||
| 57 | (not (eq system-type 'darwin))) | ||
| 58 | (define-key global-map [menu-bar help-menu] | ||
| 59 | (cons (purecopy "Help") menu-bar-help-menu))) | ||
| 60 | |||
| 61 | (defvar menu-bar-tools-menu (make-sparse-keymap "Tools")) | ||
| 62 | (define-key global-map [menu-bar tools] | ||
| 63 | (cons (purecopy "Tools") menu-bar-tools-menu)) | ||
| 64 | ;; This definition is just to show what this looks like. | 61 | ;; This definition is just to show what this looks like. |
| 65 | ;; 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. |
| 66 | (defvar global-buffers-menu-map (make-sparse-keymap "Buffers")) | 63 | (defvar global-buffers-menu-map (make-sparse-keymap "Buffers")) |
| 67 | (define-key global-map [menu-bar buffer] | ||
| 68 | (cons (purecopy "Buffers") global-buffers-menu-map)) | ||
| 69 | (defvar menu-bar-options-menu (make-sparse-keymap "Options")) | ||
| 70 | (define-key global-map [menu-bar options] | ||
| 71 | (cons (purecopy "Options") menu-bar-options-menu)) | ||
| 72 | (defvar menu-bar-edit-menu (make-sparse-keymap "Edit")) | ||
| 73 | (define-key global-map [menu-bar edit] | ||
| 74 | (cons (purecopy "Edit") menu-bar-edit-menu)) | ||
| 75 | (defvar menu-bar-file-menu (make-sparse-keymap "File")) | ||
| 76 | (define-key global-map [menu-bar file] | ||
| 77 | (cons (purecopy "File") menu-bar-file-menu)) | ||
| 78 | |||
| 79 | ;; Put "Help" menu at the front, called "Info". | ||
| 80 | (and (featurep 'ns) | ||
| 81 | (not (eq system-type 'darwin)) | ||
| 82 | (define-key global-map [menu-bar help-menu] | ||
| 83 | (cons (purecopy "Info") menu-bar-help-menu))) | ||
| 84 | 64 | ||
| 85 | ;; Only declared obsolete (and only made a proper alias) in 23.3. | 65 | ;; Only declared obsolete (and only made a proper alias) in 23.3. |
| 86 | (define-obsolete-variable-alias 'menu-bar-files-menu 'menu-bar-file-menu "22.1") | 66 | (define-obsolete-variable-alias |
| 87 | 67 | 'menu-bar-files-menu 'menu-bar-file-menu "22.1") | |
| 88 | ;; This is referenced by some code below; it is defined in uniquify.el | 68 | (defvar menu-bar-file-menu |
| 89 | (defvar uniquify-buffer-name-style) | 69 | (let ((menu (make-sparse-keymap "File"))) |
| 90 | 70 | ||
| 91 | ;; From emulation/cua-base.el; used below | 71 | ;; The "File" menu items |
| 92 | (defvar cua-enable-cua-keys) | 72 | (define-key menu [exit-emacs] |
| 73 | `(menu-item ,(purecopy "Quit") save-buffers-kill-terminal | ||
| 74 | :help ,(purecopy "Save unsaved buffers, then exit"))) | ||
| 93 | 75 | ||
| 94 | 76 | (define-key menu [separator-exit] | |
| 95 | ;; The "File" menu items | 77 | menu-bar-separator) |
| 96 | (define-key menu-bar-file-menu [exit-emacs] | 78 | |
| 97 | `(menu-item ,(purecopy "Quit") save-buffers-kill-terminal | 79 | ;; Don't use delete-frame as event name because that is a special |
| 98 | :help ,(purecopy "Save unsaved buffers, then exit"))) | 80 | ;; event. |
| 99 | 81 | (define-key menu [delete-this-frame] | |
| 100 | (define-key menu-bar-file-menu [separator-exit] | 82 | `(menu-item ,(purecopy "Delete Frame") delete-frame |
| 101 | menu-bar-separator) | 83 | :visible (fboundp 'delete-frame) |
| 102 | 84 | :enable (delete-frame-enabled-p) | |
| 103 | ;; Don't use delete-frame as event name because that is a special | 85 | :help ,(purecopy "Delete currently selected frame"))) |
| 104 | ;; event. | 86 | (define-key menu [make-frame-on-display] |
| 105 | (define-key menu-bar-file-menu [delete-this-frame] | 87 | `(menu-item ,(purecopy "New Frame on Display...") make-frame-on-display |
| 106 | `(menu-item ,(purecopy "Delete Frame") delete-frame | 88 | :visible (fboundp 'make-frame-on-display) |
| 107 | :visible (fboundp 'delete-frame) | 89 | :help ,(purecopy "Open a new frame on another display"))) |
| 108 | :enable (delete-frame-enabled-p) | 90 | (define-key menu [make-frame] |
| 109 | :help ,(purecopy "Delete currently selected frame"))) | 91 | `(menu-item ,(purecopy "New Frame") make-frame-command |
| 110 | (define-key menu-bar-file-menu [make-frame-on-display] | 92 | :visible (fboundp 'make-frame-command) |
| 111 | `(menu-item ,(purecopy "New Frame on Display...") make-frame-on-display | 93 | :help ,(purecopy "Open a new frame"))) |
| 112 | :visible (fboundp 'make-frame-on-display) | 94 | |
| 113 | :help ,(purecopy "Open a new frame on another display"))) | 95 | (define-key menu [one-window] |
| 114 | (define-key menu-bar-file-menu [make-frame] | 96 | `(menu-item ,(purecopy "Remove Splits") delete-other-windows |
| 115 | `(menu-item ,(purecopy "New Frame") make-frame-command | 97 | :enable (not (one-window-p t nil)) |
| 116 | :visible (fboundp 'make-frame-command) | 98 | :help ,(purecopy |
| 117 | :help ,(purecopy "Open a new frame"))) | 99 | "Selected window grows to fill the whole frame"))) |
| 118 | 100 | ||
| 119 | (define-key menu-bar-file-menu [one-window] | 101 | (define-key menu [split-window] |
| 120 | `(menu-item ,(purecopy "Remove Splits") delete-other-windows | 102 | `(menu-item ,(purecopy "Split Window") split-window-vertically |
| 121 | :enable (not (one-window-p t nil)) | 103 | :enable (and (menu-bar-menu-frame-live-and-visible-p) |
| 122 | :help ,(purecopy "Selected window grows to fill the whole frame"))) | 104 | (menu-bar-non-minibuffer-window-p)) |
| 123 | 105 | :help ,(purecopy "Split selected window in two windows"))) | |
| 124 | (define-key menu-bar-file-menu [split-window] | 106 | |
| 125 | `(menu-item ,(purecopy "Split Window") split-window-vertically | 107 | (define-key menu [separator-window] |
| 126 | :enable (and (menu-bar-menu-frame-live-and-visible-p) | 108 | menu-bar-separator) |
| 127 | (menu-bar-non-minibuffer-window-p)) | 109 | |
| 128 | :help ,(purecopy "Split selected window in two windows"))) | 110 | (define-key menu [ps-print-region] |
| 129 | 111 | `(menu-item ,(purecopy "Postscript Print Region (B+W)") ps-print-region | |
| 130 | (define-key menu-bar-file-menu [separator-window] | 112 | :enable mark-active |
| 131 | menu-bar-separator) | 113 | :help ,(purecopy "Pretty-print marked region in black and white to PostScript printer"))) |
| 132 | 114 | (define-key menu [ps-print-buffer] | |
| 133 | (define-key menu-bar-file-menu [ps-print-region] | 115 | `(menu-item ,(purecopy "Postscript Print Buffer (B+W)") ps-print-buffer |
| 134 | `(menu-item ,(purecopy "Postscript Print Region (B+W)") ps-print-region | 116 | :enable (menu-bar-menu-frame-live-and-visible-p) |
| 135 | :enable mark-active | 117 | :help ,(purecopy "Pretty-print current buffer in black and white to PostScript printer"))) |
| 136 | :help ,(purecopy "Pretty-print marked region in black and white to PostScript printer"))) | 118 | (define-key menu [ps-print-region-faces] |
| 137 | (define-key menu-bar-file-menu [ps-print-buffer] | 119 | `(menu-item ,(purecopy "Postscript Print Region") |
| 138 | `(menu-item ,(purecopy "Postscript Print Buffer (B+W)") ps-print-buffer | 120 | ps-print-region-with-faces |
| 139 | :enable (menu-bar-menu-frame-live-and-visible-p) | 121 | :enable mark-active |
| 140 | :help ,(purecopy "Pretty-print current buffer in black and white to PostScript printer"))) | 122 | :help ,(purecopy |
| 141 | (define-key menu-bar-file-menu [ps-print-region-faces] | 123 | "Pretty-print marked region to PostScript printer"))) |
| 142 | `(menu-item ,(purecopy "Postscript Print Region") ps-print-region-with-faces | 124 | (define-key menu [ps-print-buffer-faces] |
| 143 | :enable mark-active | 125 | `(menu-item ,(purecopy "Postscript Print Buffer") |
| 144 | :help ,(purecopy "Pretty-print marked region to PostScript printer"))) | 126 | ps-print-buffer-with-faces |
| 145 | (define-key menu-bar-file-menu [ps-print-buffer-faces] | 127 | :enable (menu-bar-menu-frame-live-and-visible-p) |
| 146 | `(menu-item ,(purecopy "Postscript Print Buffer") ps-print-buffer-with-faces | 128 | :help ,(purecopy "Pretty-print current buffer to PostScript printer"))) |
| 147 | :enable (menu-bar-menu-frame-live-and-visible-p) | 129 | (define-key menu [print-region] |
| 148 | :help ,(purecopy "Pretty-print current buffer to PostScript printer"))) | 130 | `(menu-item ,(purecopy "Print Region") print-region |
| 149 | (define-key menu-bar-file-menu [print-region] | 131 | :enable mark-active |
| 150 | `(menu-item ,(purecopy "Print Region") print-region | 132 | :help ,(purecopy "Print region between mark and current position"))) |
| 151 | :enable mark-active | 133 | (define-key menu [print-buffer] |
| 152 | :help ,(purecopy "Print region between mark and current position"))) | 134 | `(menu-item ,(purecopy "Print Buffer") print-buffer |
| 153 | (define-key menu-bar-file-menu [print-buffer] | 135 | :enable (menu-bar-menu-frame-live-and-visible-p) |
| 154 | `(menu-item ,(purecopy "Print Buffer") print-buffer | 136 | :help ,(purecopy "Print current buffer with page headings"))) |
| 155 | :enable (menu-bar-menu-frame-live-and-visible-p) | 137 | |
| 156 | :help ,(purecopy "Print current buffer with page headings"))) | 138 | (define-key menu [separator-print] |
| 157 | 139 | menu-bar-separator) | |
| 158 | (define-key menu-bar-file-menu [separator-print] | 140 | |
| 159 | menu-bar-separator) | 141 | (define-key menu [recover-session] |
| 160 | 142 | `(menu-item ,(purecopy "Recover Crashed Session") recover-session | |
| 161 | (define-key menu-bar-file-menu [recover-session] | 143 | :enable |
| 162 | `(menu-item ,(purecopy "Recover Crashed Session") recover-session | 144 | (and auto-save-list-file-prefix |
| 163 | :enable (and auto-save-list-file-prefix | 145 | (file-directory-p |
| 164 | (file-directory-p | 146 | (file-name-directory auto-save-list-file-prefix)) |
| 165 | (file-name-directory auto-save-list-file-prefix)) | 147 | (directory-files |
| 166 | (directory-files | 148 | (file-name-directory auto-save-list-file-prefix) |
| 167 | (file-name-directory auto-save-list-file-prefix) | 149 | nil |
| 168 | nil | 150 | (concat "\\`" |
| 169 | (concat "\\`" | 151 | (regexp-quote |
| 170 | (regexp-quote | 152 | (file-name-nondirectory |
| 171 | (file-name-nondirectory | 153 | auto-save-list-file-prefix))) |
| 172 | auto-save-list-file-prefix))) | 154 | t)) |
| 173 | t)) | 155 | :help ,(purecopy "Recover edits from a crashed session"))) |
| 174 | :help ,(purecopy "Recover edits from a crashed session"))) | 156 | (define-key menu [revert-buffer] |
| 175 | (define-key menu-bar-file-menu [revert-buffer] | 157 | `(menu-item ,(purecopy "Revert Buffer") revert-buffer |
| 176 | `(menu-item ,(purecopy "Revert Buffer") revert-buffer | 158 | :enable (or revert-buffer-function |
| 177 | :enable (or revert-buffer-function | 159 | revert-buffer-insert-file-contents-function |
| 178 | revert-buffer-insert-file-contents-function | 160 | (and buffer-file-number |
| 179 | (and buffer-file-number | 161 | (or (buffer-modified-p) |
| 180 | (or (buffer-modified-p) | 162 | (not (verify-visited-file-modtime |
| 181 | (not (verify-visited-file-modtime | 163 | (current-buffer)))))) |
| 182 | (current-buffer)))))) | 164 | :help ,(purecopy "Re-read current buffer from its file"))) |
| 183 | :help ,(purecopy "Re-read current buffer from its file"))) | 165 | (define-key menu [write-file] |
| 184 | (define-key menu-bar-file-menu [write-file] | 166 | `(menu-item ,(purecopy "Save As...") write-file |
| 185 | `(menu-item ,(purecopy "Save As...") write-file | 167 | :enable (and (menu-bar-menu-frame-live-and-visible-p) |
| 186 | :enable (and (menu-bar-menu-frame-live-and-visible-p) | 168 | (menu-bar-non-minibuffer-window-p)) |
| 187 | (menu-bar-non-minibuffer-window-p)) | 169 | :help ,(purecopy "Write current buffer to another file"))) |
| 188 | :help ,(purecopy "Write current buffer to another file"))) | 170 | (define-key menu [save-buffer] |
| 189 | (define-key menu-bar-file-menu [save-buffer] | 171 | `(menu-item ,(purecopy "Save") save-buffer |
| 190 | `(menu-item ,(purecopy "Save") save-buffer | 172 | :enable (and (buffer-modified-p) |
| 191 | :enable (and (buffer-modified-p) | 173 | (buffer-file-name) |
| 192 | (buffer-file-name) | 174 | (menu-bar-non-minibuffer-window-p)) |
| 193 | (menu-bar-non-minibuffer-window-p)) | 175 | :help ,(purecopy "Save current buffer to its file"))) |
| 194 | :help ,(purecopy "Save current buffer to its file"))) | 176 | |
| 195 | 177 | (define-key menu [separator-save] | |
| 196 | (define-key menu-bar-file-menu [separator-save] | 178 | menu-bar-separator) |
| 197 | menu-bar-separator) | 179 | |
| 180 | |||
| 181 | (define-key menu [kill-buffer] | ||
| 182 | `(menu-item ,(purecopy "Close") kill-this-buffer | ||
| 183 | :enable (kill-this-buffer-enabled-p) | ||
| 184 | :help ,(purecopy "Discard (kill) current buffer"))) | ||
| 185 | (define-key menu [insert-file] | ||
| 186 | `(menu-item ,(purecopy "Insert File...") insert-file | ||
| 187 | :enable (menu-bar-non-minibuffer-window-p) | ||
| 188 | :help ,(purecopy "Insert another file into current buffer"))) | ||
| 189 | (define-key menu [dired] | ||
| 190 | `(menu-item ,(purecopy "Open Directory...") dired | ||
| 191 | :enable (menu-bar-non-minibuffer-window-p) | ||
| 192 | :help ,(purecopy | ||
| 193 | "Read a directory, to operate on its files"))) | ||
| 194 | (define-key menu [open-file] | ||
| 195 | `(menu-item ,(purecopy "Open File...") menu-find-file-existing | ||
| 196 | :enable (menu-bar-non-minibuffer-window-p) | ||
| 197 | :help ,(purecopy | ||
| 198 | "Read an existing file into an Emacs buffer"))) | ||
| 199 | (define-key menu [new-file] | ||
| 200 | `(menu-item ,(purecopy "Visit New File...") find-file | ||
| 201 | :enable (menu-bar-non-minibuffer-window-p) | ||
| 202 | :help ,(purecopy | ||
| 203 | "Specify a new file's name, to edit the file"))) | ||
| 204 | |||
| 205 | menu)) | ||
| 198 | 206 | ||
| 199 | (defun menu-find-file-existing () | 207 | (defun menu-find-file-existing () |
| 200 | "Edit the existing file FILENAME." | 208 | "Edit the existing file FILENAME." |
| @@ -206,31 +214,6 @@ | |||
| 206 | (find-file-existing filename) | 214 | (find-file-existing filename) |
| 207 | (find-file filename)))) | 215 | (find-file filename)))) |
| 208 | 216 | ||
| 209 | |||
| 210 | (define-key menu-bar-file-menu [kill-buffer] | ||
| 211 | `(menu-item ,(purecopy "Close") kill-this-buffer | ||
| 212 | :enable (kill-this-buffer-enabled-p) | ||
| 213 | :help ,(purecopy "Discard (kill) current buffer"))) | ||
| 214 | (define-key menu-bar-file-menu [insert-file] | ||
| 215 | `(menu-item ,(purecopy "Insert File...") insert-file | ||
| 216 | :enable (menu-bar-non-minibuffer-window-p) | ||
| 217 | :help ,(purecopy "Insert another file into current buffer"))) | ||
| 218 | (define-key menu-bar-file-menu [dired] | ||
| 219 | `(menu-item ,(purecopy "Open Directory...") dired | ||
| 220 | :enable (menu-bar-non-minibuffer-window-p) | ||
| 221 | :help ,(purecopy "Read a directory, to operate on its files"))) | ||
| 222 | (define-key menu-bar-file-menu [open-file] | ||
| 223 | `(menu-item ,(purecopy "Open File...") menu-find-file-existing | ||
| 224 | :enable (menu-bar-non-minibuffer-window-p) | ||
| 225 | :help ,(purecopy "Read an existing file into an Emacs buffer"))) | ||
| 226 | (define-key menu-bar-file-menu [new-file] | ||
| 227 | `(menu-item ,(purecopy "Visit New File...") find-file | ||
| 228 | :enable (menu-bar-non-minibuffer-window-p) | ||
| 229 | :help ,(purecopy "Specify a new file's name, to edit the file"))) | ||
| 230 | |||
| 231 | |||
| 232 | ;; The "Edit" menu items | ||
| 233 | |||
| 234 | ;; The "Edit->Search" submenu | 217 | ;; The "Edit->Search" submenu |
| 235 | (defvar menu-bar-last-search-type nil | 218 | (defvar menu-bar-last-search-type nil |
| 236 | "Type of last non-incremental search command called from the menu.") | 219 | "Type of last non-incremental search command called from the menu.") |
| @@ -297,131 +280,253 @@ | |||
| 297 | (isearch-update-ring string t) | 280 | (isearch-update-ring string t) |
| 298 | (re-search-backward string))) | 281 | (re-search-backward string))) |
| 299 | 282 | ||
| 300 | (defvar menu-bar-search-menu (make-sparse-keymap "Search")) | ||
| 301 | |||
| 302 | ;; The Edit->Search->Incremental Search menu | 283 | ;; The Edit->Search->Incremental Search menu |
| 303 | (defvar menu-bar-i-search-menu | 284 | (defvar menu-bar-i-search-menu |
| 304 | (make-sparse-keymap "Incremental Search")) | 285 | (let ((menu (make-sparse-keymap "Incremental Search"))) |
| 305 | 286 | (define-key menu [isearch-backward-regexp] | |
| 306 | (define-key menu-bar-i-search-menu [isearch-backward-regexp] | 287 | `(menu-item ,(purecopy "Backward Regexp...") isearch-backward-regexp |
| 307 | `(menu-item ,(purecopy "Backward Regexp...") isearch-backward-regexp | 288 | :help ,(purecopy |
| 308 | :help ,(purecopy "Search backwards for a regular expression as you type it"))) | 289 | "Search backwards for a regular expression as you type it"))) |
| 309 | (define-key menu-bar-i-search-menu [isearch-forward-regexp] | 290 | (define-key menu [isearch-forward-regexp] |
| 310 | `(menu-item ,(purecopy "Forward Regexp...") isearch-forward-regexp | 291 | `(menu-item ,(purecopy "Forward Regexp...") isearch-forward-regexp |
| 311 | :help ,(purecopy "Search forward for a regular expression as you type it"))) | 292 | :help ,(purecopy |
| 312 | (define-key menu-bar-i-search-menu [isearch-backward] | 293 | "Search forward for a regular expression as you type it"))) |
| 313 | `(menu-item ,(purecopy "Backward String...") isearch-backward | 294 | (define-key menu [isearch-backward] |
| 314 | :help ,(purecopy "Search backwards for a string as you type it"))) | 295 | `(menu-item ,(purecopy "Backward String...") isearch-backward |
| 315 | (define-key menu-bar-i-search-menu [isearch-forward] | 296 | :help ,(purecopy "Search backwards for a string as you type it"))) |
| 316 | `(menu-item ,(purecopy "Forward String...") isearch-forward | 297 | (define-key menu [isearch-forward] |
| 317 | :help ,(purecopy "Search forward for a string as you type it"))) | 298 | `(menu-item ,(purecopy "Forward String...") isearch-forward |
| 318 | 299 | :help ,(purecopy "Search forward for a string as you type it"))) | |
| 319 | (define-key menu-bar-search-menu [i-search] | 300 | menu)) |
| 320 | `(menu-item ,(purecopy "Incremental Search") ,menu-bar-i-search-menu)) | 301 | |
| 321 | (define-key menu-bar-search-menu [separator-tag-isearch] | 302 | (defvar menu-bar-search-menu |
| 322 | menu-bar-separator) | 303 | (let ((menu (make-sparse-keymap "Search"))) |
| 323 | 304 | ||
| 324 | (define-key menu-bar-search-menu [tags-continue] | 305 | (define-key menu [i-search] |
| 325 | `(menu-item ,(purecopy "Continue Tags Search") tags-loop-continue | 306 | `(menu-item ,(purecopy "Incremental Search") ,menu-bar-i-search-menu)) |
| 326 | :help ,(purecopy "Continue last tags search operation"))) | 307 | (define-key menu [separator-tag-isearch] |
| 327 | (define-key menu-bar-search-menu [tags-srch] | 308 | menu-bar-separator) |
| 328 | `(menu-item ,(purecopy "Search Tagged Files...") tags-search | 309 | |
| 329 | :help ,(purecopy "Search for a regexp in all tagged files"))) | 310 | (define-key menu [tags-continue] |
| 330 | (define-key menu-bar-search-menu [separator-tag-search] | 311 | `(menu-item ,(purecopy "Continue Tags Search") tags-loop-continue |
| 331 | menu-bar-separator) | 312 | :help ,(purecopy "Continue last tags search operation"))) |
| 332 | 313 | (define-key menu [tags-srch] | |
| 333 | (define-key menu-bar-search-menu [repeat-search-back] | 314 | `(menu-item ,(purecopy "Search Tagged Files...") tags-search |
| 334 | `(menu-item ,(purecopy "Repeat Backwards") nonincremental-repeat-search-backward | 315 | :help ,(purecopy "Search for a regexp in all tagged files"))) |
| 335 | :enable (or (and (eq menu-bar-last-search-type 'string) | 316 | (define-key menu [separator-tag-search] menu-bar-separator) |
| 336 | search-ring) | 317 | |
| 337 | (and (eq menu-bar-last-search-type 'regexp) | 318 | (define-key menu [repeat-search-back] |
| 338 | regexp-search-ring)) | 319 | `(menu-item ,(purecopy "Repeat Backwards") |
| 339 | :help ,(purecopy "Repeat last search backwards"))) | 320 | nonincremental-repeat-search-backward |
| 340 | (define-key menu-bar-search-menu [repeat-search-fwd] | 321 | :enable (or (and (eq menu-bar-last-search-type 'string) |
| 341 | `(menu-item ,(purecopy "Repeat Forward") nonincremental-repeat-search-forward | 322 | search-ring) |
| 342 | :enable (or (and (eq menu-bar-last-search-type 'string) | 323 | (and (eq menu-bar-last-search-type 'regexp) |
| 343 | search-ring) | 324 | regexp-search-ring)) |
| 344 | (and (eq menu-bar-last-search-type 'regexp) | 325 | :help ,(purecopy "Repeat last search backwards"))) |
| 345 | regexp-search-ring)) | 326 | (define-key menu [repeat-search-fwd] |
| 346 | :help ,(purecopy "Repeat last search forward"))) | 327 | `(menu-item ,(purecopy "Repeat Forward") |
| 347 | (define-key menu-bar-search-menu [separator-repeat-search] | 328 | nonincremental-repeat-search-forward |
| 348 | menu-bar-separator) | 329 | :enable (or (and (eq menu-bar-last-search-type 'string) |
| 349 | 330 | search-ring) | |
| 350 | (define-key menu-bar-search-menu [re-search-backward] | 331 | (and (eq menu-bar-last-search-type 'regexp) |
| 351 | `(menu-item ,(purecopy "Regexp Backwards...") nonincremental-re-search-backward | 332 | regexp-search-ring)) |
| 352 | :help ,(purecopy "Search backwards for a regular expression"))) | 333 | :help ,(purecopy "Repeat last search forward"))) |
| 353 | (define-key menu-bar-search-menu [re-search-forward] | 334 | (define-key menu [separator-repeat-search] |
| 354 | `(menu-item ,(purecopy "Regexp Forward...") nonincremental-re-search-forward | 335 | menu-bar-separator) |
| 355 | :help ,(purecopy "Search forward for a regular expression"))) | 336 | |
| 356 | 337 | (define-key menu [re-search-backward] | |
| 357 | (define-key menu-bar-search-menu [search-backward] | 338 | `(menu-item ,(purecopy "Regexp Backwards...") |
| 358 | `(menu-item ,(purecopy "String Backwards...") nonincremental-search-backward | 339 | nonincremental-re-search-backward |
| 359 | :help ,(purecopy "Search backwards for a string"))) | 340 | :help ,(purecopy |
| 360 | (define-key menu-bar-search-menu [search-forward] | 341 | "Search backwards for a regular expression"))) |
| 361 | `(menu-item ,(purecopy "String Forward...") nonincremental-search-forward | 342 | (define-key menu [re-search-forward] |
| 362 | :help ,(purecopy "Search forward for a string"))) | 343 | `(menu-item ,(purecopy "Regexp Forward...") |
| 344 | nonincremental-re-search-forward | ||
| 345 | :help ,(purecopy "Search forward for a regular expression"))) | ||
| 346 | |||
| 347 | (define-key menu [search-backward] | ||
| 348 | `(menu-item ,(purecopy "String Backwards...") | ||
| 349 | nonincremental-search-backward | ||
| 350 | :help ,(purecopy "Search backwards for a string"))) | ||
| 351 | (define-key menu [search-forward] | ||
| 352 | `(menu-item ,(purecopy "String Forward...") nonincremental-search-forward | ||
| 353 | :help ,(purecopy "Search forward for a string"))) | ||
| 354 | menu)) | ||
| 363 | 355 | ||
| 364 | ;; The Edit->Replace submenu | 356 | ;; The Edit->Replace submenu |
| 365 | 357 | ||
| 366 | (defvar menu-bar-replace-menu (make-sparse-keymap "Replace")) | 358 | (defvar menu-bar-replace-menu |
| 367 | 359 | (let ((menu (make-sparse-keymap "Replace"))) | |
| 368 | (define-key menu-bar-replace-menu [tags-repl-continue] | 360 | (define-key menu [tags-repl-continue] |
| 369 | `(menu-item ,(purecopy "Continue Replace") tags-loop-continue | 361 | `(menu-item ,(purecopy "Continue Replace") tags-loop-continue |
| 370 | :help ,(purecopy "Continue last tags replace operation"))) | 362 | :help ,(purecopy "Continue last tags replace operation"))) |
| 371 | (define-key menu-bar-replace-menu [tags-repl] | 363 | (define-key menu [tags-repl] |
| 372 | `(menu-item ,(purecopy "Replace in Tagged Files...") tags-query-replace | 364 | `(menu-item ,(purecopy "Replace in Tagged Files...") tags-query-replace |
| 373 | :help ,(purecopy "Interactively replace a regexp in all tagged files"))) | 365 | :help ,(purecopy |
| 374 | (define-key menu-bar-replace-menu [separator-replace-tags] | 366 | "Interactively replace a regexp in all tagged files"))) |
| 375 | menu-bar-separator) | 367 | (define-key menu [separator-replace-tags] |
| 376 | 368 | menu-bar-separator) | |
| 377 | (define-key menu-bar-replace-menu [query-replace-regexp] | 369 | |
| 378 | `(menu-item ,(purecopy "Replace Regexp...") query-replace-regexp | 370 | (define-key menu [query-replace-regexp] |
| 379 | :enable (not buffer-read-only) | 371 | `(menu-item ,(purecopy "Replace Regexp...") query-replace-regexp |
| 380 | :help ,(purecopy "Replace regular expression interactively, ask about each occurrence"))) | 372 | :enable (not buffer-read-only) |
| 381 | (define-key menu-bar-replace-menu [query-replace] | 373 | :help ,(purecopy "Replace regular expression interactively, ask about each occurrence"))) |
| 382 | `(menu-item ,(purecopy "Replace String...") query-replace | 374 | (define-key menu [query-replace] |
| 383 | :enable (not buffer-read-only) | 375 | `(menu-item ,(purecopy "Replace String...") query-replace |
| 384 | :help ,(purecopy "Replace string interactively, ask about each occurrence"))) | 376 | :enable (not buffer-read-only) |
| 377 | :help ,(purecopy | ||
| 378 | "Replace string interactively, ask about each occurrence"))) | ||
| 379 | menu)) | ||
| 385 | 380 | ||
| 386 | ;;; Assemble the top-level Edit menu items. | 381 | ;;; Assemble the top-level Edit menu items. |
| 387 | (define-key menu-bar-edit-menu [props] | 382 | (defvar menu-bar-goto-menu |
| 388 | `(menu-item ,(purecopy "Text Properties") facemenu-menu)) | 383 | (let ((menu (make-sparse-keymap "Go To"))) |
| 389 | 384 | ||
| 390 | ;; ns-win.el said: Add spell for platorm consistency. | 385 | (define-key menu [set-tags-name] |
| 391 | (if (featurep 'ns) | 386 | `(menu-item ,(purecopy "Set Tags File Name...") visit-tags-table |
| 392 | (define-key menu-bar-edit-menu [spell] | 387 | :help ,(purecopy "Tell Tags commands which tag table file to use"))) |
| 393 | `(menu-item ,(purecopy "Spell") ispell-menu-map))) | 388 | |
| 394 | 389 | (define-key menu [separator-tag-file] | |
| 395 | (define-key menu-bar-edit-menu [fill] | 390 | menu-bar-separator) |
| 396 | `(menu-item ,(purecopy "Fill") fill-region | 391 | |
| 397 | :enable (and mark-active (not buffer-read-only)) | 392 | (define-key menu [apropos-tags] |
| 398 | :help | 393 | `(menu-item ,(purecopy "Tags Apropos...") tags-apropos |
| 399 | ,(purecopy "Fill text in region to fit between left and right margin"))) | 394 | :help ,(purecopy "Find function/variables whose names match regexp"))) |
| 400 | 395 | (define-key menu [next-tag-otherw] | |
| 401 | (define-key menu-bar-edit-menu [separator-bookmark] | 396 | `(menu-item ,(purecopy "Next Tag in Other Window") |
| 402 | menu-bar-separator) | 397 | menu-bar-next-tag-other-window |
| 403 | 398 | :enable (and (boundp 'tags-location-ring) | |
| 404 | (define-key menu-bar-edit-menu [bookmark] | 399 | (not (ring-empty-p tags-location-ring))) |
| 405 | `(menu-item ,(purecopy "Bookmarks") menu-bar-bookmark-map)) | 400 | :help ,(purecopy "Find next function/variable matching last tag name in another window"))) |
| 401 | |||
| 402 | (define-key menu [next-tag] | ||
| 403 | `(menu-item ,(purecopy "Find Next Tag") | ||
| 404 | menu-bar-next-tag | ||
| 405 | :enable (and (boundp 'tags-location-ring) | ||
| 406 | (not (ring-empty-p tags-location-ring))) | ||
| 407 | :help ,(purecopy "Find next function/variable matching last tag name"))) | ||
| 408 | (define-key menu [find-tag-otherw] | ||
| 409 | `(menu-item ,(purecopy "Find Tag in Other Window...") find-tag-other-window | ||
| 410 | :help ,(purecopy "Find function/variable definition in another window"))) | ||
| 411 | (define-key menu [find-tag] | ||
| 412 | `(menu-item ,(purecopy "Find Tag...") find-tag | ||
| 413 | :help ,(purecopy "Find definition of function or variable"))) | ||
| 414 | |||
| 415 | (define-key menu [separator-tags] | ||
| 416 | menu-bar-separator) | ||
| 417 | |||
| 418 | (define-key menu [end-of-buf] | ||
| 419 | `(menu-item ,(purecopy "Goto End of Buffer") end-of-buffer)) | ||
| 420 | (define-key menu [beg-of-buf] | ||
| 421 | `(menu-item ,(purecopy "Goto Beginning of Buffer") beginning-of-buffer)) | ||
| 422 | (define-key menu [go-to-pos] | ||
| 423 | `(menu-item ,(purecopy "Goto Buffer Position...") goto-char | ||
| 424 | :help ,(purecopy "Read a number N and go to buffer position N"))) | ||
| 425 | (define-key menu [go-to-line] | ||
| 426 | `(menu-item ,(purecopy "Goto Line...") goto-line | ||
| 427 | :help ,(purecopy "Read a line number and go to that line"))) | ||
| 428 | menu)) | ||
| 406 | 429 | ||
| 407 | (defvar menu-bar-goto-menu (make-sparse-keymap "Go To")) | ||
| 408 | 430 | ||
| 409 | (define-key menu-bar-goto-menu [set-tags-name] | 431 | (defvar yank-menu (cons (purecopy "Select Yank") nil)) |
| 410 | `(menu-item ,(purecopy "Set Tags File Name...") visit-tags-table | 432 | (fset 'yank-menu (cons 'keymap yank-menu)) |
| 411 | :help ,(purecopy "Tell Tags commands which tag table file to use"))) | ||
| 412 | |||
| 413 | (define-key menu-bar-goto-menu [separator-tag-file] | ||
| 414 | menu-bar-separator) | ||
| 415 | 433 | ||
| 416 | (define-key menu-bar-goto-menu [apropos-tags] | 434 | (defvar menu-bar-edit-menu |
| 417 | `(menu-item ,(purecopy "Tags Apropos...") tags-apropos | 435 | (let ((menu (make-sparse-keymap "Edit"))) |
| 418 | :help ,(purecopy "Find function/variables whose names match regexp"))) | 436 | |
| 419 | (define-key menu-bar-goto-menu [next-tag-otherw] | 437 | (define-key menu [props] |
| 420 | `(menu-item ,(purecopy "Next Tag in Other Window") | 438 | `(menu-item ,(purecopy "Text Properties") facemenu-menu)) |
| 421 | menu-bar-next-tag-other-window | 439 | |
| 422 | :enable (and (boundp 'tags-location-ring) | 440 | ;; ns-win.el said: Add spell for platorm consistency. |
| 423 | (not (ring-empty-p tags-location-ring))) | 441 | (if (featurep 'ns) |
| 424 | :help ,(purecopy "Find next function/variable matching last tag name in another window"))) | 442 | (define-key menu [spell] |
| 443 | `(menu-item ,(purecopy "Spell") ispell-menu-map))) | ||
| 444 | |||
| 445 | (define-key menu [fill] | ||
| 446 | `(menu-item ,(purecopy "Fill") fill-region | ||
| 447 | :enable (and mark-active (not buffer-read-only)) | ||
| 448 | :help | ||
| 449 | ,(purecopy "Fill text in region to fit between left and right margin"))) | ||
| 450 | |||
| 451 | (define-key menu [separator-bookmark] | ||
| 452 | menu-bar-separator) | ||
| 453 | |||
| 454 | (define-key menu [bookmark] | ||
| 455 | `(menu-item ,(purecopy "Bookmarks") menu-bar-bookmark-map)) | ||
| 456 | |||
| 457 | (define-key menu [goto] | ||
| 458 | `(menu-item ,(purecopy "Go To") ,menu-bar-goto-menu)) | ||
| 459 | |||
| 460 | (define-key menu [replace] | ||
| 461 | `(menu-item ,(purecopy "Replace") ,menu-bar-replace-menu)) | ||
| 462 | |||
| 463 | (define-key menu [search] | ||
| 464 | `(menu-item ,(purecopy "Search") ,menu-bar-search-menu)) | ||
| 465 | |||
| 466 | (define-key menu [separator-search] | ||
| 467 | menu-bar-separator) | ||
| 468 | |||
| 469 | (define-key menu [mark-whole-buffer] | ||
| 470 | `(menu-item ,(purecopy "Select All") mark-whole-buffer | ||
| 471 | :help ,(purecopy "Mark the whole buffer for a subsequent cut/copy"))) | ||
| 472 | (define-key menu [clear] | ||
| 473 | `(menu-item ,(purecopy "Clear") delete-region | ||
| 474 | :enable (and mark-active | ||
| 475 | (not buffer-read-only)) | ||
| 476 | :help | ||
| 477 | ,(purecopy "Delete the text in region between mark and current position"))) | ||
| 478 | |||
| 479 | |||
| 480 | (define-key menu (if (featurep 'ns) [select-paste] | ||
| 481 | [paste-from-menu]) | ||
| 482 | ;; ns-win.el said: Change text to be more consistent with | ||
| 483 | ;; surrounding menu items `paste', etc." | ||
| 484 | `(menu-item ,(purecopy (if (featurep 'ns) "Select and Paste" | ||
| 485 | "Paste from Kill Menu")) yank-menu | ||
| 486 | :enable (and (cdr yank-menu) (not buffer-read-only)) | ||
| 487 | :help ,(purecopy "Choose a string from the kill ring and paste it"))) | ||
| 488 | (define-key menu [paste] | ||
| 489 | `(menu-item ,(purecopy "Paste") yank | ||
| 490 | :enable (and (or | ||
| 491 | ;; Emacs compiled --without-x (or --with-ns) | ||
| 492 | ;; doesn't have x-selection-exists-p. | ||
| 493 | (and (fboundp 'x-selection-exists-p) | ||
| 494 | (x-selection-exists-p 'CLIPBOARD)) | ||
| 495 | (if (featurep 'ns) ; like paste-from-menu | ||
| 496 | (cdr yank-menu) | ||
| 497 | kill-ring)) | ||
| 498 | (not buffer-read-only)) | ||
| 499 | :help ,(purecopy "Paste (yank) text most recently cut/copied"))) | ||
| 500 | (define-key menu [copy] | ||
| 501 | ;; ns-win.el said: Substitute a Copy function that works better | ||
| 502 | ;; under X (for GNUstep). | ||
| 503 | `(menu-item ,(purecopy "Copy") ,(if (featurep 'ns) | ||
| 504 | 'ns-copy-including-secondary | ||
| 505 | 'kill-ring-save) | ||
| 506 | :enable mark-active | ||
| 507 | :help ,(purecopy "Copy text in region between mark and current position") | ||
| 508 | :keys ,(purecopy (if (featurep 'ns) | ||
| 509 | "\\[ns-copy-including-secondary]" | ||
| 510 | "\\[kill-ring-save]")))) | ||
| 511 | (define-key menu [cut] | ||
| 512 | `(menu-item ,(purecopy "Cut") kill-region | ||
| 513 | :enable (and mark-active (not buffer-read-only)) | ||
| 514 | :help | ||
| 515 | ,(purecopy "Cut (kill) text in region between mark and current position"))) | ||
| 516 | ;; ns-win.el said: Separate undo from cut/paste section. | ||
| 517 | (if (featurep 'ns) | ||
| 518 | (define-key menu [separator-undo] menu-bar-separator)) | ||
| 519 | |||
| 520 | (define-key menu [undo] | ||
| 521 | `(menu-item ,(purecopy "Undo") undo | ||
| 522 | :enable (and (not buffer-read-only) | ||
| 523 | (not (eq t buffer-undo-list)) | ||
| 524 | (if (eq last-command 'undo) | ||
| 525 | (listp pending-undo-list) | ||
| 526 | (consp buffer-undo-list))) | ||
| 527 | :help ,(purecopy "Undo last operation"))) | ||
| 528 | |||
| 529 | menu)) | ||
| 425 | 530 | ||
| 426 | (defun menu-bar-next-tag-other-window () | 531 | (defun menu-bar-next-tag-other-window () |
| 427 | "Find the next definition of the tag already specified." | 532 | "Find the next definition of the tag already specified." |
| @@ -433,105 +538,6 @@ | |||
| 433 | (interactive) | 538 | (interactive) |
| 434 | (find-tag nil t)) | 539 | (find-tag nil t)) |
| 435 | 540 | ||
| 436 | (define-key menu-bar-goto-menu [next-tag] | ||
| 437 | `(menu-item ,(purecopy "Find Next Tag") | ||
| 438 | menu-bar-next-tag | ||
| 439 | :enable (and (boundp 'tags-location-ring) | ||
| 440 | (not (ring-empty-p tags-location-ring))) | ||
| 441 | :help ,(purecopy "Find next function/variable matching last tag name"))) | ||
| 442 | (define-key menu-bar-goto-menu [find-tag-otherw] | ||
| 443 | `(menu-item ,(purecopy "Find Tag in Other Window...") find-tag-other-window | ||
| 444 | :help ,(purecopy "Find function/variable definition in another window"))) | ||
| 445 | (define-key menu-bar-goto-menu [find-tag] | ||
| 446 | `(menu-item ,(purecopy "Find Tag...") find-tag | ||
| 447 | :help ,(purecopy "Find definition of function or variable"))) | ||
| 448 | |||
| 449 | (define-key menu-bar-goto-menu [separator-tags] | ||
| 450 | menu-bar-separator) | ||
| 451 | |||
| 452 | (define-key menu-bar-goto-menu [end-of-buf] | ||
| 453 | `(menu-item ,(purecopy "Goto End of Buffer") end-of-buffer)) | ||
| 454 | (define-key menu-bar-goto-menu [beg-of-buf] | ||
| 455 | `(menu-item ,(purecopy "Goto Beginning of Buffer") beginning-of-buffer)) | ||
| 456 | (define-key menu-bar-goto-menu [go-to-pos] | ||
| 457 | `(menu-item ,(purecopy "Goto Buffer Position...") goto-char | ||
| 458 | :help ,(purecopy "Read a number N and go to buffer position N"))) | ||
| 459 | (define-key menu-bar-goto-menu [go-to-line] | ||
| 460 | `(menu-item ,(purecopy "Goto Line...") goto-line | ||
| 461 | :help ,(purecopy "Read a line number and go to that line"))) | ||
| 462 | |||
| 463 | (define-key menu-bar-edit-menu [goto] | ||
| 464 | `(menu-item ,(purecopy "Go To") ,menu-bar-goto-menu)) | ||
| 465 | |||
| 466 | (define-key menu-bar-edit-menu [replace] | ||
| 467 | `(menu-item ,(purecopy "Replace") ,menu-bar-replace-menu)) | ||
| 468 | |||
| 469 | (define-key menu-bar-edit-menu [search] | ||
| 470 | `(menu-item ,(purecopy "Search") ,menu-bar-search-menu)) | ||
| 471 | |||
| 472 | (define-key menu-bar-edit-menu [separator-search] | ||
| 473 | menu-bar-separator) | ||
| 474 | |||
| 475 | (define-key menu-bar-edit-menu [mark-whole-buffer] | ||
| 476 | `(menu-item ,(purecopy "Select All") mark-whole-buffer | ||
| 477 | :help ,(purecopy "Mark the whole buffer for a subsequent cut/copy"))) | ||
| 478 | (define-key menu-bar-edit-menu [clear] | ||
| 479 | `(menu-item ,(purecopy "Clear") delete-region | ||
| 480 | :enable (and mark-active | ||
| 481 | (not buffer-read-only)) | ||
| 482 | :help | ||
| 483 | ,(purecopy "Delete the text in region between mark and current position"))) | ||
| 484 | (defvar yank-menu (cons (purecopy "Select Yank") nil)) | ||
| 485 | (fset 'yank-menu (cons 'keymap yank-menu)) | ||
| 486 | (define-key menu-bar-edit-menu (if (featurep 'ns) [select-paste] | ||
| 487 | [paste-from-menu]) | ||
| 488 | ;; ns-win.el said: Change text to be more consistent with | ||
| 489 | ;; surrounding menu items `paste', etc." | ||
| 490 | `(menu-item ,(purecopy (if (featurep 'ns) "Select and Paste" | ||
| 491 | "Paste from Kill Menu")) yank-menu | ||
| 492 | :enable (and (cdr yank-menu) (not buffer-read-only)) | ||
| 493 | :help ,(purecopy "Choose a string from the kill ring and paste it"))) | ||
| 494 | (define-key menu-bar-edit-menu [paste] | ||
| 495 | `(menu-item ,(purecopy "Paste") yank | ||
| 496 | :enable (and (or | ||
| 497 | ;; Emacs compiled --without-x (or --with-ns) | ||
| 498 | ;; doesn't have x-selection-exists-p. | ||
| 499 | (and (fboundp 'x-selection-exists-p) | ||
| 500 | (x-selection-exists-p 'CLIPBOARD)) | ||
| 501 | (if (featurep 'ns) ; like paste-from-menu | ||
| 502 | (cdr yank-menu) | ||
| 503 | kill-ring)) | ||
| 504 | (not buffer-read-only)) | ||
| 505 | :help ,(purecopy "Paste (yank) text most recently cut/copied"))) | ||
| 506 | (define-key menu-bar-edit-menu [copy] | ||
| 507 | ;; ns-win.el said: Substitute a Copy function that works better | ||
| 508 | ;; under X (for GNUstep). | ||
| 509 | `(menu-item ,(purecopy "Copy") ,(if (featurep 'ns) | ||
| 510 | 'ns-copy-including-secondary | ||
| 511 | 'kill-ring-save) | ||
| 512 | :enable mark-active | ||
| 513 | :help ,(purecopy "Copy text in region between mark and current position") | ||
| 514 | :keys ,(purecopy (if (featurep 'ns) | ||
| 515 | "\\[ns-copy-including-secondary]" | ||
| 516 | "\\[kill-ring-save]")))) | ||
| 517 | (define-key menu-bar-edit-menu [cut] | ||
| 518 | `(menu-item ,(purecopy "Cut") kill-region | ||
| 519 | :enable (and mark-active (not buffer-read-only)) | ||
| 520 | :help | ||
| 521 | ,(purecopy "Cut (kill) text in region between mark and current position"))) | ||
| 522 | ;; ns-win.el said: Separate undo from cut/paste section. | ||
| 523 | (if (featurep 'ns) | ||
| 524 | (define-key menu-bar-edit-menu [separator-undo] menu-bar-separator)) | ||
| 525 | |||
| 526 | (define-key menu-bar-edit-menu [undo] | ||
| 527 | `(menu-item ,(purecopy "Undo") undo | ||
| 528 | :enable (and (not buffer-read-only) | ||
| 529 | (not (eq t buffer-undo-list)) | ||
| 530 | (if (eq last-command 'undo) | ||
| 531 | (listp pending-undo-list) | ||
| 532 | (consp buffer-undo-list))) | ||
| 533 | :help ,(purecopy "Undo last operation"))) | ||
| 534 | |||
| 535 | (define-obsolete-function-alias | 541 | (define-obsolete-function-alias |
| 536 | 'menu-bar-kill-ring-save 'kill-ring-save "24.1") | 542 | 'menu-bar-kill-ring-save 'kill-ring-save "24.1") |
| 537 | 543 | ||
| @@ -581,48 +587,49 @@ Do the same for the keys of the same name." | |||
| 581 | 587 | ||
| 582 | ;; The "Options" menu items | 588 | ;; The "Options" menu items |
| 583 | 589 | ||
| 584 | (defvar menu-bar-custom-menu (make-sparse-keymap "Customize")) | 590 | (defvar menu-bar-custom-menu |
| 585 | 591 | (let ((menu (make-sparse-keymap "Customize"))) | |
| 586 | (define-key menu-bar-custom-menu [customize-apropos-faces] | 592 | |
| 587 | `(menu-item ,(purecopy "Faces Matching...") customize-apropos-faces | 593 | (define-key menu [customize-apropos-faces] |
| 588 | :help ,(purecopy "Browse faces matching a regexp or word list"))) | 594 | `(menu-item ,(purecopy "Faces Matching...") customize-apropos-faces |
| 589 | (define-key menu-bar-custom-menu [customize-apropos-options] | 595 | :help ,(purecopy "Browse faces matching a regexp or word list"))) |
| 590 | `(menu-item ,(purecopy "Options Matching...") customize-apropos-options | 596 | (define-key menu [customize-apropos-options] |
| 591 | :help ,(purecopy "Browse options matching a regexp or word list"))) | 597 | `(menu-item ,(purecopy "Options Matching...") customize-apropos-options |
| 592 | (define-key menu-bar-custom-menu [customize-apropos] | 598 | :help ,(purecopy "Browse options matching a regexp or word list"))) |
| 593 | `(menu-item ,(purecopy "All Settings Matching...") customize-apropos | 599 | (define-key menu [customize-apropos] |
| 594 | :help ,(purecopy "Browse customizable settings matching a regexp or word list"))) | 600 | `(menu-item ,(purecopy "All Settings Matching...") customize-apropos |
| 595 | (define-key menu-bar-custom-menu [separator-1] | 601 | :help ,(purecopy "Browse customizable settings matching a regexp or word list"))) |
| 596 | menu-bar-separator) | 602 | (define-key menu [separator-1] |
| 597 | (define-key menu-bar-custom-menu [customize-group] | 603 | menu-bar-separator) |
| 598 | `(menu-item ,(purecopy "Specific Group...") customize-group | 604 | (define-key menu [customize-group] |
| 599 | :help ,(purecopy "Customize settings of specific group"))) | 605 | `(menu-item ,(purecopy "Specific Group...") customize-group |
| 600 | (define-key menu-bar-custom-menu [customize-face] | 606 | :help ,(purecopy "Customize settings of specific group"))) |
| 601 | `(menu-item ,(purecopy "Specific Face...") customize-face | 607 | (define-key menu [customize-face] |
| 602 | :help ,(purecopy "Customize attributes of specific face"))) | 608 | `(menu-item ,(purecopy "Specific Face...") customize-face |
| 603 | (define-key menu-bar-custom-menu [customize-option] | 609 | :help ,(purecopy "Customize attributes of specific face"))) |
| 604 | `(menu-item ,(purecopy "Specific Option...") customize-option | 610 | (define-key menu [customize-option] |
| 605 | :help ,(purecopy "Customize value of specific option"))) | 611 | `(menu-item ,(purecopy "Specific Option...") customize-option |
| 606 | (define-key menu-bar-custom-menu [separator-2] | 612 | :help ,(purecopy "Customize value of specific option"))) |
| 607 | menu-bar-separator) | 613 | (define-key menu [separator-2] |
| 608 | (define-key menu-bar-custom-menu [customize-changed-options] | 614 | menu-bar-separator) |
| 609 | `(menu-item ,(purecopy "New Options...") customize-changed-options | 615 | (define-key menu [customize-changed-options] |
| 610 | :help ,(purecopy "Options added or changed in recent Emacs versions"))) | 616 | `(menu-item ,(purecopy "New Options...") customize-changed-options |
| 611 | (define-key menu-bar-custom-menu [customize-saved] | 617 | :help ,(purecopy "Options added or changed in recent Emacs versions"))) |
| 612 | `(menu-item ,(purecopy "Saved Options") customize-saved | 618 | (define-key menu [customize-saved] |
| 613 | :help ,(purecopy "Customize previously saved options"))) | 619 | `(menu-item ,(purecopy "Saved Options") customize-saved |
| 614 | (define-key menu-bar-custom-menu [separator-3] | 620 | :help ,(purecopy "Customize previously saved options"))) |
| 615 | menu-bar-separator) | 621 | (define-key menu [separator-3] |
| 616 | (define-key menu-bar-custom-menu [customize-browse] | 622 | menu-bar-separator) |
| 617 | `(menu-item ,(purecopy "Browse Customization Groups") customize-browse | 623 | (define-key menu [customize-browse] |
| 618 | :help ,(purecopy "Browse all customization groups"))) | 624 | `(menu-item ,(purecopy "Browse Customization Groups") customize-browse |
| 619 | (define-key menu-bar-custom-menu [customize] | 625 | :help ,(purecopy "Browse all customization groups"))) |
| 620 | `(menu-item ,(purecopy "Top-level Customization Group") customize | 626 | (define-key menu [customize] |
| 621 | :help ,(purecopy "The master group called `Emacs'"))) | 627 | `(menu-item ,(purecopy "Top-level Customization Group") customize |
| 622 | (define-key menu-bar-custom-menu [customize-themes] | 628 | :help ,(purecopy "The master group called `Emacs'"))) |
| 623 | `(menu-item ,(purecopy "Custom Themes") customize-themes | 629 | (define-key menu [customize-themes] |
| 624 | :help ,(purecopy "Choose a pre-defined customization theme"))) | 630 | `(menu-item ,(purecopy "Custom Themes") customize-themes |
| 625 | 631 | :help ,(purecopy "Choose a pre-defined customization theme"))) | |
| 632 | menu)) | ||
| 626 | ;(defvar menu-bar-preferences-menu (make-sparse-keymap "Preferences")) | 633 | ;(defvar menu-bar-preferences-menu (make-sparse-keymap "Preferences")) |
| 627 | 634 | ||
| 628 | (defmacro menu-bar-make-mm-toggle (fname doc help &optional props) | 635 | (defmacro menu-bar-make-mm-toggle (fname doc help &optional props) |
| @@ -692,12 +699,6 @@ by \"Save Options\" in Custom buffers.") | |||
| 692 | (custom-push-theme 'theme-face 'default 'user 'set spec) | 699 | (custom-push-theme 'theme-face 'default 'user 'set spec) |
| 693 | (put 'default 'face-modified nil)))) | 700 | (put 'default 'face-modified nil)))) |
| 694 | 701 | ||
| 695 | |||
| 696 | |||
| 697 | ;;; Assemble all the top-level items of the "Options" menu | ||
| 698 | (define-key menu-bar-options-menu [customize] | ||
| 699 | `(menu-item ,(purecopy "Customize Emacs") ,menu-bar-custom-menu)) | ||
| 700 | |||
| 701 | (defun menu-bar-options-save () | 702 | (defun menu-bar-options-save () |
| 702 | "Save current values of Options menu items using Custom." | 703 | "Save current values of Options menu items using Custom." |
| 703 | (interactive) | 704 | (interactive) |
| @@ -745,276 +746,204 @@ by \"Save Options\" in Custom buffers.") | |||
| 745 | (when need-save | 746 | (when need-save |
| 746 | (custom-save-all)))) | 747 | (custom-save-all)))) |
| 747 | 748 | ||
| 748 | (define-key menu-bar-options-menu [package] | ||
| 749 | '(menu-item "Manage Emacs Packages" package-list-packages | ||
| 750 | :help "Install or uninstall additional Emacs packages")) | ||
| 751 | |||
| 752 | (define-key menu-bar-options-menu [save] | ||
| 753 | `(menu-item ,(purecopy "Save Options") menu-bar-options-save | ||
| 754 | :help ,(purecopy "Save options set from the menu above"))) | ||
| 755 | |||
| 756 | (define-key menu-bar-options-menu [custom-separator] | ||
| 757 | menu-bar-separator) | ||
| 758 | |||
| 759 | (define-key menu-bar-options-menu [menu-set-font] | ||
| 760 | `(menu-item ,(purecopy "Set Default Font...") menu-set-font | ||
| 761 | :visible (display-multi-font-p) | ||
| 762 | :help ,(purecopy "Select a default font"))) | ||
| 763 | |||
| 764 | (if (featurep 'system-font-setting) | ||
| 765 | (define-key menu-bar-options-menu [menu-system-font] | ||
| 766 | (menu-bar-make-toggle toggle-use-system-font font-use-system-font | ||
| 767 | "Use system font" | ||
| 768 | "Use system font: %s" | ||
| 769 | "Use the monospaced font defined by the system"))) | ||
| 770 | 749 | ||
| 750 | ;;; Assemble all the top-level items of the "Options" menu | ||
| 771 | 751 | ||
| 772 | ;; The "Show/Hide" submenu of menu "Options" | 752 | ;; The "Show/Hide" submenu of menu "Options" |
| 773 | 753 | ||
| 774 | (defvar menu-bar-showhide-menu (make-sparse-keymap "Show/Hide")) | ||
| 775 | |||
| 776 | (define-key menu-bar-showhide-menu [column-number-mode] | ||
| 777 | (menu-bar-make-mm-toggle column-number-mode | ||
| 778 | "Column Numbers" | ||
| 779 | "Show the current column number in the mode line")) | ||
| 780 | |||
| 781 | (define-key menu-bar-showhide-menu [line-number-mode] | ||
| 782 | (menu-bar-make-mm-toggle line-number-mode | ||
| 783 | "Line Numbers" | ||
| 784 | "Show the current line number in the mode line")) | ||
| 785 | |||
| 786 | (define-key menu-bar-showhide-menu [size-indication-mode] | ||
| 787 | (menu-bar-make-mm-toggle size-indication-mode | ||
| 788 | "Size Indication" | ||
| 789 | "Show the size of the buffer in the mode line")) | ||
| 790 | |||
| 791 | (define-key menu-bar-showhide-menu [linecolumn-separator] | ||
| 792 | menu-bar-separator) | ||
| 793 | |||
| 794 | (define-key menu-bar-showhide-menu [showhide-battery] | ||
| 795 | (menu-bar-make-mm-toggle display-battery-mode | ||
| 796 | "Battery Status" | ||
| 797 | "Display battery status information in mode line")) | ||
| 798 | |||
| 799 | (define-key menu-bar-showhide-menu [showhide-date-time] | ||
| 800 | (menu-bar-make-mm-toggle display-time-mode | ||
| 801 | "Time, Load and Mail" | ||
| 802 | "Display time, system load averages and \ | ||
| 803 | mail status in mode line")) | ||
| 804 | |||
| 805 | (define-key menu-bar-showhide-menu [datetime-separator] | ||
| 806 | menu-bar-separator) | ||
| 807 | |||
| 808 | (define-key menu-bar-showhide-menu [showhide-speedbar] | ||
| 809 | `(menu-item ,(purecopy "Speedbar") speedbar-frame-mode | ||
| 810 | :help ,(purecopy "Display a Speedbar quick-navigation frame") | ||
| 811 | :button (:toggle | ||
| 812 | . (and (boundp 'speedbar-frame) | ||
| 813 | (frame-live-p (symbol-value 'speedbar-frame)) | ||
| 814 | (frame-visible-p | ||
| 815 | (symbol-value 'speedbar-frame)))))) | ||
| 816 | |||
| 817 | (defvar menu-bar-showhide-fringe-menu (make-sparse-keymap "Fringe")) | ||
| 818 | |||
| 819 | (defvar menu-bar-showhide-fringe-ind-menu | ||
| 820 | (make-sparse-keymap "Buffer boundaries")) | ||
| 821 | |||
| 822 | (defun menu-bar-showhide-fringe-ind-customize () | 754 | (defun menu-bar-showhide-fringe-ind-customize () |
| 823 | "Show customization buffer for `indicate-buffer-boundaries'." | 755 | "Show customization buffer for `indicate-buffer-boundaries'." |
| 824 | (interactive) | 756 | (interactive) |
| 825 | (customize-variable 'indicate-buffer-boundaries)) | 757 | (customize-variable 'indicate-buffer-boundaries)) |
| 826 | 758 | ||
| 827 | (define-key menu-bar-showhide-fringe-ind-menu [customize] | ||
| 828 | `(menu-item ,(purecopy "Other (Customize)") | ||
| 829 | menu-bar-showhide-fringe-ind-customize | ||
| 830 | :help ,(purecopy "Additional choices available through Custom buffer") | ||
| 831 | :visible (display-graphic-p) | ||
| 832 | :button (:radio . (not (member indicate-buffer-boundaries | ||
| 833 | '(nil left right | ||
| 834 | ((top . left) (bottom . right)) | ||
| 835 | ((t . right) (top . left)))))))) | ||
| 836 | |||
| 837 | (defun menu-bar-showhide-fringe-ind-mixed () | 759 | (defun menu-bar-showhide-fringe-ind-mixed () |
| 838 | "Display top and bottom indicators in opposite fringes, arrows in right." | 760 | "Display top and bottom indicators in opposite fringes, arrows in right." |
| 839 | (interactive) | 761 | (interactive) |
| 840 | (customize-set-variable 'indicate-buffer-boundaries | 762 | (customize-set-variable 'indicate-buffer-boundaries |
| 841 | '((t . right) (top . left)))) | 763 | '((t . right) (top . left)))) |
| 842 | 764 | ||
| 843 | (define-key menu-bar-showhide-fringe-ind-menu [mixed] | ||
| 844 | `(menu-item ,(purecopy "Opposite, Arrows Right") menu-bar-showhide-fringe-ind-mixed | ||
| 845 | :help | ||
| 846 | ,(purecopy "Show top/bottom indicators in opposite fringes, arrows in right") | ||
| 847 | :visible (display-graphic-p) | ||
| 848 | :button (:radio . (equal indicate-buffer-boundaries | ||
| 849 | '((t . right) (top . left)))))) | ||
| 850 | |||
| 851 | (defun menu-bar-showhide-fringe-ind-box () | 765 | (defun menu-bar-showhide-fringe-ind-box () |
| 852 | "Display top and bottom indicators in opposite fringes." | 766 | "Display top and bottom indicators in opposite fringes." |
| 853 | (interactive) | 767 | (interactive) |
| 854 | (customize-set-variable 'indicate-buffer-boundaries | 768 | (customize-set-variable 'indicate-buffer-boundaries |
| 855 | '((top . left) (bottom . right)))) | 769 | '((top . left) (bottom . right)))) |
| 856 | 770 | ||
| 857 | (define-key menu-bar-showhide-fringe-ind-menu [box] | ||
| 858 | `(menu-item ,(purecopy "Opposite, No Arrows") menu-bar-showhide-fringe-ind-box | ||
| 859 | :help ,(purecopy "Show top/bottom indicators in opposite fringes, no arrows") | ||
| 860 | :visible (display-graphic-p) | ||
| 861 | :button (:radio . (equal indicate-buffer-boundaries | ||
| 862 | '((top . left) (bottom . right)))))) | ||
| 863 | |||
| 864 | (defun menu-bar-showhide-fringe-ind-right () | 771 | (defun menu-bar-showhide-fringe-ind-right () |
| 865 | "Display buffer boundaries and arrows in the right fringe." | 772 | "Display buffer boundaries and arrows in the right fringe." |
| 866 | (interactive) | 773 | (interactive) |
| 867 | (customize-set-variable 'indicate-buffer-boundaries 'right)) | 774 | (customize-set-variable 'indicate-buffer-boundaries 'right)) |
| 868 | 775 | ||
| 869 | (define-key menu-bar-showhide-fringe-ind-menu [right] | ||
| 870 | `(menu-item ,(purecopy "In Right Fringe") menu-bar-showhide-fringe-ind-right | ||
| 871 | :help ,(purecopy "Show buffer boundaries and arrows in right fringe") | ||
| 872 | :visible (display-graphic-p) | ||
| 873 | :button (:radio . (eq indicate-buffer-boundaries 'right)))) | ||
| 874 | |||
| 875 | (defun menu-bar-showhide-fringe-ind-left () | 776 | (defun menu-bar-showhide-fringe-ind-left () |
| 876 | "Display buffer boundaries and arrows in the left fringe." | 777 | "Display buffer boundaries and arrows in the left fringe." |
| 877 | (interactive) | 778 | (interactive) |
| 878 | (customize-set-variable 'indicate-buffer-boundaries 'left)) | 779 | (customize-set-variable 'indicate-buffer-boundaries 'left)) |
| 879 | 780 | ||
| 880 | (define-key menu-bar-showhide-fringe-ind-menu [left] | ||
| 881 | `(menu-item ,(purecopy "In Left Fringe") menu-bar-showhide-fringe-ind-left | ||
| 882 | :help ,(purecopy "Show buffer boundaries and arrows in left fringe") | ||
| 883 | :visible (display-graphic-p) | ||
| 884 | :button (:radio . (eq indicate-buffer-boundaries 'left)))) | ||
| 885 | |||
| 886 | (defun menu-bar-showhide-fringe-ind-none () | 781 | (defun menu-bar-showhide-fringe-ind-none () |
| 887 | "Do not display any buffer boundary indicators." | 782 | "Do not display any buffer boundary indicators." |
| 888 | (interactive) | 783 | (interactive) |
| 889 | (customize-set-variable 'indicate-buffer-boundaries nil)) | 784 | (customize-set-variable 'indicate-buffer-boundaries nil)) |
| 890 | 785 | ||
| 891 | (define-key menu-bar-showhide-fringe-ind-menu [none] | 786 | (defvar menu-bar-showhide-fringe-ind-menu |
| 892 | `(menu-item ,(purecopy "No Indicators") menu-bar-showhide-fringe-ind-none | 787 | (let ((menu (make-sparse-keymap "Buffer boundaries"))) |
| 893 | :help ,(purecopy "Hide all buffer boundary indicators and arrows") | 788 | |
| 894 | :visible (display-graphic-p) | 789 | (define-key menu [customize] |
| 895 | :button (:radio . (eq indicate-buffer-boundaries nil)))) | 790 | `(menu-item ,(purecopy "Other (Customize)") |
| 896 | 791 | menu-bar-showhide-fringe-ind-customize | |
| 897 | (define-key menu-bar-showhide-fringe-menu [showhide-fringe-ind] | 792 | :help ,(purecopy "Additional choices available through Custom buffer") |
| 898 | `(menu-item ,(purecopy "Buffer Boundaries") ,menu-bar-showhide-fringe-ind-menu | 793 | :visible (display-graphic-p) |
| 899 | :visible (display-graphic-p) | 794 | :button (:radio . (not (member indicate-buffer-boundaries |
| 900 | :help ,(purecopy "Indicate buffer boundaries in fringe"))) | 795 | '(nil left right |
| 901 | 796 | ((top . left) (bottom . right)) | |
| 902 | (define-key menu-bar-showhide-fringe-menu [indicate-empty-lines] | 797 | ((t . right) (top . left)))))))) |
| 903 | (menu-bar-make-toggle toggle-indicate-empty-lines indicate-empty-lines | 798 | |
| 904 | "Empty Line Indicators" | 799 | (define-key menu [mixed] |
| 905 | "Indicating of empty lines %s" | 800 | `(menu-item ,(purecopy "Opposite, Arrows Right") menu-bar-showhide-fringe-ind-mixed |
| 906 | "Indicate trailing empty lines in fringe, globally")) | 801 | :help |
| 802 | ,(purecopy "Show top/bottom indicators in opposite fringes, arrows in right") | ||
| 803 | :visible (display-graphic-p) | ||
| 804 | :button (:radio . (equal indicate-buffer-boundaries | ||
| 805 | '((t . right) (top . left)))))) | ||
| 806 | |||
| 807 | (define-key menu [box] | ||
| 808 | `(menu-item ,(purecopy "Opposite, No Arrows") menu-bar-showhide-fringe-ind-box | ||
| 809 | :help ,(purecopy "Show top/bottom indicators in opposite fringes, no arrows") | ||
| 810 | :visible (display-graphic-p) | ||
| 811 | :button (:radio . (equal indicate-buffer-boundaries | ||
| 812 | '((top . left) (bottom . right)))))) | ||
| 813 | |||
| 814 | (define-key menu [right] | ||
| 815 | `(menu-item ,(purecopy "In Right Fringe") menu-bar-showhide-fringe-ind-right | ||
| 816 | :help ,(purecopy "Show buffer boundaries and arrows in right fringe") | ||
| 817 | :visible (display-graphic-p) | ||
| 818 | :button (:radio . (eq indicate-buffer-boundaries 'right)))) | ||
| 819 | |||
| 820 | (define-key menu [left] | ||
| 821 | `(menu-item ,(purecopy "In Left Fringe") menu-bar-showhide-fringe-ind-left | ||
| 822 | :help ,(purecopy "Show buffer boundaries and arrows in left fringe") | ||
| 823 | :visible (display-graphic-p) | ||
| 824 | :button (:radio . (eq indicate-buffer-boundaries 'left)))) | ||
| 825 | |||
| 826 | (define-key menu [none] | ||
| 827 | `(menu-item ,(purecopy "No Indicators") menu-bar-showhide-fringe-ind-none | ||
| 828 | :help ,(purecopy "Hide all buffer boundary indicators and arrows") | ||
| 829 | :visible (display-graphic-p) | ||
| 830 | :button (:radio . (eq indicate-buffer-boundaries nil)))) | ||
| 831 | menu)) | ||
| 907 | 832 | ||
| 908 | (defun menu-bar-showhide-fringe-menu-customize () | 833 | (defun menu-bar-showhide-fringe-menu-customize () |
| 909 | "Show customization buffer for `fringe-mode'." | 834 | "Show customization buffer for `fringe-mode'." |
| 910 | (interactive) | 835 | (interactive) |
| 911 | (customize-variable 'fringe-mode)) | 836 | (customize-variable 'fringe-mode)) |
| 912 | 837 | ||
| 913 | (define-key menu-bar-showhide-fringe-menu [customize] | ||
| 914 | `(menu-item ,(purecopy "Customize Fringe") menu-bar-showhide-fringe-menu-customize | ||
| 915 | :help ,(purecopy "Detailed customization of fringe") | ||
| 916 | :visible (display-graphic-p))) | ||
| 917 | |||
| 918 | (defun menu-bar-showhide-fringe-menu-customize-reset () | 838 | (defun menu-bar-showhide-fringe-menu-customize-reset () |
| 919 | "Reset the fringe mode: display fringes on both sides of a window." | 839 | "Reset the fringe mode: display fringes on both sides of a window." |
| 920 | (interactive) | 840 | (interactive) |
| 921 | (customize-set-variable 'fringe-mode nil)) | 841 | (customize-set-variable 'fringe-mode nil)) |
| 922 | 842 | ||
| 923 | (define-key menu-bar-showhide-fringe-menu [default] | ||
| 924 | `(menu-item ,(purecopy "Default") menu-bar-showhide-fringe-menu-customize-reset | ||
| 925 | :help ,(purecopy "Default width fringe on both left and right side") | ||
| 926 | :visible (display-graphic-p) | ||
| 927 | :button (:radio . (eq fringe-mode nil)))) | ||
| 928 | |||
| 929 | (defun menu-bar-showhide-fringe-menu-customize-right () | 843 | (defun menu-bar-showhide-fringe-menu-customize-right () |
| 930 | "Display fringes only on the right of each window." | 844 | "Display fringes only on the right of each window." |
| 931 | (interactive) | 845 | (interactive) |
| 932 | (require 'fringe) | 846 | (require 'fringe) |
| 933 | (customize-set-variable 'fringe-mode '(0 . nil))) | 847 | (customize-set-variable 'fringe-mode '(0 . nil))) |
| 934 | 848 | ||
| 935 | (define-key menu-bar-showhide-fringe-menu [right] | ||
| 936 | `(menu-item ,(purecopy "On the Right") menu-bar-showhide-fringe-menu-customize-right | ||
| 937 | :help ,(purecopy "Fringe only on the right side") | ||
| 938 | :visible (display-graphic-p) | ||
| 939 | :button (:radio . (equal fringe-mode '(0 . nil))))) | ||
| 940 | |||
| 941 | (defun menu-bar-showhide-fringe-menu-customize-left () | 849 | (defun menu-bar-showhide-fringe-menu-customize-left () |
| 942 | "Display fringes only on the left of each window." | 850 | "Display fringes only on the left of each window." |
| 943 | (interactive) | 851 | (interactive) |
| 944 | (require 'fringe) | 852 | (require 'fringe) |
| 945 | (customize-set-variable 'fringe-mode '(nil . 0))) | 853 | (customize-set-variable 'fringe-mode '(nil . 0))) |
| 946 | 854 | ||
| 947 | (define-key menu-bar-showhide-fringe-menu [left] | ||
| 948 | `(menu-item ,(purecopy "On the Left") menu-bar-showhide-fringe-menu-customize-left | ||
| 949 | :help ,(purecopy "Fringe only on the left side") | ||
| 950 | :visible (display-graphic-p) | ||
| 951 | :button (:radio . (equal fringe-mode '(nil . 0))))) | ||
| 952 | |||
| 953 | (defun menu-bar-showhide-fringe-menu-customize-disable () | 855 | (defun menu-bar-showhide-fringe-menu-customize-disable () |
| 954 | "Do not display window fringes." | 856 | "Do not display window fringes." |
| 955 | (interactive) | 857 | (interactive) |
| 956 | (require 'fringe) | 858 | (require 'fringe) |
| 957 | (customize-set-variable 'fringe-mode 0)) | 859 | (customize-set-variable 'fringe-mode 0)) |
| 958 | 860 | ||
| 959 | (define-key menu-bar-showhide-fringe-menu [none] | 861 | (defvar menu-bar-showhide-fringe-menu |
| 960 | `(menu-item ,(purecopy "None") menu-bar-showhide-fringe-menu-customize-disable | 862 | (let ((menu (make-sparse-keymap "Fringe"))) |
| 961 | :help ,(purecopy "Turn off fringe") | 863 | |
| 962 | :visible (display-graphic-p) | 864 | (define-key menu [showhide-fringe-ind] |
| 963 | :button (:radio . (eq fringe-mode 0)))) | 865 | `(menu-item ,(purecopy "Buffer Boundaries") ,menu-bar-showhide-fringe-ind-menu |
| 964 | 866 | :visible (display-graphic-p) | |
| 965 | (define-key menu-bar-showhide-menu [showhide-fringe] | 867 | :help ,(purecopy "Indicate buffer boundaries in fringe"))) |
| 966 | `(menu-item ,(purecopy "Fringe") ,menu-bar-showhide-fringe-menu | 868 | |
| 967 | :visible (display-graphic-p))) | 869 | (define-key menu [indicate-empty-lines] |
| 968 | 870 | (menu-bar-make-toggle toggle-indicate-empty-lines indicate-empty-lines | |
| 969 | (defvar menu-bar-showhide-scroll-bar-menu (make-sparse-keymap "Scroll-bar")) | 871 | "Empty Line Indicators" |
| 970 | 872 | "Indicating of empty lines %s" | |
| 971 | (define-key menu-bar-showhide-scroll-bar-menu [right] | 873 | "Indicate trailing empty lines in fringe, globally")) |
| 972 | `(menu-item ,(purecopy "On the Right") | 874 | |
| 973 | menu-bar-right-scroll-bar | 875 | (define-key menu [customize] |
| 974 | :help ,(purecopy "Scroll-bar on the right side") | 876 | `(menu-item ,(purecopy "Customize Fringe") menu-bar-showhide-fringe-menu-customize |
| 975 | :visible (display-graphic-p) | 877 | :help ,(purecopy "Detailed customization of fringe") |
| 976 | :button (:radio . (eq (cdr (assq 'vertical-scroll-bars | 878 | :visible (display-graphic-p))) |
| 977 | (frame-parameters))) 'right)))) | 879 | |
| 880 | (define-key menu [default] | ||
| 881 | `(menu-item ,(purecopy "Default") menu-bar-showhide-fringe-menu-customize-reset | ||
| 882 | :help ,(purecopy "Default width fringe on both left and right side") | ||
| 883 | :visible (display-graphic-p) | ||
| 884 | :button (:radio . (eq fringe-mode nil)))) | ||
| 885 | |||
| 886 | (define-key menu [right] | ||
| 887 | `(menu-item ,(purecopy "On the Right") menu-bar-showhide-fringe-menu-customize-right | ||
| 888 | :help ,(purecopy "Fringe only on the right side") | ||
| 889 | :visible (display-graphic-p) | ||
| 890 | :button (:radio . (equal fringe-mode '(0 . nil))))) | ||
| 891 | |||
| 892 | (define-key menu [left] | ||
| 893 | `(menu-item ,(purecopy "On the Left") menu-bar-showhide-fringe-menu-customize-left | ||
| 894 | :help ,(purecopy "Fringe only on the left side") | ||
| 895 | :visible (display-graphic-p) | ||
| 896 | :button (:radio . (equal fringe-mode '(nil . 0))))) | ||
| 897 | |||
| 898 | (define-key menu [none] | ||
| 899 | `(menu-item ,(purecopy "None") menu-bar-showhide-fringe-menu-customize-disable | ||
| 900 | :help ,(purecopy "Turn off fringe") | ||
| 901 | :visible (display-graphic-p) | ||
| 902 | :button (:radio . (eq fringe-mode 0)))) | ||
| 903 | menu)) | ||
| 904 | |||
| 978 | (defun menu-bar-right-scroll-bar () | 905 | (defun menu-bar-right-scroll-bar () |
| 979 | "Display scroll bars on the right of each window." | 906 | "Display scroll bars on the right of each window." |
| 980 | (interactive) | 907 | (interactive) |
| 981 | (customize-set-variable 'scroll-bar-mode 'right)) | 908 | (customize-set-variable 'scroll-bar-mode 'right)) |
| 982 | 909 | ||
| 983 | (define-key menu-bar-showhide-scroll-bar-menu [left] | ||
| 984 | `(menu-item ,(purecopy "On the Left") | ||
| 985 | menu-bar-left-scroll-bar | ||
| 986 | :help ,(purecopy "Scroll-bar on the left side") | ||
| 987 | :visible (display-graphic-p) | ||
| 988 | :button (:radio . (eq (cdr (assq 'vertical-scroll-bars | ||
| 989 | (frame-parameters))) 'left)))) | ||
| 990 | |||
| 991 | (defun menu-bar-left-scroll-bar () | 910 | (defun menu-bar-left-scroll-bar () |
| 992 | "Display scroll bars on the left of each window." | 911 | "Display scroll bars on the left of each window." |
| 993 | (interactive) | 912 | (interactive) |
| 994 | (customize-set-variable 'scroll-bar-mode 'left)) | 913 | (customize-set-variable 'scroll-bar-mode 'left)) |
| 995 | 914 | ||
| 996 | (define-key menu-bar-showhide-scroll-bar-menu [none] | ||
| 997 | `(menu-item ,(purecopy "None") | ||
| 998 | menu-bar-no-scroll-bar | ||
| 999 | :help ,(purecopy "Turn off scroll-bar") | ||
| 1000 | :visible (display-graphic-p) | ||
| 1001 | :button (:radio . (eq (cdr (assq 'vertical-scroll-bars | ||
| 1002 | (frame-parameters))) nil)))) | ||
| 1003 | |||
| 1004 | (defun menu-bar-no-scroll-bar () | 915 | (defun menu-bar-no-scroll-bar () |
| 1005 | "Turn off scroll bars." | 916 | "Turn off scroll bars." |
| 1006 | (interactive) | 917 | (interactive) |
| 1007 | (customize-set-variable 'scroll-bar-mode nil)) | 918 | (customize-set-variable 'scroll-bar-mode nil)) |
| 1008 | 919 | ||
| 1009 | (define-key menu-bar-showhide-menu [showhide-scroll-bar] | 920 | (defvar menu-bar-showhide-scroll-bar-menu |
| 1010 | `(menu-item ,(purecopy "Scroll-bar") ,menu-bar-showhide-scroll-bar-menu | 921 | (let ((menu (make-sparse-keymap "Scroll-bar"))) |
| 1011 | :visible (display-graphic-p))) | 922 | |
| 1012 | 923 | (define-key menu [right] | |
| 1013 | (define-key menu-bar-showhide-menu [showhide-tooltip-mode] | 924 | `(menu-item ,(purecopy "On the Right") |
| 1014 | `(menu-item ,(purecopy "Tooltips") tooltip-mode | 925 | menu-bar-right-scroll-bar |
| 1015 | :help ,(purecopy "Turn tooltips on/off") | 926 | :help ,(purecopy "Scroll-bar on the right side") |
| 1016 | :visible (and (display-graphic-p) (fboundp 'x-show-tip)) | 927 | :visible (display-graphic-p) |
| 1017 | :button (:toggle . tooltip-mode))) | 928 | :button (:radio . (eq (cdr (assq 'vertical-scroll-bars |
| 929 | (frame-parameters))) 'right)))) | ||
| 930 | |||
| 931 | (define-key menu [left] | ||
| 932 | `(menu-item ,(purecopy "On the Left") | ||
| 933 | menu-bar-left-scroll-bar | ||
| 934 | :help ,(purecopy "Scroll-bar on the left side") | ||
| 935 | :visible (display-graphic-p) | ||
| 936 | :button (:radio . (eq (cdr (assq 'vertical-scroll-bars | ||
| 937 | (frame-parameters))) 'left)))) | ||
| 938 | |||
| 939 | (define-key menu [none] | ||
| 940 | `(menu-item ,(purecopy "None") | ||
| 941 | menu-bar-no-scroll-bar | ||
| 942 | :help ,(purecopy "Turn off scroll-bar") | ||
| 943 | :visible (display-graphic-p) | ||
| 944 | :button (:radio . (eq (cdr (assq 'vertical-scroll-bars | ||
| 945 | (frame-parameters))) nil)))) | ||
| 946 | menu)) | ||
| 1018 | 947 | ||
| 1019 | (defun menu-bar-frame-for-menubar () | 948 | (defun menu-bar-frame-for-menubar () |
| 1020 | "Return the frame suitable for updating the menu bar." | 949 | "Return the frame suitable for updating the menu bar." |
| @@ -1027,14 +956,6 @@ mail status in mode line")) | |||
| 1027 | (and (numberp val) | 956 | (and (numberp val) |
| 1028 | (> val 0))) | 957 | (> val 0))) |
| 1029 | 958 | ||
| 1030 | (define-key menu-bar-showhide-menu [menu-bar-mode] | ||
| 1031 | `(menu-item ,(purecopy "Menu-bar") toggle-menu-bar-mode-from-frame | ||
| 1032 | :help ,(purecopy "Turn menu-bar on/off") | ||
| 1033 | :button | ||
| 1034 | (:toggle . (menu-bar-positive-p | ||
| 1035 | (frame-parameter (menu-bar-frame-for-menubar) | ||
| 1036 | 'menu-bar-lines))))) | ||
| 1037 | |||
| 1038 | (defun menu-bar-set-tool-bar-position (position) | 959 | (defun menu-bar-set-tool-bar-position (position) |
| 1039 | (customize-set-variable 'tool-bar-mode t) | 960 | (customize-set-variable 'tool-bar-mode t) |
| 1040 | (customize-set-variable 'tool-bar-position position)) | 961 | (customize-set-variable 'tool-bar-position position)) |
| @@ -1059,163 +980,147 @@ mail status in mode line")) | |||
| 1059 | (interactive) | 980 | (interactive) |
| 1060 | (menu-bar-set-tool-bar-position 'bottom)) | 981 | (menu-bar-set-tool-bar-position 'bottom)) |
| 1061 | 982 | ||
| 1062 | (if (featurep 'move-toolbar) | 983 | (when (featurep 'move-toolbar) |
| 1063 | (progn | 984 | (defvar menu-bar-showhide-tool-bar-menu |
| 1064 | (defvar menu-bar-showhide-tool-bar-menu (make-sparse-keymap "Tool-bar")) | 985 | (let ((menu (make-sparse-keymap "Tool-bar"))) |
| 1065 | 986 | ||
| 1066 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-left] | 987 | (define-key menu [showhide-tool-bar-left] |
| 1067 | `(menu-item ,(purecopy "On the left") | 988 | `(menu-item ,(purecopy "On the left") |
| 1068 | menu-bar-showhide-tool-bar-menu-customize-enable-left | 989 | menu-bar-showhide-tool-bar-menu-customize-enable-left |
| 1069 | :help ,(purecopy "Tool-bar at the left side") | 990 | :help ,(purecopy "Tool-bar at the left side") |
| 1070 | :visible (display-graphic-p) | 991 | :visible (display-graphic-p) |
| 1071 | :button | 992 | :button |
| 1072 | (:radio . (and tool-bar-mode | 993 | (:radio . (and tool-bar-mode |
| 1073 | (eq (frame-parameter | 994 | (eq (frame-parameter |
| 1074 | (menu-bar-frame-for-menubar) | 995 | (menu-bar-frame-for-menubar) |
| 1075 | 'tool-bar-position) | 996 | 'tool-bar-position) |
| 1076 | 'left))))) | 997 | 'left))))) |
| 1077 | 998 | ||
| 1078 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-right] | 999 | (define-key menu [showhide-tool-bar-right] |
| 1079 | `(menu-item ,(purecopy "On the right") | 1000 | `(menu-item ,(purecopy "On the right") |
| 1080 | menu-bar-showhide-tool-bar-menu-customize-enable-right | 1001 | menu-bar-showhide-tool-bar-menu-customize-enable-right |
| 1081 | :help ,(purecopy "Tool-bar at the right side") | 1002 | :help ,(purecopy "Tool-bar at the right side") |
| 1082 | :visible (display-graphic-p) | 1003 | :visible (display-graphic-p) |
| 1083 | :button | 1004 | :button |
| 1084 | (:radio . (and tool-bar-mode | 1005 | (:radio . (and tool-bar-mode |
| 1085 | (eq (frame-parameter | 1006 | (eq (frame-parameter |
| 1086 | (menu-bar-frame-for-menubar) | 1007 | (menu-bar-frame-for-menubar) |
| 1087 | 'tool-bar-position) | 1008 | 'tool-bar-position) |
| 1088 | 'right))))) | 1009 | 'right))))) |
| 1089 | 1010 | ||
| 1090 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-bottom] | 1011 | (define-key menu [showhide-tool-bar-bottom] |
| 1091 | `(menu-item ,(purecopy "On the bottom") | 1012 | `(menu-item ,(purecopy "On the bottom") |
| 1092 | menu-bar-showhide-tool-bar-menu-customize-enable-bottom | 1013 | menu-bar-showhide-tool-bar-menu-customize-enable-bottom |
| 1093 | :help ,(purecopy "Tool-bar at the bottom") | 1014 | :help ,(purecopy "Tool-bar at the bottom") |
| 1094 | :visible (display-graphic-p) | 1015 | :visible (display-graphic-p) |
| 1095 | :button | 1016 | :button |
| 1096 | (:radio . (and tool-bar-mode | 1017 | (:radio . (and tool-bar-mode |
| 1097 | (eq (frame-parameter | 1018 | (eq (frame-parameter |
| 1098 | (menu-bar-frame-for-menubar) | 1019 | (menu-bar-frame-for-menubar) |
| 1099 | 'tool-bar-position) | 1020 | 'tool-bar-position) |
| 1100 | 'bottom))))) | 1021 | 'bottom))))) |
| 1101 | 1022 | ||
| 1102 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-top] | 1023 | (define-key menu [showhide-tool-bar-top] |
| 1103 | `(menu-item ,(purecopy "On the top") | 1024 | `(menu-item ,(purecopy "On the top") |
| 1104 | menu-bar-showhide-tool-bar-menu-customize-enable-top | 1025 | menu-bar-showhide-tool-bar-menu-customize-enable-top |
| 1105 | :help ,(purecopy "Tool-bar at the top") | 1026 | :help ,(purecopy "Tool-bar at the top") |
| 1106 | :visible (display-graphic-p) | 1027 | :visible (display-graphic-p) |
| 1107 | :button | 1028 | :button |
| 1108 | (:radio . (and tool-bar-mode | 1029 | (:radio . (and tool-bar-mode |
| 1109 | (eq (frame-parameter | 1030 | (eq (frame-parameter |
| 1110 | (menu-bar-frame-for-menubar) | 1031 | (menu-bar-frame-for-menubar) |
| 1111 | 'tool-bar-position) | 1032 | 'tool-bar-position) |
| 1112 | 'top))))) | 1033 | 'top))))) |
| 1113 | 1034 | ||
| 1114 | (define-key menu-bar-showhide-tool-bar-menu [showhide-tool-bar-none] | 1035 | (define-key menu [showhide-tool-bar-none] |
| 1115 | `(menu-item ,(purecopy "None") | 1036 | `(menu-item ,(purecopy "None") |
| 1116 | menu-bar-showhide-tool-bar-menu-customize-disable | 1037 | menu-bar-showhide-tool-bar-menu-customize-disable |
| 1117 | :help ,(purecopy "Turn tool-bar off") | 1038 | :help ,(purecopy "Turn tool-bar off") |
| 1118 | :visible (display-graphic-p) | 1039 | :visible (display-graphic-p) |
| 1119 | :button (:radio . (eq tool-bar-mode nil)))) | 1040 | :button (:radio . (eq tool-bar-mode nil)))) |
| 1120 | 1041 | menu))) | |
| 1121 | (define-key menu-bar-showhide-menu [showhide-tool-bar] | 1042 | |
| 1122 | `(menu-item ,(purecopy "Tool-bar") ,menu-bar-showhide-tool-bar-menu | 1043 | (defvar menu-bar-showhide-menu |
| 1123 | :visible (display-graphic-p))) | 1044 | (let ((menu (make-sparse-keymap "Show/Hide"))) |
| 1124 | 1045 | ||
| 1125 | ) | 1046 | (define-key menu [column-number-mode] |
| 1126 | ;; else not tool bar that can move. | 1047 | (menu-bar-make-mm-toggle column-number-mode |
| 1127 | (define-key menu-bar-showhide-menu [showhide-tool-bar] | 1048 | "Column Numbers" |
| 1128 | `(menu-item ,(purecopy "Tool-bar") toggle-tool-bar-mode-from-frame | 1049 | "Show the current column number in the mode line")) |
| 1129 | :help ,(purecopy "Turn tool-bar on/off") | 1050 | |
| 1130 | :visible (display-graphic-p) | 1051 | (define-key menu [line-number-mode] |
| 1131 | :button | 1052 | (menu-bar-make-mm-toggle line-number-mode |
| 1132 | (:toggle . (menu-bar-positive-p | 1053 | "Line Numbers" |
| 1133 | (frame-parameter (menu-bar-frame-for-menubar) | 1054 | "Show the current line number in the mode line")) |
| 1134 | 'tool-bar-lines)))))) | 1055 | |
| 1135 | 1056 | (define-key menu [size-indication-mode] | |
| 1136 | (define-key menu-bar-options-menu [showhide] | 1057 | (menu-bar-make-mm-toggle size-indication-mode |
| 1137 | `(menu-item ,(purecopy "Show/Hide") ,menu-bar-showhide-menu)) | 1058 | "Size Indication" |
| 1138 | 1059 | "Show the size of the buffer in the mode line")) | |
| 1139 | (define-key menu-bar-options-menu [showhide-separator] | 1060 | |
| 1140 | menu-bar-separator) | 1061 | (define-key menu [linecolumn-separator] |
| 1141 | 1062 | menu-bar-separator) | |
| 1142 | (define-key menu-bar-options-menu [mule] | 1063 | |
| 1143 | ;; It is better not to use backquote here, | 1064 | (define-key menu [showhide-battery] |
| 1144 | ;; because that makes a bootstrapping problem | 1065 | (menu-bar-make-mm-toggle display-battery-mode |
| 1145 | ;; if you need to recompile all the Lisp files using interpreted code. | 1066 | "Battery Status" |
| 1146 | `(menu-item ,(purecopy "Multilingual Environment") ,mule-menu-keymap | 1067 | "Display battery status information in mode line")) |
| 1147 | ;; Most of the MULE menu actually does make sense in unibyte mode, | 1068 | |
| 1148 | ;; e.g. language selection. | 1069 | (define-key menu [showhide-date-time] |
| 1149 | ;;; :visible '(default-value 'enable-multibyte-characters) | 1070 | (menu-bar-make-mm-toggle display-time-mode |
| 1150 | )) | 1071 | "Time, Load and Mail" |
| 1151 | ;(setq menu-bar-final-items (cons 'mule menu-bar-final-items)) | 1072 | "Display time, system load averages and \ |
| 1152 | ;(define-key menu-bar-options-menu [preferences] | 1073 | mail status in mode line")) |
| 1153 | ; `(menu-item ,(purecopy "Preferences") ,menu-bar-preferences-menu | 1074 | |
| 1154 | ; :help ,(purecopy "Toggle important global options"))) | 1075 | (define-key menu [datetime-separator] |
| 1155 | 1076 | menu-bar-separator) | |
| 1156 | (define-key menu-bar-options-menu [mule-separator] | 1077 | |
| 1157 | menu-bar-separator) | 1078 | (define-key menu [showhide-speedbar] |
| 1158 | 1079 | `(menu-item ,(purecopy "Speedbar") speedbar-frame-mode | |
| 1159 | (define-key menu-bar-options-menu [debug-on-quit] | 1080 | :help ,(purecopy "Display a Speedbar quick-navigation frame") |
| 1160 | (menu-bar-make-toggle toggle-debug-on-quit debug-on-quit | 1081 | :button (:toggle |
| 1161 | "Enter Debugger on Quit/C-g" "Debug on Quit %s" | 1082 | . (and (boundp 'speedbar-frame) |
| 1162 | "Enter Lisp debugger when C-g is pressed")) | 1083 | (frame-live-p (symbol-value 'speedbar-frame)) |
| 1163 | (define-key menu-bar-options-menu [debug-on-error] | 1084 | (frame-visible-p |
| 1164 | (menu-bar-make-toggle toggle-debug-on-error debug-on-error | 1085 | (symbol-value 'speedbar-frame)))))) |
| 1165 | "Enter Debugger on Error" "Debug on Error %s" | 1086 | |
| 1166 | "Enter Lisp debugger when an error is signaled")) | 1087 | (define-key menu [showhide-fringe] |
| 1167 | (define-key menu-bar-options-menu [debugger-separator] | 1088 | `(menu-item ,(purecopy "Fringe") ,menu-bar-showhide-fringe-menu |
| 1168 | menu-bar-separator) | 1089 | :visible (display-graphic-p))) |
| 1169 | 1090 | ||
| 1170 | (define-key menu-bar-options-menu [blink-cursor-mode] | 1091 | (define-key menu [showhide-scroll-bar] |
| 1171 | (menu-bar-make-mm-toggle blink-cursor-mode | 1092 | `(menu-item ,(purecopy "Scroll-bar") ,menu-bar-showhide-scroll-bar-menu |
| 1172 | "Blinking Cursor" | 1093 | :visible (display-graphic-p))) |
| 1173 | "Whether the cursor blinks (Blink Cursor mode)")) | 1094 | |
| 1174 | (define-key menu-bar-options-menu [cursor-separator] | 1095 | (define-key menu [showhide-tooltip-mode] |
| 1175 | menu-bar-separator) | 1096 | `(menu-item ,(purecopy "Tooltips") tooltip-mode |
| 1176 | 1097 | :help ,(purecopy "Turn tooltips on/off") | |
| 1177 | (define-key menu-bar-options-menu [save-place] | 1098 | :visible (and (display-graphic-p) (fboundp 'x-show-tip)) |
| 1178 | (menu-bar-make-toggle toggle-save-place-globally save-place | 1099 | :button (:toggle . tooltip-mode))) |
| 1179 | "Save Place in Files between Sessions" | 1100 | |
| 1180 | "Saving place in files %s" | 1101 | (define-key menu [menu-bar-mode] |
| 1181 | "Visit files of previous session when restarting Emacs" | 1102 | `(menu-item ,(purecopy "Menu-bar") toggle-menu-bar-mode-from-frame |
| 1182 | (require 'saveplace) | 1103 | :help ,(purecopy "Turn menu-bar on/off") |
| 1183 | ;; Do it by name, to avoid a free-variable | 1104 | :button |
| 1184 | ;; warning during byte compilation. | 1105 | (:toggle . (menu-bar-positive-p |
| 1185 | (set-default | 1106 | (frame-parameter (menu-bar-frame-for-menubar) |
| 1186 | 'save-place (not (symbol-value 'save-place))))) | 1107 | 'menu-bar-lines))))) |
| 1187 | 1108 | ||
| 1188 | (define-key menu-bar-options-menu [uniquify] | 1109 | (if (and (boundp 'menu-bar-showhide-tool-bar-menu) |
| 1189 | (menu-bar-make-toggle toggle-uniquify-buffer-names uniquify-buffer-name-style | 1110 | (keymapp menu-bar-showhide-tool-bar-menu)) |
| 1190 | "Use Directory Names in Buffer Names" | 1111 | (define-key menu [showhide-tool-bar] |
| 1191 | "Directory name in buffer names (uniquify) %s" | 1112 | `(menu-item ,(purecopy "Tool-bar") ,menu-bar-showhide-tool-bar-menu |
| 1192 | "Uniquify buffer names by adding parent directory names" | 1113 | :visible (display-graphic-p))) |
| 1193 | (require 'uniquify) | 1114 | ;; else not tool bar that can move. |
| 1194 | (setq uniquify-buffer-name-style | 1115 | (define-key menu [showhide-tool-bar] |
| 1195 | (if (not uniquify-buffer-name-style) | 1116 | `(menu-item ,(purecopy "Tool-bar") toggle-tool-bar-mode-from-frame |
| 1196 | 'forward)))) | 1117 | :help ,(purecopy "Turn tool-bar on/off") |
| 1197 | 1118 | :visible (display-graphic-p) | |
| 1198 | (define-key menu-bar-options-menu [edit-options-separator] | 1119 | :button |
| 1199 | menu-bar-separator) | 1120 | (:toggle . (menu-bar-positive-p |
| 1200 | (define-key menu-bar-options-menu [cua-mode] | 1121 | (frame-parameter (menu-bar-frame-for-menubar) |
| 1201 | (menu-bar-make-mm-toggle cua-mode | 1122 | 'tool-bar-lines)))))) |
| 1202 | "C-x/C-c/C-v Cut and Paste (CUA)" | 1123 | menu)) |
| 1203 | "Use C-z/C-x/C-c/C-v keys for undo/cut/copy/paste" | ||
| 1204 | (:visible (or (not (boundp 'cua-enable-cua-keys)) | ||
| 1205 | cua-enable-cua-keys)))) | ||
| 1206 | |||
| 1207 | (define-key menu-bar-options-menu [cua-emulation-mode] | ||
| 1208 | (menu-bar-make-mm-toggle cua-mode | ||
| 1209 | "Shift movement mark region (CUA)" | ||
| 1210 | "Use shifted movement keys to set and extend the region" | ||
| 1211 | (:visible (and (boundp 'cua-enable-cua-keys) | ||
| 1212 | (not cua-enable-cua-keys))))) | ||
| 1213 | |||
| 1214 | (define-key menu-bar-options-menu [case-fold-search] | ||
| 1215 | (menu-bar-make-toggle toggle-case-fold-search case-fold-search | ||
| 1216 | "Case-Insensitive Search" | ||
| 1217 | "Case-Insensitive Search %s" | ||
| 1218 | "Ignore letter-case in search commands")) | ||
| 1219 | 1124 | ||
| 1220 | (defun menu-bar-text-mode-auto-fill () | 1125 | (defun menu-bar-text-mode-auto-fill () |
| 1221 | (interactive) | 1126 | (interactive) |
| @@ -1225,71 +1130,187 @@ mail status in mode line")) | |||
| 1225 | ;; -- Per Abrahamsen <abraham@dina.kvl.dk> 2002-02-11. | 1130 | ;; -- Per Abrahamsen <abraham@dina.kvl.dk> 2002-02-11. |
| 1226 | (customize-mark-as-set 'text-mode-hook)) | 1131 | (customize-mark-as-set 'text-mode-hook)) |
| 1227 | 1132 | ||
| 1228 | (define-key menu-bar-options-menu [auto-fill-mode] | 1133 | |
| 1229 | `(menu-item ,(purecopy "Auto Fill in Text Modes") | 1134 | (defvar menu-bar-line-wrapping-menu |
| 1230 | menu-bar-text-mode-auto-fill | 1135 | (let ((menu (make-sparse-keymap "Line Wrapping"))) |
| 1231 | :help ,(purecopy "Automatically fill text while typing (Auto Fill mode)") | 1136 | |
| 1232 | :button (:toggle . (if (listp text-mode-hook) | 1137 | (define-key menu [word-wrap] |
| 1233 | (member 'turn-on-auto-fill text-mode-hook) | 1138 | `(menu-item ,(purecopy "Word Wrap (Visual Line mode)") |
| 1234 | (eq 'turn-on-auto-fill text-mode-hook))))) | 1139 | (lambda () |
| 1235 | 1140 | (interactive) | |
| 1236 | 1141 | (unless visual-line-mode | |
| 1237 | (defvar menu-bar-line-wrapping-menu (make-sparse-keymap "Line Wrapping")) | 1142 | (visual-line-mode 1)) |
| 1238 | 1143 | (message ,(purecopy "Visual-Line mode enabled"))) | |
| 1239 | (define-key menu-bar-line-wrapping-menu [word-wrap] | 1144 | :help ,(purecopy "Wrap long lines at word boundaries") |
| 1240 | `(menu-item ,(purecopy "Word Wrap (Visual Line mode)") | 1145 | :button (:radio . (and (null truncate-lines) |
| 1241 | (lambda () | 1146 | (not (truncated-partial-width-window-p)) |
| 1242 | (interactive) | 1147 | word-wrap)) |
| 1243 | (unless visual-line-mode | 1148 | :visible (menu-bar-menu-frame-live-and-visible-p))) |
| 1244 | (visual-line-mode 1)) | 1149 | |
| 1245 | (message ,(purecopy "Visual-Line mode enabled"))) | 1150 | (define-key menu [truncate] |
| 1246 | :help ,(purecopy "Wrap long lines at word boundaries") | 1151 | `(menu-item ,(purecopy "Truncate Long Lines") |
| 1247 | :button (:radio . (and (null truncate-lines) | 1152 | (lambda () |
| 1248 | (not (truncated-partial-width-window-p)) | 1153 | (interactive) |
| 1249 | word-wrap)) | 1154 | (if visual-line-mode (visual-line-mode 0)) |
| 1250 | :visible (menu-bar-menu-frame-live-and-visible-p))) | 1155 | (setq word-wrap nil) |
| 1251 | 1156 | (toggle-truncate-lines 1)) | |
| 1252 | (define-key menu-bar-line-wrapping-menu [truncate] | 1157 | :help ,(purecopy "Truncate long lines at window edge") |
| 1253 | `(menu-item ,(purecopy "Truncate Long Lines") | 1158 | :button (:radio . (or truncate-lines |
| 1254 | (lambda () | 1159 | (truncated-partial-width-window-p))) |
| 1255 | (interactive) | 1160 | :visible (menu-bar-menu-frame-live-and-visible-p) |
| 1256 | (if visual-line-mode (visual-line-mode 0)) | 1161 | :enable (not (truncated-partial-width-window-p)))) |
| 1257 | (setq word-wrap nil) | 1162 | |
| 1258 | (toggle-truncate-lines 1)) | 1163 | (define-key menu [window-wrap] |
| 1259 | :help ,(purecopy "Truncate long lines at window edge") | 1164 | `(menu-item ,(purecopy "Wrap at Window Edge") |
| 1260 | :button (:radio . (or truncate-lines | 1165 | (lambda () (interactive) |
| 1261 | (truncated-partial-width-window-p))) | 1166 | (if visual-line-mode (visual-line-mode 0)) |
| 1262 | :visible (menu-bar-menu-frame-live-and-visible-p) | 1167 | (setq word-wrap nil) |
| 1263 | :enable (not (truncated-partial-width-window-p)))) | 1168 | (if truncate-lines (toggle-truncate-lines -1))) |
| 1264 | 1169 | :help ,(purecopy "Wrap long lines at window edge") | |
| 1265 | (define-key menu-bar-line-wrapping-menu [window-wrap] | 1170 | :button (:radio . (and (null truncate-lines) |
| 1266 | `(menu-item ,(purecopy "Wrap at Window Edge") | 1171 | (not (truncated-partial-width-window-p)) |
| 1267 | (lambda () (interactive) | 1172 | (not word-wrap))) |
| 1268 | (if visual-line-mode (visual-line-mode 0)) | 1173 | :visible (menu-bar-menu-frame-live-and-visible-p) |
| 1269 | (setq word-wrap nil) | 1174 | :enable (not (truncated-partial-width-window-p)))) |
| 1270 | (if truncate-lines (toggle-truncate-lines -1))) | 1175 | menu)) |
| 1271 | :help ,(purecopy "Wrap long lines at window edge") | 1176 | |
| 1272 | :button (:radio . (and (null truncate-lines) | 1177 | (defvar menu-bar-options-menu |
| 1273 | (not (truncated-partial-width-window-p)) | 1178 | (let ((menu (make-sparse-keymap "Options"))) |
| 1274 | (not word-wrap))) | 1179 | (define-key menu [customize] |
| 1275 | :visible (menu-bar-menu-frame-live-and-visible-p) | 1180 | `(menu-item ,(purecopy "Customize Emacs") ,menu-bar-custom-menu)) |
| 1276 | :enable (not (truncated-partial-width-window-p)))) | 1181 | |
| 1277 | 1182 | (define-key menu [package] | |
| 1278 | (define-key menu-bar-options-menu [line-wrapping] | 1183 | '(menu-item "Manage Emacs Packages" package-list-packages |
| 1279 | `(menu-item ,(purecopy "Line Wrapping in this Buffer") ,menu-bar-line-wrapping-menu)) | 1184 | :help "Install or uninstall additional Emacs packages")) |
| 1280 | 1185 | ||
| 1281 | 1186 | (define-key menu [save] | |
| 1282 | (define-key menu-bar-options-menu [highlight-separator] | 1187 | `(menu-item ,(purecopy "Save Options") menu-bar-options-save |
| 1283 | menu-bar-separator) | 1188 | :help ,(purecopy "Save options set from the menu above"))) |
| 1284 | (define-key menu-bar-options-menu [highlight-paren-mode] | 1189 | |
| 1285 | (menu-bar-make-mm-toggle show-paren-mode | 1190 | (define-key menu [custom-separator] |
| 1286 | "Paren Match Highlighting" | 1191 | menu-bar-separator) |
| 1287 | "Highlight matching/mismatched parentheses at cursor (Show Paren mode)")) | 1192 | |
| 1288 | (define-key menu-bar-options-menu [transient-mark-mode] | 1193 | (define-key menu [menu-set-font] |
| 1289 | (menu-bar-make-mm-toggle transient-mark-mode | 1194 | `(menu-item ,(purecopy "Set Default Font...") menu-set-font |
| 1290 | "Active Region Highlighting" | 1195 | :visible (display-multi-font-p) |
| 1291 | "Make text in active region stand out in color (Transient Mark mode)" | 1196 | :help ,(purecopy "Select a default font"))) |
| 1292 | (:enable (not cua-mode)))) | 1197 | |
| 1198 | (if (featurep 'system-font-setting) | ||
| 1199 | (define-key menu [menu-system-font] | ||
| 1200 | (menu-bar-make-toggle | ||
| 1201 | toggle-use-system-font font-use-system-font | ||
| 1202 | "Use system font" | ||
| 1203 | "Use system font: %s" | ||
| 1204 | "Use the monospaced font defined by the system"))) | ||
| 1205 | |||
| 1206 | (define-key menu [showhide] | ||
| 1207 | `(menu-item ,(purecopy "Show/Hide") ,menu-bar-showhide-menu)) | ||
| 1208 | |||
| 1209 | (define-key menu [showhide-separator] | ||
| 1210 | menu-bar-separator) | ||
| 1211 | |||
| 1212 | (define-key menu [mule] | ||
| 1213 | ;; It is better not to use backquote here, | ||
| 1214 | ;; because that makes a bootstrapping problem | ||
| 1215 | ;; if you need to recompile all the Lisp files using interpreted code. | ||
| 1216 | `(menu-item ,(purecopy "Multilingual Environment") ,mule-menu-keymap | ||
| 1217 | ;; Most of the MULE menu actually does make sense in | ||
| 1218 | ;; unibyte mode, e.g. language selection. | ||
| 1219 | ;; :visible '(default-value 'enable-multibyte-characters) | ||
| 1220 | )) | ||
| 1221 | ;;(setq menu-bar-final-items (cons 'mule menu-bar-final-items)) | ||
| 1222 | ;;(define-key menu [preferences] | ||
| 1223 | ;; `(menu-item ,(purecopy "Preferences") ,menu-bar-preferences-menu | ||
| 1224 | ;; :help ,(purecopy "Toggle important global options"))) | ||
| 1225 | |||
| 1226 | (define-key menu [mule-separator] | ||
| 1227 | menu-bar-separator) | ||
| 1228 | |||
| 1229 | (define-key menu [debug-on-quit] | ||
| 1230 | (menu-bar-make-toggle toggle-debug-on-quit debug-on-quit | ||
| 1231 | "Enter Debugger on Quit/C-g" "Debug on Quit %s" | ||
| 1232 | "Enter Lisp debugger when C-g is pressed")) | ||
| 1233 | (define-key menu [debug-on-error] | ||
| 1234 | (menu-bar-make-toggle toggle-debug-on-error debug-on-error | ||
| 1235 | "Enter Debugger on Error" "Debug on Error %s" | ||
| 1236 | "Enter Lisp debugger when an error is signaled")) | ||
| 1237 | (define-key menu [debugger-separator] | ||
| 1238 | menu-bar-separator) | ||
| 1239 | |||
| 1240 | (define-key menu [blink-cursor-mode] | ||
| 1241 | (menu-bar-make-mm-toggle blink-cursor-mode | ||
| 1242 | "Blinking Cursor" | ||
| 1243 | "Whether the cursor blinks (Blink Cursor mode)")) | ||
| 1244 | (define-key menu [cursor-separator] | ||
| 1245 | menu-bar-separator) | ||
| 1246 | |||
| 1247 | (define-key menu [save-place] | ||
| 1248 | (menu-bar-make-toggle toggle-save-place-globally save-place | ||
| 1249 | "Save Place in Files between Sessions" | ||
| 1250 | "Saving place in files %s" | ||
| 1251 | "Visit files of previous session when restarting Emacs" | ||
| 1252 | (require 'saveplace) | ||
| 1253 | ;; Do it by name, to avoid a free-variable | ||
| 1254 | ;; warning during byte compilation. | ||
| 1255 | (set-default | ||
| 1256 | 'save-place (not (symbol-value 'save-place))))) | ||
| 1257 | |||
| 1258 | (define-key menu [uniquify] | ||
| 1259 | (menu-bar-make-toggle toggle-uniquify-buffer-names uniquify-buffer-name-style | ||
| 1260 | "Use Directory Names in Buffer Names" | ||
| 1261 | "Directory name in buffer names (uniquify) %s" | ||
| 1262 | "Uniquify buffer names by adding parent directory names" | ||
| 1263 | (require 'uniquify) | ||
| 1264 | (setq uniquify-buffer-name-style | ||
| 1265 | (if (not uniquify-buffer-name-style) | ||
| 1266 | 'forward)))) | ||
| 1267 | |||
| 1268 | (define-key menu [edit-options-separator] | ||
| 1269 | menu-bar-separator) | ||
| 1270 | (define-key menu [cua-mode] | ||
| 1271 | (menu-bar-make-mm-toggle cua-mode | ||
| 1272 | "C-x/C-c/C-v Cut and Paste (CUA)" | ||
| 1273 | "Use C-z/C-x/C-c/C-v keys for undo/cut/copy/paste" | ||
| 1274 | (:visible (or (not (boundp 'cua-enable-cua-keys)) | ||
| 1275 | cua-enable-cua-keys)))) | ||
| 1276 | |||
| 1277 | (define-key menu [cua-emulation-mode] | ||
| 1278 | (menu-bar-make-mm-toggle cua-mode | ||
| 1279 | "Shift movement mark region (CUA)" | ||
| 1280 | "Use shifted movement keys to set and extend the region" | ||
| 1281 | (:visible (and (boundp 'cua-enable-cua-keys) | ||
| 1282 | (not cua-enable-cua-keys))))) | ||
| 1283 | |||
| 1284 | (define-key menu [case-fold-search] | ||
| 1285 | (menu-bar-make-toggle toggle-case-fold-search case-fold-search | ||
| 1286 | "Case-Insensitive Search" | ||
| 1287 | "Case-Insensitive Search %s" | ||
| 1288 | "Ignore letter-case in search commands")) | ||
| 1289 | |||
| 1290 | (define-key menu [auto-fill-mode] | ||
| 1291 | `(menu-item ,(purecopy "Auto Fill in Text Modes") | ||
| 1292 | menu-bar-text-mode-auto-fill | ||
| 1293 | :help ,(purecopy "Automatically fill text while typing (Auto Fill mode)") | ||
| 1294 | :button (:toggle . (if (listp text-mode-hook) | ||
| 1295 | (member 'turn-on-auto-fill text-mode-hook) | ||
| 1296 | (eq 'turn-on-auto-fill text-mode-hook))))) | ||
| 1297 | |||
| 1298 | (define-key menu [line-wrapping] | ||
| 1299 | `(menu-item ,(purecopy "Line Wrapping in this Buffer") ,menu-bar-line-wrapping-menu)) | ||
| 1300 | |||
| 1301 | |||
| 1302 | (define-key menu [highlight-separator] | ||
| 1303 | menu-bar-separator) | ||
| 1304 | (define-key menu [highlight-paren-mode] | ||
| 1305 | (menu-bar-make-mm-toggle show-paren-mode | ||
| 1306 | "Paren Match Highlighting" | ||
| 1307 | "Highlight matching/mismatched parentheses at cursor (Show Paren mode)")) | ||
| 1308 | (define-key menu [transient-mark-mode] | ||
| 1309 | (menu-bar-make-mm-toggle transient-mark-mode | ||
| 1310 | "Active Region Highlighting" | ||
| 1311 | "Make text in active region stand out in color (Transient Mark mode)" | ||
| 1312 | (:enable (not cua-mode)))) | ||
| 1313 | menu)) | ||
| 1293 | 1314 | ||
| 1294 | 1315 | ||
| 1295 | ;; The "Tools" menu items | 1316 | ;; The "Tools" menu items |
| @@ -1314,270 +1335,276 @@ mail status in mode line")) | |||
| 1314 | (known (assq read-mail-command known-rmail-commands))) | 1335 | (known (assq read-mail-command known-rmail-commands))) |
| 1315 | (if known (cdr known) (symbol-name read-mail-command)))) | 1336 | (if known (cdr known) (symbol-name read-mail-command)))) |
| 1316 | 1337 | ||
| 1317 | (defvar menu-bar-games-menu (make-sparse-keymap "Games")) | 1338 | (defvar menu-bar-games-menu |
| 1318 | 1339 | (let ((menu (make-sparse-keymap "Games"))) | |
| 1319 | (define-key menu-bar-tools-menu [games] | 1340 | |
| 1320 | `(menu-item ,(purecopy "Games") ,menu-bar-games-menu)) | 1341 | (define-key menu [zone] |
| 1321 | 1342 | `(menu-item ,(purecopy "Zone Out") zone | |
| 1322 | (define-key menu-bar-tools-menu [separator-games] | 1343 | :help ,(purecopy "Play tricks with Emacs display when Emacs is idle"))) |
| 1323 | menu-bar-separator) | 1344 | (define-key menu [tetris] |
| 1324 | 1345 | `(menu-item ,(purecopy "Tetris") tetris | |
| 1325 | (define-key menu-bar-games-menu [zone] | 1346 | :help ,(purecopy "Falling blocks game"))) |
| 1326 | `(menu-item ,(purecopy "Zone Out") zone | 1347 | (define-key menu [solitaire] |
| 1327 | :help ,(purecopy "Play tricks with Emacs display when Emacs is idle"))) | 1348 | `(menu-item ,(purecopy "Solitaire") solitaire |
| 1328 | (define-key menu-bar-games-menu [tetris] | 1349 | :help ,(purecopy "Get rid of all the stones"))) |
| 1329 | `(menu-item ,(purecopy "Tetris") tetris | 1350 | (define-key menu [snake] |
| 1330 | :help ,(purecopy "Falling blocks game"))) | 1351 | `(menu-item ,(purecopy "Snake") snake |
| 1331 | (define-key menu-bar-games-menu [solitaire] | 1352 | :help ,(purecopy "Move snake around avoiding collisions"))) |
| 1332 | `(menu-item ,(purecopy "Solitaire") solitaire | 1353 | (define-key menu [pong] |
| 1333 | :help ,(purecopy "Get rid of all the stones"))) | 1354 | `(menu-item ,(purecopy "Pong") pong |
| 1334 | (define-key menu-bar-games-menu [snake] | 1355 | :help ,(purecopy "Bounce the ball to your opponent"))) |
| 1335 | `(menu-item ,(purecopy "Snake") snake | 1356 | (define-key menu [mult] |
| 1336 | :help ,(purecopy "Move snake around avoiding collisions"))) | 1357 | `(menu-item ,(purecopy "Multiplication Puzzle") mpuz |
| 1337 | (define-key menu-bar-games-menu [pong] | 1358 | :help ,(purecopy "Exercise brain with multiplication"))) |
| 1338 | `(menu-item ,(purecopy "Pong") pong | 1359 | (define-key menu [life] |
| 1339 | :help ,(purecopy "Bounce the ball to your opponent"))) | 1360 | `(menu-item ,(purecopy "Life") life |
| 1340 | (define-key menu-bar-games-menu [mult] | 1361 | :help ,(purecopy "Watch how John Conway's cellular automaton evolves"))) |
| 1341 | `(menu-item ,(purecopy "Multiplication Puzzle") mpuz | 1362 | (define-key menu [land] |
| 1342 | :help ,(purecopy "Exercise brain with multiplication"))) | 1363 | `(menu-item ,(purecopy "Landmark") landmark |
| 1343 | (define-key menu-bar-games-menu [life] | 1364 | :help ,(purecopy "Watch a neural-network robot learn landmarks"))) |
| 1344 | `(menu-item ,(purecopy "Life") life | 1365 | (define-key menu [hanoi] |
| 1345 | :help ,(purecopy "Watch how John Conway's cellular automaton evolves"))) | 1366 | `(menu-item ,(purecopy "Towers of Hanoi") hanoi |
| 1346 | (define-key menu-bar-games-menu [land] | 1367 | :help ,(purecopy "Watch Towers-of-Hanoi puzzle solved by Emacs"))) |
| 1347 | `(menu-item ,(purecopy "Landmark") landmark | 1368 | (define-key menu [gomoku] |
| 1348 | :help ,(purecopy "Watch a neural-network robot learn landmarks"))) | 1369 | `(menu-item ,(purecopy "Gomoku") gomoku |
| 1349 | (define-key menu-bar-games-menu [hanoi] | 1370 | :help ,(purecopy "Mark 5 contiguous squares (like tic-tac-toe)"))) |
| 1350 | `(menu-item ,(purecopy "Towers of Hanoi") hanoi | 1371 | (define-key menu [bubbles] |
| 1351 | :help ,(purecopy "Watch Towers-of-Hanoi puzzle solved by Emacs"))) | 1372 | `(menu-item ,(purecopy "Bubbles") bubbles |
| 1352 | (define-key menu-bar-games-menu [gomoku] | 1373 | :help ,(purecopy "Remove all bubbles using the fewest moves"))) |
| 1353 | `(menu-item ,(purecopy "Gomoku") gomoku | 1374 | (define-key menu [black-box] |
| 1354 | :help ,(purecopy "Mark 5 contiguous squares (like tic-tac-toe)"))) | 1375 | `(menu-item ,(purecopy "Blackbox") blackbox |
| 1355 | (define-key menu-bar-games-menu [bubbles] | 1376 | :help ,(purecopy "Find balls in a black box by shooting rays"))) |
| 1356 | `(menu-item ,(purecopy "Bubbles") bubbles | 1377 | (define-key menu [adventure] |
| 1357 | :help ,(purecopy "Remove all bubbles using the fewest moves"))) | 1378 | `(menu-item ,(purecopy "Adventure") dunnet |
| 1358 | (define-key menu-bar-games-menu [black-box] | 1379 | :help ,(purecopy "Dunnet, a text Adventure game for Emacs"))) |
| 1359 | `(menu-item ,(purecopy "Blackbox") blackbox | 1380 | (define-key menu [5x5] |
| 1360 | :help ,(purecopy "Find balls in a black box by shooting rays"))) | 1381 | `(menu-item ,(purecopy "5x5") 5x5 |
| 1361 | (define-key menu-bar-games-menu [adventure] | 1382 | :help ,(purecopy "Fill in all the squares on a 5x5 board"))) |
| 1362 | `(menu-item ,(purecopy "Adventure") dunnet | 1383 | menu)) |
| 1363 | :help ,(purecopy "Dunnet, a text Adventure game for Emacs"))) | ||
| 1364 | (define-key menu-bar-games-menu [5x5] | ||
| 1365 | `(menu-item ,(purecopy "5x5") 5x5 | ||
| 1366 | :help ,(purecopy "Fill in all the squares on a 5x5 board"))) | ||
| 1367 | 1384 | ||
| 1368 | (defvar menu-bar-encryption-decryption-menu | 1385 | (defvar menu-bar-encryption-decryption-menu |
| 1369 | (make-sparse-keymap "Encryption/Decryption")) | 1386 | (let ((menu (make-sparse-keymap "Encryption/Decryption"))) |
| 1370 | 1387 | (define-key menu [insert-keys] | |
| 1371 | (define-key menu-bar-tools-menu [encryption-decryption] | 1388 | `(menu-item ,(purecopy "Insert Keys") epa-insert-keys |
| 1372 | `(menu-item ,(purecopy "Encryption/Decryption") ,menu-bar-encryption-decryption-menu)) | 1389 | :help ,(purecopy "Insert public keys after the current point"))) |
| 1373 | 1390 | ||
| 1374 | (define-key menu-bar-tools-menu [separator-encryption-decryption] | 1391 | (define-key menu [export-keys] |
| 1375 | menu-bar-separator) | 1392 | `(menu-item ,(purecopy "Export Keys") epa-export-keys |
| 1376 | 1393 | :help ,(purecopy "Export public keys to a file"))) | |
| 1377 | (define-key menu-bar-encryption-decryption-menu [insert-keys] | 1394 | |
| 1378 | `(menu-item ,(purecopy "Insert Keys") epa-insert-keys | 1395 | (define-key menu [import-keys-region] |
| 1379 | :help ,(purecopy "Insert public keys after the current point"))) | 1396 | `(menu-item ,(purecopy "Import Keys from Region") epa-import-keys-region |
| 1380 | 1397 | :help ,(purecopy "Import public keys from the current region"))) | |
| 1381 | (define-key menu-bar-encryption-decryption-menu [export-keys] | 1398 | |
| 1382 | `(menu-item ,(purecopy "Export Keys") epa-export-keys | 1399 | (define-key menu [import-keys] |
| 1383 | :help ,(purecopy "Export public keys to a file"))) | 1400 | `(menu-item ,(purecopy "Import Keys from File...") epa-import-keys |
| 1384 | 1401 | :help ,(purecopy "Import public keys from a file"))) | |
| 1385 | (define-key menu-bar-encryption-decryption-menu [import-keys-region] | 1402 | |
| 1386 | `(menu-item ,(purecopy "Import Keys from Region") epa-import-keys-region | 1403 | (define-key menu [list-keys] |
| 1387 | :help ,(purecopy "Import public keys from the current region"))) | 1404 | `(menu-item ,(purecopy "List Keys") epa-list-keys |
| 1388 | 1405 | :help ,(purecopy "Browse your public keyring"))) | |
| 1389 | (define-key menu-bar-encryption-decryption-menu [import-keys] | 1406 | |
| 1390 | `(menu-item ,(purecopy "Import Keys from File...") epa-import-keys | 1407 | (define-key menu [separator-keys] |
| 1391 | :help ,(purecopy "Import public keys from a file"))) | 1408 | menu-bar-separator) |
| 1392 | 1409 | ||
| 1393 | (define-key menu-bar-encryption-decryption-menu [list-keys] | 1410 | (define-key menu [sign-region] |
| 1394 | `(menu-item ,(purecopy "List Keys") epa-list-keys | 1411 | `(menu-item ,(purecopy "Sign Region") epa-sign-region |
| 1395 | :help ,(purecopy "Browse your public keyring"))) | 1412 | :help ,(purecopy "Create digital signature of the current region"))) |
| 1396 | 1413 | ||
| 1397 | (define-key menu-bar-encryption-decryption-menu [separator-keys] | 1414 | (define-key menu [verify-region] |
| 1398 | menu-bar-separator) | 1415 | `(menu-item ,(purecopy "Verify Region") epa-verify-region |
| 1399 | 1416 | :help ,(purecopy "Verify digital signature of the current region"))) | |
| 1400 | (define-key menu-bar-encryption-decryption-menu [sign-region] | 1417 | |
| 1401 | `(menu-item ,(purecopy "Sign Region") epa-sign-region | 1418 | (define-key menu [encrypt-region] |
| 1402 | :help ,(purecopy "Create digital signature of the current region"))) | 1419 | `(menu-item ,(purecopy "Encrypt Region") epa-encrypt-region |
| 1403 | 1420 | :help ,(purecopy "Encrypt the current region"))) | |
| 1404 | (define-key menu-bar-encryption-decryption-menu [verify-region] | 1421 | |
| 1405 | `(menu-item ,(purecopy "Verify Region") epa-verify-region | 1422 | (define-key menu [decrypt-region] |
| 1406 | :help ,(purecopy "Verify digital signature of the current region"))) | 1423 | `(menu-item ,(purecopy "Decrypt Region") epa-decrypt-region |
| 1407 | 1424 | :help ,(purecopy "Decrypt the current region"))) | |
| 1408 | (define-key menu-bar-encryption-decryption-menu [encrypt-region] | 1425 | |
| 1409 | `(menu-item ,(purecopy "Encrypt Region") epa-encrypt-region | 1426 | (define-key menu [separator-file] |
| 1410 | :help ,(purecopy "Encrypt the current region"))) | 1427 | menu-bar-separator) |
| 1411 | 1428 | ||
| 1412 | (define-key menu-bar-encryption-decryption-menu [decrypt-region] | 1429 | (define-key menu [sign-file] |
| 1413 | `(menu-item ,(purecopy "Decrypt Region") epa-decrypt-region | 1430 | `(menu-item ,(purecopy "Sign File...") epa-sign-file |
| 1414 | :help ,(purecopy "Decrypt the current region"))) | 1431 | :help ,(purecopy "Create digital signature of a file"))) |
| 1415 | 1432 | ||
| 1416 | (define-key menu-bar-encryption-decryption-menu [separator-file] | 1433 | (define-key menu [verify-file] |
| 1417 | menu-bar-separator) | 1434 | `(menu-item ,(purecopy "Verify File...") epa-verify-file |
| 1418 | 1435 | :help ,(purecopy "Verify digital signature of a file"))) | |
| 1419 | (define-key menu-bar-encryption-decryption-menu [sign-file] | 1436 | |
| 1420 | `(menu-item ,(purecopy "Sign File...") epa-sign-file | 1437 | (define-key menu [encrypt-file] |
| 1421 | :help ,(purecopy "Create digital signature of a file"))) | 1438 | `(menu-item ,(purecopy "Encrypt File...") epa-encrypt-file |
| 1422 | 1439 | :help ,(purecopy "Encrypt a file"))) | |
| 1423 | (define-key menu-bar-encryption-decryption-menu [verify-file] | 1440 | |
| 1424 | `(menu-item ,(purecopy "Verify File...") epa-verify-file | 1441 | (define-key menu [decrypt-file] |
| 1425 | :help ,(purecopy "Verify digital signature of a file"))) | 1442 | `(menu-item ,(purecopy "Decrypt File...") epa-decrypt-file |
| 1426 | 1443 | :help ,(purecopy "Decrypt a file"))) | |
| 1427 | (define-key menu-bar-encryption-decryption-menu [encrypt-file] | 1444 | |
| 1428 | `(menu-item ,(purecopy "Encrypt File...") epa-encrypt-file | 1445 | menu)) |
| 1429 | :help ,(purecopy "Encrypt a file"))) | ||
| 1430 | |||
| 1431 | (define-key menu-bar-encryption-decryption-menu [decrypt-file] | ||
| 1432 | `(menu-item ,(purecopy "Decrypt File...") epa-decrypt-file | ||
| 1433 | :help ,(purecopy "Decrypt a file"))) | ||
| 1434 | |||
| 1435 | (define-key menu-bar-tools-menu [simple-calculator] | ||
| 1436 | `(menu-item ,(purecopy "Simple Calculator") calculator | ||
| 1437 | :help ,(purecopy "Invoke the Emacs built-in quick calculator"))) | ||
| 1438 | (define-key menu-bar-tools-menu [calc] | ||
| 1439 | `(menu-item ,(purecopy "Programmable Calculator") calc | ||
| 1440 | :help ,(purecopy "Invoke the Emacs built-in full scientific calculator"))) | ||
| 1441 | (define-key menu-bar-tools-menu [calendar] | ||
| 1442 | `(menu-item ,(purecopy "Calendar") calendar | ||
| 1443 | :help ,(purecopy "Invoke the Emacs built-in calendar"))) | ||
| 1444 | |||
| 1445 | (define-key menu-bar-tools-menu [separator-net] | ||
| 1446 | menu-bar-separator) | ||
| 1447 | |||
| 1448 | (define-key menu-bar-tools-menu [directory-search] | ||
| 1449 | `(menu-item ,(purecopy "Directory Search") eudc-tools-menu)) | ||
| 1450 | (define-key menu-bar-tools-menu [compose-mail] | ||
| 1451 | `(menu-item (format "Send Mail (with %s)" (send-mail-item-name)) compose-mail | ||
| 1452 | :visible (and mail-user-agent (not (eq mail-user-agent 'ignore))) | ||
| 1453 | :help ,(purecopy "Send a mail message"))) | ||
| 1454 | (define-key menu-bar-tools-menu [rmail] | ||
| 1455 | `(menu-item (format "Read Mail (with %s)" (read-mail-item-name)) | ||
| 1456 | menu-bar-read-mail | ||
| 1457 | :visible (and read-mail-command | ||
| 1458 | (not (eq read-mail-command 'ignore))) | ||
| 1459 | :help ,(purecopy "Read your mail and reply to it"))) | ||
| 1460 | 1446 | ||
| 1461 | (defun menu-bar-read-mail () | 1447 | (defun menu-bar-read-mail () |
| 1462 | "Read mail using `read-mail-command'." | 1448 | "Read mail using `read-mail-command'." |
| 1463 | (interactive) | 1449 | (interactive) |
| 1464 | (call-interactively read-mail-command)) | 1450 | (call-interactively read-mail-command)) |
| 1465 | 1451 | ||
| 1466 | (define-key menu-bar-tools-menu [gnus] | 1452 | (defvar menu-bar-tools-menu |
| 1467 | `(menu-item ,(purecopy "Read Net News (Gnus)") gnus | 1453 | (let ((menu (make-sparse-keymap "Tools"))) |
| 1468 | :help ,(purecopy "Read network news groups"))) | 1454 | |
| 1469 | 1455 | (define-key menu [games] | |
| 1470 | (define-key menu-bar-tools-menu [separator-vc] | 1456 | `(menu-item ,(purecopy "Games") ,menu-bar-games-menu)) |
| 1471 | menu-bar-separator) | 1457 | |
| 1472 | 1458 | (define-key menu [separator-games] | |
| 1473 | (define-key menu-bar-tools-menu [pcl-cvs] | 1459 | menu-bar-separator) |
| 1474 | `(menu-item ,(purecopy "PCL-CVS") cvs-global-menu)) | 1460 | |
| 1475 | (define-key menu-bar-tools-menu [vc] nil) ;Create the place for the VC menu. | 1461 | (define-key menu [encryption-decryption] |
| 1476 | 1462 | `(menu-item ,(purecopy "Encryption/Decryption") ,menu-bar-encryption-decryption-menu)) | |
| 1477 | (define-key menu-bar-tools-menu [separator-compare] | 1463 | |
| 1478 | menu-bar-separator) | 1464 | (define-key menu [separator-encryption-decryption] |
| 1479 | 1465 | menu-bar-separator) | |
| 1480 | (define-key menu-bar-tools-menu [epatch] | 1466 | |
| 1481 | `(menu-item ,(purecopy "Apply Patch") menu-bar-epatch-menu)) | 1467 | (define-key menu [simple-calculator] |
| 1482 | (define-key menu-bar-tools-menu [ediff-merge] | 1468 | `(menu-item ,(purecopy "Simple Calculator") calculator |
| 1483 | `(menu-item ,(purecopy "Merge") menu-bar-ediff-merge-menu)) | 1469 | :help ,(purecopy "Invoke the Emacs built-in quick calculator"))) |
| 1484 | (define-key menu-bar-tools-menu [compare] | 1470 | (define-key menu [calc] |
| 1485 | `(menu-item ,(purecopy "Compare (Ediff)") menu-bar-ediff-menu)) | 1471 | `(menu-item ,(purecopy "Programmable Calculator") calc |
| 1486 | 1472 | :help ,(purecopy "Invoke the Emacs built-in full scientific calculator"))) | |
| 1487 | (define-key menu-bar-tools-menu [separator-spell] | 1473 | (define-key menu [calendar] |
| 1488 | menu-bar-separator) | 1474 | `(menu-item ,(purecopy "Calendar") calendar |
| 1489 | 1475 | :help ,(purecopy "Invoke the Emacs built-in calendar"))) | |
| 1490 | (define-key menu-bar-tools-menu [spell] | 1476 | |
| 1491 | `(menu-item ,(purecopy "Spell Checking") ispell-menu-map)) | 1477 | (define-key menu [separator-net] |
| 1492 | 1478 | menu-bar-separator) | |
| 1493 | (define-key menu-bar-tools-menu [separator-prog] | 1479 | |
| 1494 | menu-bar-separator) | 1480 | (define-key menu [directory-search] |
| 1495 | 1481 | `(menu-item ,(purecopy "Directory Search") eudc-tools-menu)) | |
| 1496 | (define-key menu-bar-tools-menu [semantic] | 1482 | (define-key menu [compose-mail] |
| 1497 | `(menu-item ,(purecopy "Source Code Parsers (Semantic)") | 1483 | `(menu-item (format "Send Mail (with %s)" (send-mail-item-name)) compose-mail |
| 1498 | semantic-mode | 1484 | :visible (and mail-user-agent (not (eq mail-user-agent 'ignore))) |
| 1499 | :help ,(purecopy "Toggle automatic parsing in source code buffers (Semantic mode)") | 1485 | :help ,(purecopy "Send a mail message"))) |
| 1500 | :button (:toggle . (bound-and-true-p semantic-mode)))) | 1486 | (define-key menu [rmail] |
| 1501 | 1487 | `(menu-item (format "Read Mail (with %s)" (read-mail-item-name)) | |
| 1502 | (define-key menu-bar-tools-menu [ede] | 1488 | menu-bar-read-mail |
| 1503 | `(menu-item ,(purecopy "Project support (EDE)") | 1489 | :visible (and read-mail-command |
| 1504 | global-ede-mode | 1490 | (not (eq read-mail-command 'ignore))) |
| 1505 | :help ,(purecopy "Toggle the Emacs Development Environment (Global EDE mode)") | 1491 | :help ,(purecopy "Read your mail and reply to it"))) |
| 1506 | :button (:toggle . (bound-and-true-p global-ede-mode)))) | 1492 | |
| 1507 | 1493 | (define-key menu [gnus] | |
| 1508 | (define-key menu-bar-tools-menu [gdb] | 1494 | `(menu-item ,(purecopy "Read Net News (Gnus)") gnus |
| 1509 | `(menu-item ,(purecopy "Debugger (GDB)...") gdb | 1495 | :help ,(purecopy "Read network news groups"))) |
| 1510 | :help ,(purecopy "Debug a program from within Emacs with GDB"))) | 1496 | |
| 1511 | (define-key menu-bar-tools-menu [shell-on-region] | 1497 | (define-key menu [separator-vc] |
| 1512 | `(menu-item ,(purecopy "Shell Command on Region...") shell-command-on-region | 1498 | menu-bar-separator) |
| 1513 | :enable mark-active | 1499 | |
| 1514 | :help ,(purecopy "Pass marked region to a shell command"))) | 1500 | (define-key menu [pcl-cvs] |
| 1515 | (define-key menu-bar-tools-menu [shell] | 1501 | `(menu-item ,(purecopy "PCL-CVS") cvs-global-menu)) |
| 1516 | `(menu-item ,(purecopy "Shell Command...") shell-command | 1502 | (define-key menu [vc] nil) ;Create the place for the VC menu. |
| 1517 | :help ,(purecopy "Invoke a shell command and catch its output"))) | 1503 | |
| 1518 | (define-key menu-bar-tools-menu [compile] | 1504 | (define-key menu [separator-compare] |
| 1519 | `(menu-item ,(purecopy "Compile...") compile | 1505 | menu-bar-separator) |
| 1520 | :help ,(purecopy "Invoke compiler or Make, view compilation errors"))) | 1506 | |
| 1521 | (define-key menu-bar-tools-menu [grep] | 1507 | (define-key menu [epatch] |
| 1522 | `(menu-item ,(purecopy "Search Files (Grep)...") grep | 1508 | `(menu-item ,(purecopy "Apply Patch") menu-bar-epatch-menu)) |
| 1523 | :help ,(purecopy "Search files for strings or regexps (with Grep)"))) | 1509 | (define-key menu [ediff-merge] |
| 1524 | 1510 | `(menu-item ,(purecopy "Merge") menu-bar-ediff-merge-menu)) | |
| 1511 | (define-key menu [compare] | ||
| 1512 | `(menu-item ,(purecopy "Compare (Ediff)") menu-bar-ediff-menu)) | ||
| 1513 | |||
| 1514 | (define-key menu [separator-spell] | ||
| 1515 | menu-bar-separator) | ||
| 1516 | |||
| 1517 | (define-key menu [spell] | ||
| 1518 | `(menu-item ,(purecopy "Spell Checking") ispell-menu-map)) | ||
| 1519 | |||
| 1520 | (define-key menu [separator-prog] | ||
| 1521 | menu-bar-separator) | ||
| 1522 | |||
| 1523 | (define-key menu [semantic] | ||
| 1524 | `(menu-item ,(purecopy "Source Code Parsers (Semantic)") | ||
| 1525 | semantic-mode | ||
| 1526 | :help ,(purecopy "Toggle automatic parsing in source code buffers (Semantic mode)") | ||
| 1527 | :button (:toggle . (bound-and-true-p semantic-mode)))) | ||
| 1528 | |||
| 1529 | (define-key menu [ede] | ||
| 1530 | `(menu-item ,(purecopy "Project support (EDE)") | ||
| 1531 | global-ede-mode | ||
| 1532 | :help ,(purecopy "Toggle the Emacs Development Environment (Global EDE mode)") | ||
| 1533 | :button (:toggle . (bound-and-true-p global-ede-mode)))) | ||
| 1534 | |||
| 1535 | (define-key menu [gdb] | ||
| 1536 | `(menu-item ,(purecopy "Debugger (GDB)...") gdb | ||
| 1537 | :help ,(purecopy "Debug a program from within Emacs with GDB"))) | ||
| 1538 | (define-key menu [shell-on-region] | ||
| 1539 | `(menu-item ,(purecopy "Shell Command on Region...") shell-command-on-region | ||
| 1540 | :enable mark-active | ||
| 1541 | :help ,(purecopy "Pass marked region to a shell command"))) | ||
| 1542 | (define-key menu [shell] | ||
| 1543 | `(menu-item ,(purecopy "Shell Command...") shell-command | ||
| 1544 | :help ,(purecopy "Invoke a shell command and catch its output"))) | ||
| 1545 | (define-key menu [compile] | ||
| 1546 | `(menu-item ,(purecopy "Compile...") compile | ||
| 1547 | :help ,(purecopy "Invoke compiler or Make, view compilation errors"))) | ||
| 1548 | (define-key menu [grep] | ||
| 1549 | `(menu-item ,(purecopy "Search Files (Grep)...") grep | ||
| 1550 | :help ,(purecopy "Search files for strings or regexps (with Grep)"))) | ||
| 1551 | menu)) | ||
| 1525 | 1552 | ||
| 1526 | ;; The "Help" menu items | 1553 | ;; The "Help" menu items |
| 1527 | 1554 | ||
| 1528 | (defvar menu-bar-describe-menu (make-sparse-keymap "Describe")) | 1555 | (defvar menu-bar-describe-menu |
| 1529 | 1556 | (let ((menu (make-sparse-keymap "Describe"))) | |
| 1530 | (define-key menu-bar-describe-menu [mule-diag] | 1557 | |
| 1531 | `(menu-item ,(purecopy "Show All of Mule Status") mule-diag | 1558 | (define-key menu [mule-diag] |
| 1532 | :visible (default-value 'enable-multibyte-characters) | 1559 | `(menu-item ,(purecopy "Show All of Mule Status") mule-diag |
| 1533 | :help ,(purecopy "Display multilingual environment settings"))) | 1560 | :visible (default-value 'enable-multibyte-characters) |
| 1534 | (define-key menu-bar-describe-menu [describe-coding-system-briefly] | 1561 | :help ,(purecopy "Display multilingual environment settings"))) |
| 1535 | `(menu-item ,(purecopy "Describe Coding System (Briefly)") | 1562 | (define-key menu [describe-coding-system-briefly] |
| 1536 | describe-current-coding-system-briefly | 1563 | `(menu-item ,(purecopy "Describe Coding System (Briefly)") |
| 1537 | :visible (default-value 'enable-multibyte-characters))) | 1564 | describe-current-coding-system-briefly |
| 1538 | (define-key menu-bar-describe-menu [describe-coding-system] | 1565 | :visible (default-value 'enable-multibyte-characters))) |
| 1539 | `(menu-item ,(purecopy "Describe Coding System...") describe-coding-system | 1566 | (define-key menu [describe-coding-system] |
| 1540 | :visible (default-value 'enable-multibyte-characters))) | 1567 | `(menu-item ,(purecopy "Describe Coding System...") describe-coding-system |
| 1541 | (define-key menu-bar-describe-menu [describe-input-method] | 1568 | :visible (default-value 'enable-multibyte-characters))) |
| 1542 | `(menu-item ,(purecopy "Describe Input Method...") describe-input-method | 1569 | (define-key menu [describe-input-method] |
| 1543 | :visible (default-value 'enable-multibyte-characters) | 1570 | `(menu-item ,(purecopy "Describe Input Method...") describe-input-method |
| 1544 | :help ,(purecopy "Keyboard layout for specific input method"))) | 1571 | :visible (default-value 'enable-multibyte-characters) |
| 1545 | (define-key menu-bar-describe-menu [describe-language-environment] | 1572 | :help ,(purecopy "Keyboard layout for specific input method"))) |
| 1546 | `(menu-item ,(purecopy "Describe Language Environment") | 1573 | (define-key menu [describe-language-environment] |
| 1547 | ,describe-language-environment-map)) | 1574 | `(menu-item ,(purecopy "Describe Language Environment") |
| 1548 | 1575 | ,describe-language-environment-map)) | |
| 1549 | (define-key menu-bar-describe-menu [separator-desc-mule] | 1576 | |
| 1550 | menu-bar-separator) | 1577 | (define-key menu [separator-desc-mule] |
| 1551 | 1578 | menu-bar-separator) | |
| 1552 | (define-key menu-bar-describe-menu [list-keybindings] | 1579 | |
| 1553 | `(menu-item ,(purecopy "List Key Bindings") describe-bindings | 1580 | (define-key menu [list-keybindings] |
| 1554 | :help ,(purecopy "Display all current key bindings (keyboard shortcuts)"))) | 1581 | `(menu-item ,(purecopy "List Key Bindings") describe-bindings |
| 1555 | (define-key menu-bar-describe-menu [describe-current-display-table] | 1582 | :help ,(purecopy "Display all current key bindings (keyboard shortcuts)"))) |
| 1556 | `(menu-item ,(purecopy "Describe Display Table") describe-current-display-table | 1583 | (define-key menu [describe-current-display-table] |
| 1557 | :help ,(purecopy "Describe the current display table"))) | 1584 | `(menu-item ,(purecopy "Describe Display Table") describe-current-display-table |
| 1558 | (define-key menu-bar-describe-menu [describe-package] | 1585 | :help ,(purecopy "Describe the current display table"))) |
| 1559 | `(menu-item ,(purecopy "Describe Package...") describe-package | 1586 | (define-key menu [describe-package] |
| 1560 | :help ,(purecopy "Display documentation of a Lisp package"))) | 1587 | `(menu-item ,(purecopy "Describe Package...") describe-package |
| 1561 | (define-key menu-bar-describe-menu [describe-face] | 1588 | :help ,(purecopy "Display documentation of a Lisp package"))) |
| 1562 | `(menu-item ,(purecopy "Describe Face...") describe-face | 1589 | (define-key menu [describe-face] |
| 1563 | :help ,(purecopy "Display the properties of a face"))) | 1590 | `(menu-item ,(purecopy "Describe Face...") describe-face |
| 1564 | (define-key menu-bar-describe-menu [describe-variable] | 1591 | :help ,(purecopy "Display the properties of a face"))) |
| 1565 | `(menu-item ,(purecopy "Describe Variable...") describe-variable | 1592 | (define-key menu [describe-variable] |
| 1566 | :help ,(purecopy "Display documentation of variable/option"))) | 1593 | `(menu-item ,(purecopy "Describe Variable...") describe-variable |
| 1567 | (define-key menu-bar-describe-menu [describe-function] | 1594 | :help ,(purecopy "Display documentation of variable/option"))) |
| 1568 | `(menu-item ,(purecopy "Describe Function...") describe-function | 1595 | (define-key menu [describe-function] |
| 1569 | :help ,(purecopy "Display documentation of function/command"))) | 1596 | `(menu-item ,(purecopy "Describe Function...") describe-function |
| 1570 | (define-key menu-bar-describe-menu [describe-key-1] | 1597 | :help ,(purecopy "Display documentation of function/command"))) |
| 1571 | `(menu-item ,(purecopy "Describe Key or Mouse Operation...") describe-key | 1598 | (define-key menu [describe-key-1] |
| 1572 | ;; Users typically don't identify keys and menu items... | 1599 | `(menu-item ,(purecopy "Describe Key or Mouse Operation...") describe-key |
| 1573 | :help ,(purecopy "Display documentation of command bound to a \ | 1600 | ;; Users typically don't identify keys and menu items... |
| 1601 | :help ,(purecopy "Display documentation of command bound to a \ | ||
| 1574 | key, a click, or a menu-item"))) | 1602 | key, a click, or a menu-item"))) |
| 1575 | (define-key menu-bar-describe-menu [describe-mode] | 1603 | (define-key menu [describe-mode] |
| 1576 | `(menu-item ,(purecopy "Describe Buffer Modes") describe-mode | 1604 | `(menu-item ,(purecopy "Describe Buffer Modes") describe-mode |
| 1577 | :help ,(purecopy "Describe this buffer's major and minor mode"))) | 1605 | :help ,(purecopy "Describe this buffer's major and minor mode"))) |
| 1606 | menu)) | ||
| 1578 | 1607 | ||
| 1579 | (defvar menu-bar-search-documentation-menu | ||
| 1580 | (make-sparse-keymap "Search Documentation")) | ||
| 1581 | (defun menu-bar-read-lispref () | 1608 | (defun menu-bar-read-lispref () |
| 1582 | "Display the Emacs Lisp Reference manual in Info mode." | 1609 | "Display the Emacs Lisp Reference manual in Info mode." |
| 1583 | (interactive) | 1610 | (interactive) |
| @@ -1605,80 +1632,69 @@ key, a click, or a menu-item"))) | |||
| 1605 | (info "elisp") | 1632 | (info "elisp") |
| 1606 | (Info-index topic)) | 1633 | (Info-index topic)) |
| 1607 | 1634 | ||
| 1608 | (define-key menu-bar-search-documentation-menu [search-documentation-strings] | 1635 | (defvar menu-bar-search-documentation-menu |
| 1609 | `(menu-item ,(purecopy "Search Documentation Strings...") apropos-documentation | 1636 | (let ((menu (make-sparse-keymap "Search Documentation"))) |
| 1610 | :help | 1637 | |
| 1611 | ,(purecopy "Find functions and variables whose doc strings match a regexp"))) | 1638 | (define-key menu [search-documentation-strings] |
| 1612 | (define-key menu-bar-search-documentation-menu [find-any-object-by-name] | 1639 | `(menu-item ,(purecopy "Search Documentation Strings...") apropos-documentation |
| 1613 | `(menu-item ,(purecopy "Find Any Object by Name...") apropos | 1640 | :help |
| 1614 | :help ,(purecopy "Find symbols of any kind whose names match a regexp"))) | 1641 | ,(purecopy "Find functions and variables whose doc strings match a regexp"))) |
| 1615 | (define-key menu-bar-search-documentation-menu [find-option-by-value] | 1642 | (define-key menu [find-any-object-by-name] |
| 1616 | `(menu-item ,(purecopy "Find Options by Value...") apropos-value | 1643 | `(menu-item ,(purecopy "Find Any Object by Name...") apropos |
| 1617 | :help ,(purecopy "Find variables whose values match a regexp"))) | 1644 | :help ,(purecopy "Find symbols of any kind whose names match a regexp"))) |
| 1618 | (define-key menu-bar-search-documentation-menu [find-options-by-name] | 1645 | (define-key menu [find-option-by-value] |
| 1619 | `(menu-item ,(purecopy "Find Options by Name...") apropos-variable | 1646 | `(menu-item ,(purecopy "Find Options by Value...") apropos-value |
| 1620 | :help ,(purecopy "Find variables whose names match a regexp"))) | 1647 | :help ,(purecopy "Find variables whose values match a regexp"))) |
| 1621 | (define-key menu-bar-search-documentation-menu [find-commands-by-name] | 1648 | (define-key menu [find-options-by-name] |
| 1622 | `(menu-item ,(purecopy "Find Commands by Name...") apropos-command | 1649 | `(menu-item ,(purecopy "Find Options by Name...") apropos-variable |
| 1623 | :help ,(purecopy "Find commands whose names match a regexp"))) | 1650 | :help ,(purecopy "Find variables whose names match a regexp"))) |
| 1624 | (define-key menu-bar-search-documentation-menu [sep1] | 1651 | (define-key menu [find-commands-by-name] |
| 1625 | menu-bar-separator) | 1652 | `(menu-item ,(purecopy "Find Commands by Name...") apropos-command |
| 1626 | (define-key menu-bar-search-documentation-menu [lookup-command-in-manual] | 1653 | :help ,(purecopy "Find commands whose names match a regexp"))) |
| 1627 | `(menu-item ,(purecopy "Look Up Command in User Manual...") Info-goto-emacs-command-node | 1654 | (define-key menu [sep1] |
| 1628 | :help ,(purecopy "Display manual section that describes a command"))) | 1655 | menu-bar-separator) |
| 1629 | (define-key menu-bar-search-documentation-menu [lookup-key-in-manual] | 1656 | (define-key menu [lookup-command-in-manual] |
| 1630 | `(menu-item ,(purecopy "Look Up Key in User Manual...") Info-goto-emacs-key-command-node | 1657 | `(menu-item ,(purecopy "Look Up Command in User Manual...") Info-goto-emacs-command-node |
| 1631 | :help ,(purecopy "Display manual section that describes a key"))) | 1658 | :help ,(purecopy "Display manual section that describes a command"))) |
| 1632 | (define-key menu-bar-search-documentation-menu [lookup-subject-in-elisp-manual] | 1659 | (define-key menu [lookup-key-in-manual] |
| 1633 | `(menu-item ,(purecopy "Look Up Subject in ELisp Manual...") elisp-index-search | 1660 | `(menu-item ,(purecopy "Look Up Key in User Manual...") Info-goto-emacs-key-command-node |
| 1634 | :help ,(purecopy "Find description of a subject in Emacs Lisp manual"))) | 1661 | :help ,(purecopy "Display manual section that describes a key"))) |
| 1635 | (define-key menu-bar-search-documentation-menu [lookup-subject-in-emacs-manual] | 1662 | (define-key menu [lookup-subject-in-elisp-manual] |
| 1636 | `(menu-item ,(purecopy "Look Up Subject in User Manual...") emacs-index-search | 1663 | `(menu-item ,(purecopy "Look Up Subject in ELisp Manual...") elisp-index-search |
| 1637 | :help ,(purecopy "Find description of a subject in Emacs User manual"))) | 1664 | :help ,(purecopy "Find description of a subject in Emacs Lisp manual"))) |
| 1638 | (define-key menu-bar-search-documentation-menu [emacs-terminology] | 1665 | (define-key menu [lookup-subject-in-emacs-manual] |
| 1639 | `(menu-item ,(purecopy "Emacs Terminology") search-emacs-glossary | 1666 | `(menu-item ,(purecopy "Look Up Subject in User Manual...") emacs-index-search |
| 1640 | :help ,(purecopy "Display the Glossary section of the Emacs manual"))) | 1667 | :help ,(purecopy "Find description of a subject in Emacs User manual"))) |
| 1641 | 1668 | (define-key menu [emacs-terminology] | |
| 1642 | (defvar menu-bar-manuals-menu (make-sparse-keymap "More Manuals")) | 1669 | `(menu-item ,(purecopy "Emacs Terminology") search-emacs-glossary |
| 1643 | 1670 | :help ,(purecopy "Display the Glossary section of the Emacs manual"))) | |
| 1644 | (define-key menu-bar-manuals-menu [man] | 1671 | menu)) |
| 1645 | `(menu-item ,(purecopy "Read Man Page...") manual-entry | 1672 | |
| 1646 | :help ,(purecopy "Man-page docs for external commands and libraries"))) | 1673 | (defvar menu-bar-manuals-menu |
| 1647 | (define-key menu-bar-manuals-menu [sep2] | 1674 | (let ((menu (make-sparse-keymap "More Manuals"))) |
| 1648 | menu-bar-separator) | 1675 | |
| 1649 | (define-key menu-bar-manuals-menu [order-emacs-manuals] | 1676 | (define-key menu [man] |
| 1650 | `(menu-item ,(purecopy "Ordering Manuals") view-order-manuals | 1677 | `(menu-item ,(purecopy "Read Man Page...") manual-entry |
| 1651 | :help ,(purecopy "How to order manuals from the Free Software Foundation"))) | 1678 | :help ,(purecopy "Man-page docs for external commands and libraries"))) |
| 1652 | (define-key menu-bar-manuals-menu [lookup-subject-in-all-manuals] | 1679 | (define-key menu [sep2] |
| 1653 | `(menu-item ,(purecopy "Lookup Subject in all Manuals...") info-apropos | 1680 | menu-bar-separator) |
| 1654 | :help ,(purecopy "Find description of a subject in all installed manuals"))) | 1681 | (define-key menu [order-emacs-manuals] |
| 1655 | (define-key menu-bar-manuals-menu [other-manuals] | 1682 | `(menu-item ,(purecopy "Ordering Manuals") view-order-manuals |
| 1656 | `(menu-item ,(purecopy "All Other Manuals (Info)") Info-directory | 1683 | :help ,(purecopy "How to order manuals from the Free Software Foundation"))) |
| 1657 | :help ,(purecopy "Read any of the installed manuals"))) | 1684 | (define-key menu [lookup-subject-in-all-manuals] |
| 1658 | (define-key menu-bar-manuals-menu [emacs-lisp-reference] | 1685 | `(menu-item ,(purecopy "Lookup Subject in all Manuals...") info-apropos |
| 1659 | `(menu-item ,(purecopy "Emacs Lisp Reference") menu-bar-read-lispref | 1686 | :help ,(purecopy "Find description of a subject in all installed manuals"))) |
| 1660 | :help ,(purecopy "Read the Emacs Lisp Reference manual"))) | 1687 | (define-key menu [other-manuals] |
| 1661 | (define-key menu-bar-manuals-menu [emacs-lisp-intro] | 1688 | `(menu-item ,(purecopy "All Other Manuals (Info)") Info-directory |
| 1662 | `(menu-item ,(purecopy "Introduction to Emacs Lisp") menu-bar-read-lispintro | 1689 | :help ,(purecopy "Read any of the installed manuals"))) |
| 1663 | :help ,(purecopy "Read the Introduction to Emacs Lisp Programming"))) | 1690 | (define-key menu [emacs-lisp-reference] |
| 1664 | 1691 | `(menu-item ,(purecopy "Emacs Lisp Reference") menu-bar-read-lispref | |
| 1665 | (define-key menu-bar-help-menu [about-gnu-project] | 1692 | :help ,(purecopy "Read the Emacs Lisp Reference manual"))) |
| 1666 | `(menu-item ,(purecopy "About GNU") describe-gnu-project | 1693 | (define-key menu [emacs-lisp-intro] |
| 1667 | :help ,(purecopy "About the GNU System, GNU Project, and GNU/Linux"))) | 1694 | `(menu-item ,(purecopy "Introduction to Emacs Lisp") menu-bar-read-lispintro |
| 1668 | (define-key menu-bar-help-menu [about-emacs] | 1695 | :help ,(purecopy "Read the Introduction to Emacs Lisp Programming"))) |
| 1669 | `(menu-item ,(purecopy "About Emacs") about-emacs | 1696 | menu)) |
| 1670 | :help ,(purecopy "Display version number, copyright info, and basic help"))) | 1697 | |
| 1671 | (define-key menu-bar-help-menu [sep4] | ||
| 1672 | menu-bar-separator) | ||
| 1673 | (define-key menu-bar-help-menu [describe-no-warranty] | ||
| 1674 | `(menu-item ,(purecopy "(Non)Warranty") describe-no-warranty | ||
| 1675 | :help ,(purecopy "Explain that Emacs has NO WARRANTY"))) | ||
| 1676 | (define-key menu-bar-help-menu [describe-copying] | ||
| 1677 | `(menu-item ,(purecopy "Copying Conditions") describe-copying | ||
| 1678 | :help ,(purecopy "Show the Emacs license (GPL)"))) | ||
| 1679 | (define-key menu-bar-help-menu [getting-new-versions] | ||
| 1680 | `(menu-item ,(purecopy "Getting New Versions") describe-distribution | ||
| 1681 | :help ,(purecopy "How to get the latest version of Emacs"))) | ||
| 1682 | (defun menu-bar-help-extra-packages () | 1698 | (defun menu-bar-help-extra-packages () |
| 1683 | "Display help about some additional packages available for Emacs." | 1699 | "Display help about some additional packages available for Emacs." |
| 1684 | (interactive) | 1700 | (interactive) |
| @@ -1686,60 +1702,101 @@ key, a click, or a menu-item"))) | |||
| 1686 | (view-file (expand-file-name "MORE.STUFF" | 1702 | (view-file (expand-file-name "MORE.STUFF" |
| 1687 | data-directory)) | 1703 | data-directory)) |
| 1688 | (goto-address-mode 1))) | 1704 | (goto-address-mode 1))) |
| 1689 | (define-key menu-bar-help-menu [sep2] | ||
| 1690 | menu-bar-separator) | ||
| 1691 | (define-key menu-bar-help-menu [external-packages] | ||
| 1692 | `(menu-item ,(purecopy "Finding Extra Packages") menu-bar-help-extra-packages | ||
| 1693 | :help ,(purecopy "Lisp packages distributed separately for use in Emacs"))) | ||
| 1694 | (define-key menu-bar-help-menu [find-emacs-packages] | ||
| 1695 | `(menu-item ,(purecopy "Search Built-in Packages") finder-by-keyword | ||
| 1696 | :help ,(purecopy "Find built-in packages and features by keyword"))) | ||
| 1697 | (define-key menu-bar-help-menu [more-manuals] | ||
| 1698 | `(menu-item ,(purecopy "More Manuals") ,menu-bar-manuals-menu)) | ||
| 1699 | (define-key menu-bar-help-menu [emacs-manual] | ||
| 1700 | `(menu-item ,(purecopy "Read the Emacs Manual") info-emacs-manual | ||
| 1701 | :help ,(purecopy "Full documentation of Emacs features"))) | ||
| 1702 | (define-key menu-bar-help-menu [describe] | ||
| 1703 | `(menu-item ,(purecopy "Describe") ,menu-bar-describe-menu)) | ||
| 1704 | (define-key menu-bar-help-menu [search-documentation] | ||
| 1705 | `(menu-item ,(purecopy "Search Documentation") ,menu-bar-search-documentation-menu)) | ||
| 1706 | (define-key menu-bar-help-menu [sep1] | ||
| 1707 | menu-bar-separator) | ||
| 1708 | (define-key menu-bar-help-menu [emacs-psychotherapist] | ||
| 1709 | `(menu-item ,(purecopy "Emacs Psychotherapist") doctor | ||
| 1710 | :help ,(purecopy "Our doctor will help you feel better"))) | ||
| 1711 | (define-key menu-bar-help-menu [send-emacs-bug-report] | ||
| 1712 | `(menu-item ,(purecopy "Send Bug Report...") report-emacs-bug | ||
| 1713 | :help ,(purecopy "Send e-mail to Emacs maintainers"))) | ||
| 1714 | (define-key menu-bar-help-menu [emacs-known-problems] | ||
| 1715 | `(menu-item ,(purecopy "Emacs Known Problems") view-emacs-problems | ||
| 1716 | :help ,(purecopy "Read about known problems with Emacs"))) | ||
| 1717 | (define-key menu-bar-help-menu [emacs-news] | ||
| 1718 | `(menu-item ,(purecopy "Emacs News") view-emacs-news | ||
| 1719 | :help ,(purecopy "New features of this version"))) | ||
| 1720 | (define-key menu-bar-help-menu [emacs-faq] | ||
| 1721 | `(menu-item ,(purecopy "Emacs FAQ") view-emacs-FAQ | ||
| 1722 | :help ,(purecopy "Frequently asked (and answered) questions about Emacs"))) | ||
| 1723 | 1705 | ||
| 1724 | (defun help-with-tutorial-spec-language () | 1706 | (defun help-with-tutorial-spec-language () |
| 1725 | "Use the Emacs tutorial, specifying which language you want." | 1707 | "Use the Emacs tutorial, specifying which language you want." |
| 1726 | (interactive) | 1708 | (interactive) |
| 1727 | (help-with-tutorial t)) | 1709 | (help-with-tutorial t)) |
| 1728 | 1710 | ||
| 1729 | (define-key menu-bar-help-menu [emacs-tutorial-language-specific] | 1711 | (defvar menu-bar-help-menu |
| 1730 | `(menu-item ,(purecopy "Emacs Tutorial (choose language)...") | 1712 | (let ((menu (make-sparse-keymap "Help"))) |
| 1731 | help-with-tutorial-spec-language | 1713 | (define-key menu [about-gnu-project] |
| 1732 | :help ,(purecopy "Learn how to use Emacs (choose a language)"))) | 1714 | `(menu-item ,(purecopy "About GNU") describe-gnu-project |
| 1733 | (define-key menu-bar-help-menu [emacs-tutorial] | 1715 | :help ,(purecopy "About the GNU System, GNU Project, and GNU/Linux"))) |
| 1734 | `(menu-item ,(purecopy "Emacs Tutorial") help-with-tutorial | 1716 | (define-key menu [about-emacs] |
| 1735 | :help ,(purecopy "Learn how to use Emacs"))) | 1717 | `(menu-item ,(purecopy "About Emacs") about-emacs |
| 1736 | 1718 | :help ,(purecopy "Display version number, copyright info, and basic help"))) | |
| 1737 | ;; In OS X it's in the app menu already. | 1719 | (define-key menu [sep4] |
| 1738 | ;; FIXME? There already is an "About Emacs" (sans ...) entry in the Help menu. | 1720 | menu-bar-separator) |
| 1739 | (and (featurep 'ns) | 1721 | (define-key menu [describe-no-warranty] |
| 1740 | (not (eq system-type 'darwin)) | 1722 | `(menu-item ,(purecopy "(Non)Warranty") describe-no-warranty |
| 1741 | (define-key menu-bar-help-menu [info-panel] | 1723 | :help ,(purecopy "Explain that Emacs has NO WARRANTY"))) |
| 1742 | `(menu-item ,(purecopy "About Emacs...") ns-do-emacs-info-panel))) | 1724 | (define-key menu [describe-copying] |
| 1725 | `(menu-item ,(purecopy "Copying Conditions") describe-copying | ||
| 1726 | :help ,(purecopy "Show the Emacs license (GPL)"))) | ||
| 1727 | (define-key menu [getting-new-versions] | ||
| 1728 | `(menu-item ,(purecopy "Getting New Versions") describe-distribution | ||
| 1729 | :help ,(purecopy "How to get the latest version of Emacs"))) | ||
| 1730 | (define-key menu [sep2] | ||
| 1731 | menu-bar-separator) | ||
| 1732 | (define-key menu [external-packages] | ||
| 1733 | `(menu-item ,(purecopy "Finding Extra Packages") menu-bar-help-extra-packages | ||
| 1734 | :help ,(purecopy "Lisp packages distributed separately for use in Emacs"))) | ||
| 1735 | (define-key menu [find-emacs-packages] | ||
| 1736 | `(menu-item ,(purecopy "Search Built-in Packages") finder-by-keyword | ||
| 1737 | :help ,(purecopy "Find built-in packages and features by keyword"))) | ||
| 1738 | (define-key menu [more-manuals] | ||
| 1739 | `(menu-item ,(purecopy "More Manuals") ,menu-bar-manuals-menu)) | ||
| 1740 | (define-key menu [emacs-manual] | ||
| 1741 | `(menu-item ,(purecopy "Read the Emacs Manual") info-emacs-manual | ||
| 1742 | :help ,(purecopy "Full documentation of Emacs features"))) | ||
| 1743 | (define-key menu [describe] | ||
| 1744 | `(menu-item ,(purecopy "Describe") ,menu-bar-describe-menu)) | ||
| 1745 | (define-key menu [search-documentation] | ||
| 1746 | `(menu-item ,(purecopy "Search Documentation") ,menu-bar-search-documentation-menu)) | ||
| 1747 | (define-key menu [sep1] | ||
| 1748 | menu-bar-separator) | ||
| 1749 | (define-key menu [emacs-psychotherapist] | ||
| 1750 | `(menu-item ,(purecopy "Emacs Psychotherapist") doctor | ||
| 1751 | :help ,(purecopy "Our doctor will help you feel better"))) | ||
| 1752 | (define-key menu [send-emacs-bug-report] | ||
| 1753 | `(menu-item ,(purecopy "Send Bug Report...") report-emacs-bug | ||
| 1754 | :help ,(purecopy "Send e-mail to Emacs maintainers"))) | ||
| 1755 | (define-key menu [emacs-known-problems] | ||
| 1756 | `(menu-item ,(purecopy "Emacs Known Problems") view-emacs-problems | ||
| 1757 | :help ,(purecopy "Read about known problems with Emacs"))) | ||
| 1758 | (define-key menu [emacs-news] | ||
| 1759 | `(menu-item ,(purecopy "Emacs News") view-emacs-news | ||
| 1760 | :help ,(purecopy "New features of this version"))) | ||
| 1761 | (define-key menu [emacs-faq] | ||
| 1762 | `(menu-item ,(purecopy "Emacs FAQ") view-emacs-FAQ | ||
| 1763 | :help ,(purecopy "Frequently asked (and answered) questions about Emacs"))) | ||
| 1764 | |||
| 1765 | (define-key menu [emacs-tutorial-language-specific] | ||
| 1766 | `(menu-item ,(purecopy "Emacs Tutorial (choose language)...") | ||
| 1767 | help-with-tutorial-spec-language | ||
| 1768 | :help ,(purecopy "Learn how to use Emacs (choose a language)"))) | ||
| 1769 | (define-key menu [emacs-tutorial] | ||
| 1770 | `(menu-item ,(purecopy "Emacs Tutorial") help-with-tutorial | ||
| 1771 | :help ,(purecopy "Learn how to use Emacs"))) | ||
| 1772 | |||
| 1773 | ;; In OS X it's in the app menu already. | ||
| 1774 | ;; FIXME? There already is an "About Emacs" (sans ...) entry in the Help menu. | ||
| 1775 | (and (featurep 'ns) | ||
| 1776 | (not (eq system-type 'darwin)) | ||
| 1777 | (define-key menu [info-panel] | ||
| 1778 | `(menu-item ,(purecopy "About Emacs...") ns-do-emacs-info-panel))) | ||
| 1779 | menu)) | ||
| 1780 | |||
| 1781 | (define-key global-map [menu-bar tools] | ||
| 1782 | (cons (purecopy "Tools") menu-bar-tools-menu)) | ||
| 1783 | (define-key global-map [menu-bar buffer] | ||
| 1784 | (cons (purecopy "Buffers") global-buffers-menu-map)) | ||
| 1785 | (define-key global-map [menu-bar options] | ||
| 1786 | (cons (purecopy "Options") menu-bar-options-menu)) | ||
| 1787 | (define-key global-map [menu-bar edit] | ||
| 1788 | (cons (purecopy "Edit") menu-bar-edit-menu)) | ||
| 1789 | (define-key global-map [menu-bar file] | ||
| 1790 | (cons (purecopy "File") menu-bar-file-menu)) | ||
| 1791 | |||
| 1792 | ;; Put "Help" menu at the end, or Info at the front. | ||
| 1793 | ;; If running under GNUstep, "Help" is moved and renamed "Info" (see below). | ||
| 1794 | (if (and (featurep 'ns) | ||
| 1795 | (not (eq system-type 'darwin))) | ||
| 1796 | (define-key global-map [menu-bar help-menu] | ||
| 1797 | (cons (purecopy "Info") menu-bar-help-menu)) | ||
| 1798 | (define-key-after global-map [menu-bar help-menu] | ||
| 1799 | (cons (purecopy "Help") menu-bar-help-menu))) | ||
| 1743 | 1800 | ||
| 1744 | (defun menu-bar-menu-frame-live-and-visible-p () | 1801 | (defun menu-bar-menu-frame-live-and-visible-p () |
| 1745 | "Return non-nil if the menu frame is alive and visible. | 1802 | "Return non-nil if the menu frame is alive and visible. |
diff --git a/lisp/net/net-utils.el b/lisp/net/net-utils.el index 3c4588780a2..d75b36051f0 100644 --- a/lisp/net/net-utils.el +++ b/lisp/net/net-utils.el | |||
| @@ -490,6 +490,11 @@ If your system's ping continues until interrupted, you can try setting | |||
| 490 | 490 | ||
| 491 | (autoload 'comint-mode "comint" nil t) | 491 | (autoload 'comint-mode "comint" nil t) |
| 492 | 492 | ||
| 493 | (defvar nslookup-mode-map | ||
| 494 | (let ((map (make-sparse-keymap))) | ||
| 495 | (define-key map "\t" 'comint-dynamic-complete) | ||
| 496 | map)) | ||
| 497 | |||
| 493 | ;; Using a derived mode gives us keymaps, hooks, etc. | 498 | ;; Using a derived mode gives us keymaps, hooks, etc. |
| 494 | (define-derived-mode nslookup-mode comint-mode "Nslookup" | 499 | (define-derived-mode nslookup-mode comint-mode "Nslookup" |
| 495 | "Major mode for interacting with the nslookup program." | 500 | "Major mode for interacting with the nslookup program." |
| @@ -499,8 +504,6 @@ If your system's ping continues until interrupted, you can try setting | |||
| 499 | (setq comint-prompt-regexp nslookup-prompt-regexp) | 504 | (setq comint-prompt-regexp nslookup-prompt-regexp) |
| 500 | (setq comint-input-autoexpand t)) | 505 | (setq comint-input-autoexpand t)) |
| 501 | 506 | ||
| 502 | (define-key nslookup-mode-map "\t" 'comint-dynamic-complete) | ||
| 503 | |||
| 504 | ;;;###autoload | 507 | ;;;###autoload |
| 505 | (defun dns-lookup-host (host) | 508 | (defun dns-lookup-host (host) |
| 506 | "Lookup the DNS information for HOST (name or IP address)." | 509 | "Lookup the DNS information for HOST (name or IP address)." |
| @@ -556,6 +559,12 @@ If your system's ping continues until interrupted, you can try setting | |||
| 556 | (list host))) | 559 | (list host))) |
| 557 | (pop-to-buffer buf))) | 560 | (pop-to-buffer buf))) |
| 558 | 561 | ||
| 562 | (defvar ftp-mode-map | ||
| 563 | (let ((map (make-sparse-keymap))) | ||
| 564 | ;; Occasionally useful | ||
| 565 | (define-key map "\t" 'comint-dynamic-complete) | ||
| 566 | map)) | ||
| 567 | |||
| 559 | (define-derived-mode ftp-mode comint-mode "FTP" | 568 | (define-derived-mode ftp-mode comint-mode "FTP" |
| 560 | "Major mode for interacting with the ftp program." | 569 | "Major mode for interacting with the ftp program." |
| 561 | (setq comint-prompt-regexp ftp-prompt-regexp) | 570 | (setq comint-prompt-regexp ftp-prompt-regexp) |
| @@ -571,9 +580,6 @@ If your system's ping continues until interrupted, you can try setting | |||
| 571 | (add-hook 'comint-output-filter-functions 'comint-watch-for-password-prompt | 580 | (add-hook 'comint-output-filter-functions 'comint-watch-for-password-prompt |
| 572 | nil t))) | 581 | nil t))) |
| 573 | 582 | ||
| 574 | ;; Occasionally useful | ||
| 575 | (define-key ftp-mode-map "\t" 'comint-dynamic-complete) | ||
| 576 | |||
| 577 | (defun smbclient (host service) | 583 | (defun smbclient (host service) |
| 578 | "Connect to SERVICE on HOST via SMB." | 584 | "Connect to SERVICE on HOST via SMB." |
| 579 | (interactive | 585 | (interactive |
diff --git a/lisp/net/newst-plainview.el b/lisp/net/newst-plainview.el index 0e1279cd86c..cd662cb1784 100644 --- a/lisp/net/newst-plainview.el +++ b/lisp/net/newst-plainview.el | |||
| @@ -378,6 +378,107 @@ images." | |||
| 378 | ;;; Newsticker mode | 378 | ;;; Newsticker mode |
| 379 | ;; ====================================================================== | 379 | ;; ====================================================================== |
| 380 | 380 | ||
| 381 | |||
| 382 | ;; newsticker menu | ||
| 383 | (defvar newsticker-menu | ||
| 384 | (let ((map (make-sparse-keymap "Newsticker"))) | ||
| 385 | |||
| 386 | (define-key map [newsticker-browse-url] | ||
| 387 | '("Browse URL for item at point" . newsticker-browse-url)) | ||
| 388 | (define-key map [newsticker-separator-1] | ||
| 389 | '("--")) | ||
| 390 | (define-key map [newsticker-buffer-update] | ||
| 391 | '("Update buffer" . newsticker-buffer-update)) | ||
| 392 | (define-key map [newsticker-separator-2] | ||
| 393 | '("--")) | ||
| 394 | (define-key map [newsticker-get-all-news] | ||
| 395 | '("Get news from all feeds" . newsticker-get-all-news)) | ||
| 396 | (define-key map [newsticker-get-news-at-point] | ||
| 397 | '("Get news from feed at point" . newsticker-get-news-at-point)) | ||
| 398 | (define-key map [newsticker-separator-3] | ||
| 399 | '("--")) | ||
| 400 | (define-key map [newsticker-mark-all-items-as-read] | ||
| 401 | '("Mark all items as read" . newsticker-mark-all-items-as-read)) | ||
| 402 | (define-key map [newsticker-mark-all-items-at-point-as-read] | ||
| 403 | '("Mark all items in feed at point as read" . | ||
| 404 | newsticker-mark-all-items-at-point-as-read)) | ||
| 405 | (define-key map [newsticker-mark-item-at-point-as-read] | ||
| 406 | '("Mark item at point as read" . | ||
| 407 | newsticker-mark-item-at-point-as-read)) | ||
| 408 | (define-key map [newsticker-mark-item-at-point-as-immortal] | ||
| 409 | '("Toggle immortality for item at point" . | ||
| 410 | newsticker-mark-item-at-point-as-immortal)) | ||
| 411 | (define-key map [newsticker-separator-4] | ||
| 412 | '("--")) | ||
| 413 | (define-key map [newsticker-toggle-auto-narrow-to-item] | ||
| 414 | '("Narrow to single item" . newsticker-toggle-auto-narrow-to-item)) | ||
| 415 | (define-key map [newsticker-toggle-auto-narrow-to-feed] | ||
| 416 | '("Narrow to single news feed" . newsticker-toggle-auto-narrow-to-feed)) | ||
| 417 | (define-key map [newsticker-hide-old-items] | ||
| 418 | '("Hide old items" . newsticker-hide-old-items)) | ||
| 419 | (define-key map [newsticker-show-old-items] | ||
| 420 | '("Show old items" . newsticker-show-old-items)) | ||
| 421 | (define-key map [newsticker-next-item] | ||
| 422 | '("Go to next item" . newsticker-next-item)) | ||
| 423 | (define-key map [newsticker-previous-item] | ||
| 424 | '("Go to previous item" . newsticker-previous-item)) | ||
| 425 | map)) | ||
| 426 | |||
| 427 | (defvar newsticker-mode-map | ||
| 428 | (let ((map (make-keymap))) | ||
| 429 | (define-key map "sO" 'newsticker-show-old-items) | ||
| 430 | (define-key map "hO" 'newsticker-hide-old-items) | ||
| 431 | (define-key map "sa" 'newsticker-show-all-desc) | ||
| 432 | (define-key map "ha" 'newsticker-hide-all-desc) | ||
| 433 | (define-key map "sf" 'newsticker-show-feed-desc) | ||
| 434 | (define-key map "hf" 'newsticker-hide-feed-desc) | ||
| 435 | (define-key map "so" 'newsticker-show-old-item-desc) | ||
| 436 | (define-key map "ho" 'newsticker-hide-old-item-desc) | ||
| 437 | (define-key map "sn" 'newsticker-show-new-item-desc) | ||
| 438 | (define-key map "hn" 'newsticker-hide-new-item-desc) | ||
| 439 | (define-key map "se" 'newsticker-show-entry) | ||
| 440 | (define-key map "he" 'newsticker-hide-entry) | ||
| 441 | (define-key map "sx" 'newsticker-show-extra) | ||
| 442 | (define-key map "hx" 'newsticker-hide-extra) | ||
| 443 | |||
| 444 | (define-key map " " 'scroll-up) | ||
| 445 | (define-key map "q" 'newsticker-close-buffer) | ||
| 446 | (define-key map "p" 'newsticker-previous-item) | ||
| 447 | (define-key map "P" 'newsticker-previous-new-item) | ||
| 448 | (define-key map "F" 'newsticker-previous-feed) | ||
| 449 | (define-key map "\t" 'newsticker-next-item) | ||
| 450 | (define-key map "n" 'newsticker-next-item) | ||
| 451 | (define-key map "N" 'newsticker-next-new-item) | ||
| 452 | (define-key map "f" 'newsticker-next-feed) | ||
| 453 | (define-key map "M" 'newsticker-mark-all-items-as-read) | ||
| 454 | (define-key map "m" | ||
| 455 | 'newsticker-mark-all-items-at-point-as-read-and-redraw) | ||
| 456 | (define-key map "o" | ||
| 457 | 'newsticker-mark-item-at-point-as-read) | ||
| 458 | (define-key map "O" | ||
| 459 | 'newsticker-mark-all-items-at-point-as-read) | ||
| 460 | (define-key map "G" 'newsticker-get-all-news) | ||
| 461 | (define-key map "g" 'newsticker-get-news-at-point) | ||
| 462 | (define-key map "u" 'newsticker-buffer-update) | ||
| 463 | (define-key map "U" 'newsticker-buffer-force-update) | ||
| 464 | (define-key map "a" 'newsticker-add-url) | ||
| 465 | |||
| 466 | (define-key map "i" | ||
| 467 | 'newsticker-mark-item-at-point-as-immortal) | ||
| 468 | |||
| 469 | (define-key map "xf" | ||
| 470 | 'newsticker-toggle-auto-narrow-to-feed) | ||
| 471 | (define-key map "xi" | ||
| 472 | 'newsticker-toggle-auto-narrow-to-item) | ||
| 473 | |||
| 474 | ;; Bind menu to mouse. | ||
| 475 | (define-key map [down-mouse-3] newsticker-menu) | ||
| 476 | ;; Put menu in menu-bar. | ||
| 477 | (define-key map [menu-bar Newsticker] | ||
| 478 | (cons "Newsticker" newsticker-menu)) | ||
| 479 | |||
| 480 | map)) | ||
| 481 | |||
| 381 | (define-derived-mode newsticker-mode fundamental-mode | 482 | (define-derived-mode newsticker-mode fundamental-mode |
| 382 | "NewsTicker" | 483 | "NewsTicker" |
| 383 | "Viewing news feeds in Emacs." | 484 | "Viewing news feeds in Emacs." |
| @@ -414,114 +515,16 @@ images." | |||
| 414 | (add-to-invisibility-spec 'extra)) | 515 | (add-to-invisibility-spec 'extra)) |
| 415 | (newsticker--buffer-set-uptodate nil)) | 516 | (newsticker--buffer-set-uptodate nil)) |
| 416 | 517 | ||
| 417 | ;; refine its mode-map | ||
| 418 | (define-key newsticker-mode-map "sO" 'newsticker-show-old-items) | ||
| 419 | (define-key newsticker-mode-map "hO" 'newsticker-hide-old-items) | ||
| 420 | (define-key newsticker-mode-map "sa" 'newsticker-show-all-desc) | ||
| 421 | (define-key newsticker-mode-map "ha" 'newsticker-hide-all-desc) | ||
| 422 | (define-key newsticker-mode-map "sf" 'newsticker-show-feed-desc) | ||
| 423 | (define-key newsticker-mode-map "hf" 'newsticker-hide-feed-desc) | ||
| 424 | (define-key newsticker-mode-map "so" 'newsticker-show-old-item-desc) | ||
| 425 | (define-key newsticker-mode-map "ho" 'newsticker-hide-old-item-desc) | ||
| 426 | (define-key newsticker-mode-map "sn" 'newsticker-show-new-item-desc) | ||
| 427 | (define-key newsticker-mode-map "hn" 'newsticker-hide-new-item-desc) | ||
| 428 | (define-key newsticker-mode-map "se" 'newsticker-show-entry) | ||
| 429 | (define-key newsticker-mode-map "he" 'newsticker-hide-entry) | ||
| 430 | (define-key newsticker-mode-map "sx" 'newsticker-show-extra) | ||
| 431 | (define-key newsticker-mode-map "hx" 'newsticker-hide-extra) | ||
| 432 | |||
| 433 | (define-key newsticker-mode-map " " 'scroll-up) | ||
| 434 | (define-key newsticker-mode-map "q" 'newsticker-close-buffer) | ||
| 435 | (define-key newsticker-mode-map "p" 'newsticker-previous-item) | ||
| 436 | (define-key newsticker-mode-map "P" 'newsticker-previous-new-item) | ||
| 437 | (define-key newsticker-mode-map "F" 'newsticker-previous-feed) | ||
| 438 | (define-key newsticker-mode-map "\t" 'newsticker-next-item) | ||
| 439 | (define-key newsticker-mode-map "n" 'newsticker-next-item) | ||
| 440 | (define-key newsticker-mode-map "N" 'newsticker-next-new-item) | ||
| 441 | (define-key newsticker-mode-map "f" 'newsticker-next-feed) | ||
| 442 | (define-key newsticker-mode-map "M" 'newsticker-mark-all-items-as-read) | ||
| 443 | (define-key newsticker-mode-map "m" | ||
| 444 | 'newsticker-mark-all-items-at-point-as-read-and-redraw) | ||
| 445 | (define-key newsticker-mode-map "o" | ||
| 446 | 'newsticker-mark-item-at-point-as-read) | ||
| 447 | (define-key newsticker-mode-map "O" | ||
| 448 | 'newsticker-mark-all-items-at-point-as-read) | ||
| 449 | (define-key newsticker-mode-map "G" 'newsticker-get-all-news) | ||
| 450 | (define-key newsticker-mode-map "g" 'newsticker-get-news-at-point) | ||
| 451 | (define-key newsticker-mode-map "u" 'newsticker-buffer-update) | ||
| 452 | (define-key newsticker-mode-map "U" 'newsticker-buffer-force-update) | ||
| 453 | (define-key newsticker-mode-map "a" 'newsticker-add-url) | ||
| 454 | |||
| 455 | (define-key newsticker-mode-map "i" | ||
| 456 | 'newsticker-mark-item-at-point-as-immortal) | ||
| 457 | |||
| 458 | (define-key newsticker-mode-map "xf" | ||
| 459 | 'newsticker-toggle-auto-narrow-to-feed) | ||
| 460 | (define-key newsticker-mode-map "xi" | ||
| 461 | 'newsticker-toggle-auto-narrow-to-item) | ||
| 462 | |||
| 463 | ;; maps for the clickable portions | 518 | ;; maps for the clickable portions |
| 464 | (defvar newsticker--url-keymap (make-sparse-keymap) | 519 | (defvar newsticker--url-keymap |
| 520 | (let ((map (make-sparse-keymap))) | ||
| 521 | (define-key map [mouse-1] 'newsticker-mouse-browse-url) | ||
| 522 | (define-key map [mouse-2] 'newsticker-mouse-browse-url) | ||
| 523 | (define-key map "\n" 'newsticker-browse-url) | ||
| 524 | (define-key map "\C-m" 'newsticker-browse-url) | ||
| 525 | (define-key map [(control return)] 'newsticker-handle-url) | ||
| 526 | map) | ||
| 465 | "Key map for click-able headings in the newsticker buffer.") | 527 | "Key map for click-able headings in the newsticker buffer.") |
| 466 | (define-key newsticker--url-keymap [mouse-1] | ||
| 467 | 'newsticker-mouse-browse-url) | ||
| 468 | (define-key newsticker--url-keymap [mouse-2] | ||
| 469 | 'newsticker-mouse-browse-url) | ||
| 470 | (define-key newsticker--url-keymap "\n" | ||
| 471 | 'newsticker-browse-url) | ||
| 472 | (define-key newsticker--url-keymap "\C-m" | ||
| 473 | 'newsticker-browse-url) | ||
| 474 | (define-key newsticker--url-keymap [(control return)] | ||
| 475 | 'newsticker-handle-url) | ||
| 476 | |||
| 477 | ;; newsticker menu | ||
| 478 | (defvar newsticker-menu (make-sparse-keymap "Newsticker")) | ||
| 479 | |||
| 480 | (define-key newsticker-menu [newsticker-browse-url] | ||
| 481 | '("Browse URL for item at point" . newsticker-browse-url)) | ||
| 482 | (define-key newsticker-menu [newsticker-separator-1] | ||
| 483 | '("--")) | ||
| 484 | (define-key newsticker-menu [newsticker-buffer-update] | ||
| 485 | '("Update buffer" . newsticker-buffer-update)) | ||
| 486 | (define-key newsticker-menu [newsticker-separator-2] | ||
| 487 | '("--")) | ||
| 488 | (define-key newsticker-menu [newsticker-get-all-news] | ||
| 489 | '("Get news from all feeds" . newsticker-get-all-news)) | ||
| 490 | (define-key newsticker-menu [newsticker-get-news-at-point] | ||
| 491 | '("Get news from feed at point" . newsticker-get-news-at-point)) | ||
| 492 | (define-key newsticker-menu [newsticker-separator-3] | ||
| 493 | '("--")) | ||
| 494 | (define-key newsticker-menu [newsticker-mark-all-items-as-read] | ||
| 495 | '("Mark all items as read" . newsticker-mark-all-items-as-read)) | ||
| 496 | (define-key newsticker-menu [newsticker-mark-all-items-at-point-as-read] | ||
| 497 | '("Mark all items in feed at point as read" . | ||
| 498 | newsticker-mark-all-items-at-point-as-read)) | ||
| 499 | (define-key newsticker-menu [newsticker-mark-item-at-point-as-read] | ||
| 500 | '("Mark item at point as read" . | ||
| 501 | newsticker-mark-item-at-point-as-read)) | ||
| 502 | (define-key newsticker-menu [newsticker-mark-item-at-point-as-immortal] | ||
| 503 | '("Toggle immortality for item at point" . | ||
| 504 | newsticker-mark-item-at-point-as-immortal)) | ||
| 505 | (define-key newsticker-menu [newsticker-separator-4] | ||
| 506 | '("--")) | ||
| 507 | (define-key newsticker-menu [newsticker-toggle-auto-narrow-to-item] | ||
| 508 | '("Narrow to single item" . newsticker-toggle-auto-narrow-to-item)) | ||
| 509 | (define-key newsticker-menu [newsticker-toggle-auto-narrow-to-feed] | ||
| 510 | '("Narrow to single news feed" . newsticker-toggle-auto-narrow-to-feed)) | ||
| 511 | (define-key newsticker-menu [newsticker-hide-old-items] | ||
| 512 | '("Hide old items" . newsticker-hide-old-items)) | ||
| 513 | (define-key newsticker-menu [newsticker-show-old-items] | ||
| 514 | '("Show old items" . newsticker-show-old-items)) | ||
| 515 | (define-key newsticker-menu [newsticker-next-item] | ||
| 516 | '("Go to next item" . newsticker-next-item)) | ||
| 517 | (define-key newsticker-menu [newsticker-previous-item] | ||
| 518 | '("Go to previous item" . newsticker-previous-item)) | ||
| 519 | |||
| 520 | ;; bind menu to mouse | ||
| 521 | (define-key newsticker-mode-map [down-mouse-3] newsticker-menu) | ||
| 522 | ;; Put menu in menu-bar | ||
| 523 | (define-key newsticker-mode-map [menu-bar Newsticker] | ||
| 524 | (cons "Newsticker" newsticker-menu)) | ||
| 525 | 528 | ||
| 526 | 529 | ||
| 527 | ;; ====================================================================== | 530 | ;; ====================================================================== |
diff --git a/lisp/net/rcirc.el b/lisp/net/rcirc.el index 62fa7eb0feb..8e4ded624de 100644 --- a/lisp/net/rcirc.el +++ b/lisp/net/rcirc.el | |||
| @@ -564,13 +564,13 @@ last ping." | |||
| 564 | (mapc (lambda (process) | 564 | (mapc (lambda (process) |
| 565 | (with-rcirc-process-buffer process | 565 | (with-rcirc-process-buffer process |
| 566 | (when (not rcirc-connecting) | 566 | (when (not rcirc-connecting) |
| 567 | (rcirc-send-string process | 567 | (rcirc-send-ctcp process |
| 568 | (format "PRIVMSG %s :\C-aKEEPALIVE %f\C-a" | 568 | rcirc-nick |
| 569 | rcirc-nick | 569 | (format "KEEPALIVE %f" |
| 570 | (if (featurep 'xemacs) | 570 | (if (featurep 'xemacs) |
| 571 | (time-to-seconds | 571 | (time-to-seconds |
| 572 | (current-time)) | 572 | (current-time)) |
| 573 | (float-time))))))) | 573 | (float-time))))))) |
| 574 | (rcirc-process-list)) | 574 | (rcirc-process-list)) |
| 575 | ;; no processes, clean up timer | 575 | ;; no processes, clean up timer |
| 576 | (cancel-timer rcirc-keepalive-timer) | 576 | (cancel-timer rcirc-keepalive-timer) |
| @@ -714,6 +714,14 @@ Function is called with PROCESS, COMMAND, SENDER, ARGS and LINE.") | |||
| 714 | (rcirc-debug process string) | 714 | (rcirc-debug process string) |
| 715 | (process-send-string process string))) | 715 | (process-send-string process string))) |
| 716 | 716 | ||
| 717 | (defun rcirc-send-privmsg (process target string) | ||
| 718 | (rcirc-send-string process (format "PRIVMSG %s :%s" target string))) | ||
| 719 | |||
| 720 | (defun rcirc-send-ctcp (process target request &optional args) | ||
| 721 | (let ((args (if args (concat " " args) ""))) | ||
| 722 | (rcirc-send-privmsg process target | ||
| 723 | (format "\C-a%s%s\C-a" request args "")))) | ||
| 724 | |||
| 717 | (defun rcirc-buffer-process (&optional buffer) | 725 | (defun rcirc-buffer-process (&optional buffer) |
| 718 | "Return the process associated with channel BUFFER. | 726 | "Return the process associated with channel BUFFER. |
| 719 | With no argument or nil as argument, use the current buffer." | 727 | With no argument or nil as argument, use the current buffer." |
| @@ -853,41 +861,43 @@ IRC command completion is performed only if '/' is the first input char." | |||
| 853 | (interactive "zCoding system for outgoing messages: ") | 861 | (interactive "zCoding system for outgoing messages: ") |
| 854 | (setq rcirc-encode-coding-system coding-system)) | 862 | (setq rcirc-encode-coding-system coding-system)) |
| 855 | 863 | ||
| 856 | (defvar rcirc-mode-map (make-sparse-keymap) | 864 | (defvar rcirc-mode-map |
| 865 | (let ((map (make-sparse-keymap))) | ||
| 866 | (define-key map (kbd "RET") 'rcirc-send-input) | ||
| 867 | (define-key map (kbd "M-p") 'rcirc-insert-prev-input) | ||
| 868 | (define-key map (kbd "M-n") 'rcirc-insert-next-input) | ||
| 869 | (define-key map (kbd "TAB") 'rcirc-complete) | ||
| 870 | (define-key map (kbd "C-c C-b") 'rcirc-browse-url) | ||
| 871 | (define-key map (kbd "C-c C-c") 'rcirc-edit-multiline) | ||
| 872 | (define-key map (kbd "C-c C-j") 'rcirc-cmd-join) | ||
| 873 | (define-key map (kbd "C-c C-k") 'rcirc-cmd-kick) | ||
| 874 | (define-key map (kbd "C-c C-l") 'rcirc-toggle-low-priority) | ||
| 875 | (define-key map (kbd "C-c C-d") 'rcirc-cmd-mode) | ||
| 876 | (define-key map (kbd "C-c C-m") 'rcirc-cmd-msg) | ||
| 877 | (define-key map (kbd "C-c C-r") 'rcirc-cmd-nick) ; rename | ||
| 878 | (define-key map (kbd "C-c C-o") 'rcirc-omit-mode) | ||
| 879 | (define-key map (kbd "M-o") 'rcirc-omit-mode) | ||
| 880 | (define-key map (kbd "C-c C-p") 'rcirc-cmd-part) | ||
| 881 | (define-key map (kbd "C-c C-q") 'rcirc-cmd-query) | ||
| 882 | (define-key map (kbd "C-c C-t") 'rcirc-cmd-topic) | ||
| 883 | (define-key map (kbd "C-c C-n") 'rcirc-cmd-names) | ||
| 884 | (define-key map (kbd "C-c C-w") 'rcirc-cmd-whois) | ||
| 885 | (define-key map (kbd "C-c C-x") 'rcirc-cmd-quit) | ||
| 886 | (define-key map (kbd "C-c TAB") ; C-i | ||
| 887 | 'rcirc-toggle-ignore-buffer-activity) | ||
| 888 | (define-key map (kbd "C-c C-s") 'rcirc-switch-to-server-buffer) | ||
| 889 | (define-key map (kbd "C-c C-a") 'rcirc-jump-to-first-unread-line) | ||
| 890 | map) | ||
| 857 | "Keymap for rcirc mode.") | 891 | "Keymap for rcirc mode.") |
| 858 | 892 | ||
| 859 | (define-key rcirc-mode-map (kbd "RET") 'rcirc-send-input) | 893 | (defvar rcirc-browse-url-map |
| 860 | (define-key rcirc-mode-map (kbd "M-p") 'rcirc-insert-prev-input) | 894 | (let ((map (make-sparse-keymap))) |
| 861 | (define-key rcirc-mode-map (kbd "M-n") 'rcirc-insert-next-input) | 895 | (define-key map (kbd "RET") 'rcirc-browse-url-at-point) |
| 862 | (define-key rcirc-mode-map (kbd "TAB") 'rcirc-complete) | 896 | (define-key map (kbd "<mouse-2>") 'rcirc-browse-url-at-mouse) |
| 863 | (define-key rcirc-mode-map (kbd "C-c C-b") 'rcirc-browse-url) | 897 | (define-key map [follow-link] 'mouse-face) |
| 864 | (define-key rcirc-mode-map (kbd "C-c C-c") 'rcirc-edit-multiline) | 898 | map) |
| 865 | (define-key rcirc-mode-map (kbd "C-c C-j") 'rcirc-cmd-join) | ||
| 866 | (define-key rcirc-mode-map (kbd "C-c C-k") 'rcirc-cmd-kick) | ||
| 867 | (define-key rcirc-mode-map (kbd "C-c C-l") 'rcirc-toggle-low-priority) | ||
| 868 | (define-key rcirc-mode-map (kbd "C-c C-d") 'rcirc-cmd-mode) | ||
| 869 | (define-key rcirc-mode-map (kbd "C-c C-m") 'rcirc-cmd-msg) | ||
| 870 | (define-key rcirc-mode-map (kbd "C-c C-r") 'rcirc-cmd-nick) ; rename | ||
| 871 | (define-key rcirc-mode-map (kbd "C-c C-o") 'rcirc-omit-mode) | ||
| 872 | (define-key rcirc-mode-map (kbd "M-o") 'rcirc-omit-mode) | ||
| 873 | (define-key rcirc-mode-map (kbd "C-c C-p") 'rcirc-cmd-part) | ||
| 874 | (define-key rcirc-mode-map (kbd "C-c C-q") 'rcirc-cmd-query) | ||
| 875 | (define-key rcirc-mode-map (kbd "C-c C-t") 'rcirc-cmd-topic) | ||
| 876 | (define-key rcirc-mode-map (kbd "C-c C-n") 'rcirc-cmd-names) | ||
| 877 | (define-key rcirc-mode-map (kbd "C-c C-w") 'rcirc-cmd-whois) | ||
| 878 | (define-key rcirc-mode-map (kbd "C-c C-x") 'rcirc-cmd-quit) | ||
| 879 | (define-key rcirc-mode-map (kbd "C-c TAB") ; C-i | ||
| 880 | 'rcirc-toggle-ignore-buffer-activity) | ||
| 881 | (define-key rcirc-mode-map (kbd "C-c C-s") 'rcirc-switch-to-server-buffer) | ||
| 882 | (define-key rcirc-mode-map (kbd "C-c C-a") 'rcirc-jump-to-first-unread-line) | ||
| 883 | |||
| 884 | (defvar rcirc-browse-url-map (make-sparse-keymap) | ||
| 885 | "Keymap used for browsing URLs in `rcirc-mode'.") | 899 | "Keymap used for browsing URLs in `rcirc-mode'.") |
| 886 | 900 | ||
| 887 | (define-key rcirc-browse-url-map (kbd "RET") 'rcirc-browse-url-at-point) | ||
| 888 | (define-key rcirc-browse-url-map (kbd "<mouse-2>") 'rcirc-browse-url-at-mouse) | ||
| 889 | (define-key rcirc-browse-url-map [follow-link] 'mouse-face) | ||
| 890 | |||
| 891 | (defvar rcirc-short-buffer-name nil | 901 | (defvar rcirc-short-buffer-name nil |
| 892 | "Generated abbreviation to use to indicate buffer activity.") | 902 | "Generated abbreviation to use to indicate buffer activity.") |
| 893 | 903 | ||
| @@ -1208,16 +1218,14 @@ Create the buffer if it doesn't exist." | |||
| 1208 | (and (> pos 0) (goto-char pos)) | 1218 | (and (> pos 0) (goto-char pos)) |
| 1209 | (message "Type C-c C-c to return text to %s, or C-c C-k to cancel" parent)))) | 1219 | (message "Type C-c C-c to return text to %s, or C-c C-k to cancel" parent)))) |
| 1210 | 1220 | ||
| 1211 | (defvar rcirc-multiline-minor-mode-map (make-sparse-keymap) | 1221 | (defvar rcirc-multiline-minor-mode-map |
| 1222 | (let ((map (make-sparse-keymap))) | ||
| 1223 | (define-key map (kbd "C-c C-c") 'rcirc-multiline-minor-submit) | ||
| 1224 | (define-key map (kbd "C-x C-s") 'rcirc-multiline-minor-submit) | ||
| 1225 | (define-key map (kbd "C-c C-k") 'rcirc-multiline-minor-cancel) | ||
| 1226 | (define-key map (kbd "ESC ESC ESC") 'rcirc-multiline-minor-cancel) | ||
| 1227 | map) | ||
| 1212 | "Keymap for multiline mode in rcirc.") | 1228 | "Keymap for multiline mode in rcirc.") |
| 1213 | (define-key rcirc-multiline-minor-mode-map | ||
| 1214 | (kbd "C-c C-c") 'rcirc-multiline-minor-submit) | ||
| 1215 | (define-key rcirc-multiline-minor-mode-map | ||
| 1216 | (kbd "C-x C-s") 'rcirc-multiline-minor-submit) | ||
| 1217 | (define-key rcirc-multiline-minor-mode-map | ||
| 1218 | (kbd "C-c C-k") 'rcirc-multiline-minor-cancel) | ||
| 1219 | (define-key rcirc-multiline-minor-mode-map | ||
| 1220 | (kbd "ESC ESC ESC") 'rcirc-multiline-minor-cancel) | ||
| 1221 | 1229 | ||
| 1222 | (define-minor-mode rcirc-multiline-minor-mode | 1230 | (define-minor-mode rcirc-multiline-minor-mode |
| 1223 | "Minor mode for editing multiple lines in rcirc." | 1231 | "Minor mode for editing multiple lines in rcirc." |
| @@ -1734,12 +1742,13 @@ This function does not alter the INPUT string." | |||
| 1734 | (mapconcat 'identity sorted sep))) | 1742 | (mapconcat 'identity sorted sep))) |
| 1735 | 1743 | ||
| 1736 | ;;; activity tracking | 1744 | ;;; activity tracking |
| 1737 | (defvar rcirc-track-minor-mode-map (make-sparse-keymap) | 1745 | (defvar rcirc-track-minor-mode-map |
| 1746 | (let ((map (make-sparse-keymap))) | ||
| 1747 | (define-key map (kbd "C-c C-@") 'rcirc-next-active-buffer) | ||
| 1748 | (define-key map (kbd "C-c C-SPC") 'rcirc-next-active-buffer) | ||
| 1749 | map) | ||
| 1738 | "Keymap for rcirc track minor mode.") | 1750 | "Keymap for rcirc track minor mode.") |
| 1739 | 1751 | ||
| 1740 | (define-key rcirc-track-minor-mode-map (kbd "C-c C-@") 'rcirc-next-active-buffer) | ||
| 1741 | (define-key rcirc-track-minor-mode-map (kbd "C-c C-SPC") 'rcirc-next-active-buffer) | ||
| 1742 | |||
| 1743 | ;;;###autoload | 1752 | ;;;###autoload |
| 1744 | (define-minor-mode rcirc-track-minor-mode | 1753 | (define-minor-mode rcirc-track-minor-mode |
| 1745 | "Global minor mode for tracking activity in rcirc buffers." | 1754 | "Global minor mode for tracking activity in rcirc buffers." |
| @@ -2190,21 +2199,17 @@ With a prefix arg, prompt for new topic." | |||
| 2190 | (function (intern-soft (concat "rcirc-ctcp-sender-" request)))) | 2199 | (function (intern-soft (concat "rcirc-ctcp-sender-" request)))) |
| 2191 | (if (fboundp function) ;; use special function if available | 2200 | (if (fboundp function) ;; use special function if available |
| 2192 | (funcall function process target request) | 2201 | (funcall function process target request) |
| 2193 | (rcirc-send-string process | 2202 | (rcirc-send-ctcp process target request))) |
| 2194 | (format "PRIVMSG %s :\C-a%s\C-a" | ||
| 2195 | target request)))) | ||
| 2196 | (rcirc-print process (rcirc-nick process) "ERROR" nil | 2203 | (rcirc-print process (rcirc-nick process) "ERROR" nil |
| 2197 | "usage: /ctcp NICK REQUEST"))) | 2204 | "usage: /ctcp NICK REQUEST"))) |
| 2198 | 2205 | ||
| 2199 | (defun rcirc-ctcp-sender-PING (process target request) | 2206 | (defun rcirc-ctcp-sender-PING (process target request) |
| 2200 | "Send a CTCP PING message to TARGET." | 2207 | "Send a CTCP PING message to TARGET." |
| 2201 | (let ((timestamp (format "%.0f" (float-time)))) | 2208 | (let ((timestamp (format "%.0f" (float-time)))) |
| 2202 | (rcirc-send-string process | 2209 | (rcirc-send-ctcp process target "PING" timestamp))) |
| 2203 | (format "PRIVMSG %s :\C-aPING %s\C-a" target timestamp)))) | ||
| 2204 | 2210 | ||
| 2205 | (defun rcirc-cmd-me (args &optional process target) | 2211 | (defun rcirc-cmd-me (args &optional process target) |
| 2206 | (rcirc-send-string process (format "PRIVMSG %s :\C-aACTION %s\C-a" | 2212 | (rcirc-send-ctcp process target "ACTION" args)) |
| 2207 | target args))) | ||
| 2208 | 2213 | ||
| 2209 | (defun rcirc-add-or-remove (set &rest elements) | 2214 | (defun rcirc-add-or-remove (set &rest elements) |
| 2210 | (dolist (elt elements) | 2215 | (dolist (elt elements) |
| @@ -2699,20 +2704,20 @@ Passwords are stored in `rcirc-authinfo' (which see)." | |||
| 2699 | (when (and (string-match server rcirc-server) | 2704 | (when (and (string-match server rcirc-server) |
| 2700 | (string-match nick rcirc-nick)) | 2705 | (string-match nick rcirc-nick)) |
| 2701 | (cond ((equal method 'nickserv) | 2706 | (cond ((equal method 'nickserv) |
| 2702 | (rcirc-send-string | 2707 | (rcirc-send-privmsg |
| 2703 | process | 2708 | process |
| 2704 | (concat "PRIVMSG " (or (cadr args) "nickserv") | 2709 | (or (cadr args) "NickServ") |
| 2705 | " :identify " (car args)))) | 2710 | (concat "identify " (car args)))) |
| 2706 | ((equal method 'chanserv) | 2711 | ((equal method 'chanserv) |
| 2707 | (rcirc-send-string | 2712 | (rcirc-send-privmsg |
| 2708 | process | 2713 | process |
| 2709 | (concat | 2714 | "ChanServ" |
| 2710 | "PRIVMSG chanserv :identify " | 2715 | (format "identify %s %s" (car args) (cadr args)))) |
| 2711 | (car args) " " (cadr args)))) | ||
| 2712 | ((equal method 'bitlbee) | 2716 | ((equal method 'bitlbee) |
| 2713 | (rcirc-send-string | 2717 | (rcirc-send-privmsg |
| 2714 | process | 2718 | process |
| 2715 | (concat "PRIVMSG &bitlbee :identify " (car args)))) | 2719 | "&bitlbee" |
| 2720 | (concat "identify " (car args)))) | ||
| 2716 | (t | 2721 | (t |
| 2717 | (message "No %S authentication method defined" | 2722 | (message "No %S authentication method defined" |
| 2718 | method)))))))) | 2723 | method)))))))) |
diff --git a/lisp/org/ChangeLog b/lisp/org/ChangeLog index b35cf0738bf..5f0908e11c6 100644 --- a/lisp/org/ChangeLog +++ b/lisp/org/ChangeLog | |||
| @@ -1,3 +1,8 @@ | |||
| 1 | 2011-02-10 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | * org-remember.el (org-remember-mode-map): | ||
| 4 | * org-src.el (org-src-mode-map): Move initialization into declaration. | ||
| 5 | |||
| 1 | 2011-01-13 Stefan Monnier <monnier@iro.umontreal.ca> | 6 | 2011-01-13 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 7 | ||
| 3 | * org-remember.el (org-remember-mode): | 8 | * org-remember.el (org-remember-mode): |
diff --git a/lisp/org/org-remember.el b/lisp/org/org-remember.el index 80f9dadd7a4..fd3064a709c 100644 --- a/lisp/org/org-remember.el +++ b/lisp/org/org-remember.el | |||
| @@ -214,7 +214,11 @@ The remember buffer is still current when this hook runs." | |||
| 214 | :group 'org-remember | 214 | :group 'org-remember |
| 215 | :type 'hook) | 215 | :type 'hook) |
| 216 | 216 | ||
| 217 | (defvar org-remember-mode-map (make-sparse-keymap) | 217 | (defvar org-remember-mode-map |
| 218 | (let ((map (make-sparse-keymap))) | ||
| 219 | (define-key map "\C-c\C-c" 'org-remember-finalize) | ||
| 220 | (define-key map "\C-c\C-k" 'org-remember-kill) | ||
| 221 | map) | ||
| 218 | "Keymap for `org-remember-mode', a minor mode. | 222 | "Keymap for `org-remember-mode', a minor mode. |
| 219 | Use this map to set additional keybindings for when Org-mode is used | 223 | Use this map to set additional keybindings for when Org-mode is used |
| 220 | for a Remember buffer.") | 224 | for a Remember buffer.") |
| @@ -224,8 +228,6 @@ for a Remember buffer.") | |||
| 224 | (define-minor-mode org-remember-mode | 228 | (define-minor-mode org-remember-mode |
| 225 | "Minor mode for special key bindings in a remember buffer." | 229 | "Minor mode for special key bindings in a remember buffer." |
| 226 | nil " Rem" org-remember-mode-map) | 230 | nil " Rem" org-remember-mode-map) |
| 227 | (define-key org-remember-mode-map "\C-c\C-c" 'org-remember-finalize) | ||
| 228 | (define-key org-remember-mode-map "\C-c\C-k" 'org-remember-kill) | ||
| 229 | 231 | ||
| 230 | (defcustom org-remember-clock-out-on-exit 'query | 232 | (defcustom org-remember-clock-out-on-exit 'query |
| 231 | "Non-nil means stop the clock when exiting a clocking remember buffer. | 233 | "Non-nil means stop the clock when exiting a clocking remember buffer. |
diff --git a/lisp/org/org-src.el b/lisp/org/org-src.el index 07779700da8..98fdb75423d 100644 --- a/lisp/org/org-src.el +++ b/lisp/org/org-src.el | |||
| @@ -169,8 +169,10 @@ For example, there is no ocaml-mode in Emacs, but the mode to use is | |||
| 169 | 169 | ||
| 170 | ;;; Editing source examples | 170 | ;;; Editing source examples |
| 171 | 171 | ||
| 172 | (defvar org-src-mode-map (make-sparse-keymap)) | 172 | (defvar org-src-mode-map |
| 173 | (define-key org-src-mode-map "\C-c'" 'org-edit-src-exit) | 173 | (let ((map (make-sparse-keymap))) |
| 174 | (define-key map "\C-c'" 'org-edit-src-exit) | ||
| 175 | map)) | ||
| 174 | 176 | ||
| 175 | (defvar org-edit-src-force-single-line nil) | 177 | (defvar org-edit-src-force-single-line nil) |
| 176 | (defvar org-edit-src-from-org-mode nil) | 178 | (defvar org-edit-src-from-org-mode nil) |
diff --git a/lisp/play/gametree.el b/lisp/play/gametree.el index d0ba9b037e7..cd353d27f07 100644 --- a/lisp/play/gametree.el +++ b/lisp/play/gametree.el | |||
| @@ -565,6 +565,20 @@ buffer, it is replaced by the new value. See the documentation for | |||
| 565 | (gametree-hack-file-layout)) | 565 | (gametree-hack-file-layout)) |
| 566 | nil) | 566 | nil) |
| 567 | 567 | ||
| 568 | ;;;; Key bindings | ||
| 569 | (defvar gametree-mode-map | ||
| 570 | (let ((map (make-sparse-keymap))) | ||
| 571 | (define-key map "\C-c\C-j" 'gametree-break-line-here) | ||
| 572 | (define-key map "\C-c\C-v" 'gametree-insert-new-leaf) | ||
| 573 | (define-key map "\C-c\C-m" 'gametree-merge-line) | ||
| 574 | (define-key map "\C-c\C-r " 'gametree-layout-to-register) | ||
| 575 | (define-key map "\C-c\C-r/" 'gametree-layout-to-register) | ||
| 576 | (define-key map "\C-c\C-rj" 'gametree-apply-register-layout) | ||
| 577 | (define-key map "\C-c\C-y" 'gametree-save-and-hack-layout) | ||
| 578 | (define-key map "\C-c;" 'gametree-insert-score) | ||
| 579 | (define-key map "\C-c^" 'gametree-compute-and-insert-score) | ||
| 580 | map)) | ||
| 581 | |||
| 568 | (define-derived-mode gametree-mode outline-mode "GameTree" | 582 | (define-derived-mode gametree-mode outline-mode "GameTree" |
| 569 | "Major mode for managing game analysis trees. | 583 | "Major mode for managing game analysis trees. |
| 570 | Useful to postal and email chess (and, it is hoped, also checkers, go, | 584 | Useful to postal and email chess (and, it is hoped, also checkers, go, |
| @@ -575,18 +589,6 @@ shogi, etc.) players, it is a slightly modified version of Outline mode. | |||
| 575 | (make-local-variable 'write-contents-hooks) | 589 | (make-local-variable 'write-contents-hooks) |
| 576 | (add-hook 'write-contents-hooks 'gametree-save-and-hack-layout)) | 590 | (add-hook 'write-contents-hooks 'gametree-save-and-hack-layout)) |
| 577 | 591 | ||
| 578 | ;;;; Key bindings | ||
| 579 | |||
| 580 | (define-key gametree-mode-map "\C-c\C-j" 'gametree-break-line-here) | ||
| 581 | (define-key gametree-mode-map "\C-c\C-v" 'gametree-insert-new-leaf) | ||
| 582 | (define-key gametree-mode-map "\C-c\C-m" 'gametree-merge-line) | ||
| 583 | (define-key gametree-mode-map "\C-c\C-r " 'gametree-layout-to-register) | ||
| 584 | (define-key gametree-mode-map "\C-c\C-r/" 'gametree-layout-to-register) | ||
| 585 | (define-key gametree-mode-map "\C-c\C-rj" 'gametree-apply-register-layout) | ||
| 586 | (define-key gametree-mode-map "\C-c\C-y" 'gametree-save-and-hack-layout) | ||
| 587 | (define-key gametree-mode-map "\C-c;" 'gametree-insert-score) | ||
| 588 | (define-key gametree-mode-map "\C-c^" 'gametree-compute-and-insert-score) | ||
| 589 | |||
| 590 | ;;;; Goodies for mousing users | 592 | ;;;; Goodies for mousing users |
| 591 | (and (fboundp 'track-mouse) | 593 | (and (fboundp 'track-mouse) |
| 592 | (defun gametree-mouse-break-line-here (event) | 594 | (defun gametree-mouse-break-line-here (event) |
diff --git a/lisp/play/handwrite.el b/lisp/play/handwrite.el index 5bab360f9ff..601232e4321 100644 --- a/lisp/play/handwrite.el +++ b/lisp/play/handwrite.el | |||
| @@ -80,8 +80,24 @@ | |||
| 80 | 80 | ||
| 81 | (defvar handwrite-psindex 0 | 81 | (defvar handwrite-psindex 0 |
| 82 | "The index of the PostScript buffer.") | 82 | "The index of the PostScript buffer.") |
| 83 | (defvar menu-bar-handwrite-map (make-sparse-keymap "Handwrite functions.")) | 83 | (defvar menu-bar-handwrite-map |
| 84 | (fset 'menu-bar-handwrite-map (symbol-value 'menu-bar-handwrite-map)) | 84 | (let ((map (make-sparse-keymap "Handwrite functions."))) |
| 85 | (define-key map [numbering] | ||
| 86 | '(menu-item "Page numbering" handwrite-set-pagenumber | ||
| 87 | :button (:toggle . handwrite-pagenumbering))) | ||
| 88 | (define-key map [handwrite-separator2] '("----" . nil)) | ||
| 89 | (define-key map [10pt] '(menu-item "10 pt" handwrite-10pt | ||
| 90 | :button (:radio . (eq handwrite-fontsize 10)))) | ||
| 91 | (define-key map [11pt] '(menu-item "11 pt" handwrite-11pt | ||
| 92 | :button (:radio . (eq handwrite-fontsize 11)))) | ||
| 93 | (define-key map [12pt] '(menu-item "12 pt" handwrite-12pt | ||
| 94 | :button (:radio . (eq handwrite-fontsize 12)))) | ||
| 95 | (define-key map [13pt] '(menu-item "13 pt" handwrite-13pt | ||
| 96 | :button (:radio . (eq handwrite-fontsize 13)))) | ||
| 97 | (define-key map [handwrite-separator1] '("----" . nil)) | ||
| 98 | (define-key map [handwrite] '("Write by hand" . handwrite)) | ||
| 99 | map)) | ||
| 100 | (fset 'menu-bar-handwrite-map menu-bar-handwrite-map) | ||
| 85 | 101 | ||
| 86 | 102 | ||
| 87 | ;; User definable variables | 103 | ;; User definable variables |
| @@ -135,10 +151,10 @@ | |||
| 135 | The functions `handwrite-10pt', `handwrite-11pt', `handwrite-12pt' | 151 | The functions `handwrite-10pt', `handwrite-11pt', `handwrite-12pt' |
| 136 | and `handwrite-13pt' set up for various sizes of output. | 152 | and `handwrite-13pt' set up for various sizes of output. |
| 137 | 153 | ||
| 138 | Variables: handwrite-linespace (default 12) | 154 | Variables: `handwrite-linespace' (default 12) |
| 139 | handwrite-fontsize (default 11) | 155 | `handwrite-fontsize' (default 11) |
| 140 | handwrite-numlines (default 60) | 156 | `handwrite-numlines' (default 60) |
| 141 | handwrite-pagenumbering (default nil)" | 157 | `handwrite-pagenumbering' (default nil)" |
| 142 | (interactive) | 158 | (interactive) |
| 143 | (let | 159 | (let |
| 144 | ((pmin) ; thanks, Havard | 160 | ((pmin) ; thanks, Havard |
| @@ -258,7 +274,8 @@ Variables: handwrite-linespace (default 12) | |||
| 258 | "Toggle the value of `handwrite-pagenumbering'." | 274 | "Toggle the value of `handwrite-pagenumbering'." |
| 259 | (interactive) | 275 | (interactive) |
| 260 | (if handwrite-pagenumbering | 276 | (if handwrite-pagenumbering |
| 261 | (handwrite-set-pagenumber-off)(handwrite-set-pagenumber-on))) | 277 | (handwrite-set-pagenumber-off) |
| 278 | (handwrite-set-pagenumber-on))) | ||
| 262 | 279 | ||
| 263 | (defun handwrite-10pt () | 280 | (defun handwrite-10pt () |
| 264 | "Specify 10-point output for `handwrite. | 281 | "Specify 10-point output for `handwrite. |
| @@ -268,14 +285,6 @@ values for `handwrite-linespace' and `handwrite-numlines'." | |||
| 268 | (setq handwrite-fontsize 10) | 285 | (setq handwrite-fontsize 10) |
| 269 | (setq handwrite-linespace 11) | 286 | (setq handwrite-linespace 11) |
| 270 | (setq handwrite-numlines handwrite-10pt-numlines) | 287 | (setq handwrite-numlines handwrite-10pt-numlines) |
| 271 | (define-key menu-bar-handwrite-map [10pt] | ||
| 272 | '("10 pt *" . handwrite-10pt)) | ||
| 273 | (define-key menu-bar-handwrite-map [11pt] | ||
| 274 | '("11 pt" . handwrite-11pt)) | ||
| 275 | (define-key menu-bar-handwrite-map [12pt] | ||
| 276 | '("12 pt" . handwrite-12pt)) | ||
| 277 | (define-key menu-bar-handwrite-map [13pt] | ||
| 278 | '("13 pt" . handwrite-13pt)) | ||
| 279 | (message "Handwrite output size set to 10 points")) | 288 | (message "Handwrite output size set to 10 points")) |
| 280 | 289 | ||
| 281 | 290 | ||
| @@ -287,14 +296,6 @@ values for `handwrite-linespace' and `handwrite-numlines'." | |||
| 287 | (setq handwrite-fontsize 11) | 296 | (setq handwrite-fontsize 11) |
| 288 | (setq handwrite-linespace 12) | 297 | (setq handwrite-linespace 12) |
| 289 | (setq handwrite-numlines handwrite-11pt-numlines) | 298 | (setq handwrite-numlines handwrite-11pt-numlines) |
| 290 | (define-key menu-bar-handwrite-map [10pt] | ||
| 291 | '("10 pt" . handwrite-10pt)) | ||
| 292 | (define-key menu-bar-handwrite-map [11pt] | ||
| 293 | '("11 pt *" . handwrite-11pt)) | ||
| 294 | (define-key menu-bar-handwrite-map [12pt] | ||
| 295 | '("12 pt" . handwrite-12pt)) | ||
| 296 | (define-key menu-bar-handwrite-map [13pt] | ||
| 297 | '("13 pt" . handwrite-13pt)) | ||
| 298 | (message "Handwrite output size set to 11 points")) | 299 | (message "Handwrite output size set to 11 points")) |
| 299 | 300 | ||
| 300 | (defun handwrite-12pt () | 301 | (defun handwrite-12pt () |
| @@ -305,14 +306,6 @@ values for `handwrite-linespace' and `handwrite-numlines'." | |||
| 305 | (setq handwrite-fontsize 12) | 306 | (setq handwrite-fontsize 12) |
| 306 | (setq handwrite-linespace 13) | 307 | (setq handwrite-linespace 13) |
| 307 | (setq handwrite-numlines handwrite-12pt-numlines) | 308 | (setq handwrite-numlines handwrite-12pt-numlines) |
| 308 | (define-key menu-bar-handwrite-map [10pt] | ||
| 309 | '("10 pt" . handwrite-10pt)) | ||
| 310 | (define-key menu-bar-handwrite-map [11pt] | ||
| 311 | '("11 pt" . handwrite-11pt)) | ||
| 312 | (define-key menu-bar-handwrite-map [12pt] | ||
| 313 | '("12 pt *" . handwrite-12pt)) | ||
| 314 | (define-key menu-bar-handwrite-map [13pt] | ||
| 315 | '("13 pt" . handwrite-13pt)) | ||
| 316 | (message "Handwrite output size set to 12 points")) | 309 | (message "Handwrite output size set to 12 points")) |
| 317 | 310 | ||
| 318 | (defun handwrite-13pt () | 311 | (defun handwrite-13pt () |
| @@ -323,14 +316,6 @@ values for `handwrite-linespace' and `handwrite-numlines'." | |||
| 323 | (setq handwrite-fontsize 13) | 316 | (setq handwrite-fontsize 13) |
| 324 | (setq handwrite-linespace 14) | 317 | (setq handwrite-linespace 14) |
| 325 | (setq handwrite-numlines handwrite-13pt-numlines) | 318 | (setq handwrite-numlines handwrite-13pt-numlines) |
| 326 | (define-key menu-bar-handwrite-map [10pt] | ||
| 327 | '("10 pt" . handwrite-10pt)) | ||
| 328 | (define-key menu-bar-handwrite-map [11pt] | ||
| 329 | '("11 pt" . handwrite-11pt)) | ||
| 330 | (define-key menu-bar-handwrite-map [12pt] | ||
| 331 | '("12 pt" . handwrite-12pt)) | ||
| 332 | (define-key menu-bar-handwrite-map [13pt] | ||
| 333 | '("13 pt *" . handwrite-13pt)) | ||
| 334 | (message "Handwrite output size set to 13 points")) | 319 | (message "Handwrite output size set to 13 points")) |
| 335 | 320 | ||
| 336 | 321 | ||
| @@ -1263,62 +1248,24 @@ end | |||
| 1263 | ;;Sets page numbering off | 1248 | ;;Sets page numbering off |
| 1264 | (defun handwrite-set-pagenumber-off () | 1249 | (defun handwrite-set-pagenumber-off () |
| 1265 | (setq handwrite-pagenumbering nil) | 1250 | (setq handwrite-pagenumbering nil) |
| 1266 | (define-key menu-bar-handwrite-map | ||
| 1267 | [numbering] | ||
| 1268 | '("Page numbering Off" . handwrite-set-pagenumber)) | ||
| 1269 | (message "page numbering off")) | 1251 | (message "page numbering off")) |
| 1270 | 1252 | ||
| 1271 | ;;Sets page numbering on | 1253 | ;;Sets page numbering on |
| 1272 | (defun handwrite-set-pagenumber-on () | 1254 | (defun handwrite-set-pagenumber-on () |
| 1273 | (setq handwrite-pagenumbering t) | 1255 | (setq handwrite-pagenumbering t) |
| 1274 | (define-key menu-bar-handwrite-map | ||
| 1275 | [numbering] | ||
| 1276 | '("Page numbering On" . handwrite-set-pagenumber)) | ||
| 1277 | (message "page numbering on" )) | 1256 | (message "page numbering on" )) |
| 1278 | 1257 | ||
| 1279 | 1258 | ||
| 1280 | ;; Key bindings | 1259 | ;; Key bindings |
| 1281 | 1260 | ||
| 1282 | 1261 | ;; I'd rather not fill up the menu bar menus with | |
| 1283 | ;;; I'd rather not fill up the menu bar menus with | 1262 | ;; lots of random miscellaneous features. -- rms. |
| 1284 | ;;; lots of random miscellaneous features. -- rms. | ||
| 1285 | ;;;(define-key-after | 1263 | ;;;(define-key-after |
| 1286 | ;;; (lookup-key global-map [menu-bar edit]) | 1264 | ;;; (lookup-key global-map [menu-bar edit]) |
| 1287 | ;;; [handwrite] | 1265 | ;;; [handwrite] |
| 1288 | ;;; '("Write by hand" . menu-bar-handwrite-map) | 1266 | ;;; '("Write by hand" . menu-bar-handwrite-map) |
| 1289 | ;;; 'spell) | 1267 | ;;; 'spell) |
| 1290 | 1268 | ||
| 1291 | (define-key menu-bar-handwrite-map [numbering] | ||
| 1292 | '("Page numbering Off" . handwrite-set-pagenumber)) | ||
| 1293 | |||
| 1294 | (define-key menu-bar-handwrite-map [10pt] | ||
| 1295 | '("10 pt" . handwrite-10pt)) | ||
| 1296 | |||
| 1297 | (define-key menu-bar-handwrite-map [11pt] | ||
| 1298 | '("11 pt *" . handwrite-11pt)) | ||
| 1299 | |||
| 1300 | (define-key menu-bar-handwrite-map [12pt] | ||
| 1301 | '("12 pt" . handwrite-12pt)) | ||
| 1302 | |||
| 1303 | (define-key menu-bar-handwrite-map [13pt] | ||
| 1304 | '("13 pt" . handwrite-13pt)) | ||
| 1305 | |||
| 1306 | (define-key menu-bar-handwrite-map [handwrite] | ||
| 1307 | '("Write by hand" . handwrite)) | ||
| 1308 | |||
| 1309 | (define-key-after | ||
| 1310 | (lookup-key menu-bar-handwrite-map [ ]) | ||
| 1311 | [handwrite-separator1] | ||
| 1312 | '("----" . nil) | ||
| 1313 | 'handwrite) | ||
| 1314 | |||
| 1315 | (define-key-after | ||
| 1316 | (lookup-key menu-bar-handwrite-map [ ]) | ||
| 1317 | [handwrite-separator2] | ||
| 1318 | '("----" . nil) | ||
| 1319 | '10pt) | ||
| 1320 | |||
| 1321 | |||
| 1322 | (provide 'handwrite) | 1269 | (provide 'handwrite) |
| 1323 | 1270 | ||
| 1324 | 1271 | ||
diff --git a/lisp/play/pong.el b/lisp/play/pong.el index a2912831707..e993e769756 100644 --- a/lisp/play/pong.el +++ b/lisp/play/pong.el | |||
| @@ -190,21 +190,23 @@ | |||
| 190 | ;;; Initialize maps | 190 | ;;; Initialize maps |
| 191 | 191 | ||
| 192 | (defvar pong-mode-map | 192 | (defvar pong-mode-map |
| 193 | (make-sparse-keymap 'pong-mode-map) "Modemap for pong-mode.") | 193 | (let ((map (make-sparse-keymap 'pong-mode-map))) |
| 194 | (define-key map [left] 'pong-move-left) | ||
| 195 | (define-key map [right] 'pong-move-right) | ||
| 196 | (define-key map [up] 'pong-move-up) | ||
| 197 | (define-key map [down] 'pong-move-down) | ||
| 198 | (define-key map pong-left-key 'pong-move-left) | ||
| 199 | (define-key map pong-right-key 'pong-move-right) | ||
| 200 | (define-key map pong-up-key 'pong-move-up) | ||
| 201 | (define-key map pong-down-key 'pong-move-down) | ||
| 202 | (define-key map pong-quit-key 'pong-quit) | ||
| 203 | (define-key map pong-pause-key 'pong-pause) | ||
| 204 | map) | ||
| 205 | "Modemap for pong-mode.") | ||
| 194 | 206 | ||
| 195 | (defvar pong-null-map | 207 | (defvar pong-null-map |
| 196 | (make-sparse-keymap 'pong-null-map) "Null map for pong-mode.") | 208 | (make-sparse-keymap 'pong-null-map) "Null map for pong-mode.") |
| 197 | 209 | ||
| 198 | (define-key pong-mode-map [left] 'pong-move-left) | ||
| 199 | (define-key pong-mode-map [right] 'pong-move-right) | ||
| 200 | (define-key pong-mode-map [up] 'pong-move-up) | ||
| 201 | (define-key pong-mode-map [down] 'pong-move-down) | ||
| 202 | (define-key pong-mode-map pong-left-key 'pong-move-left) | ||
| 203 | (define-key pong-mode-map pong-right-key 'pong-move-right) | ||
| 204 | (define-key pong-mode-map pong-up-key 'pong-move-up) | ||
| 205 | (define-key pong-mode-map pong-down-key 'pong-move-down) | ||
| 206 | (define-key pong-mode-map pong-quit-key 'pong-quit) | ||
| 207 | (define-key pong-mode-map pong-pause-key 'pong-pause) | ||
| 208 | 210 | ||
| 209 | 211 | ||
| 210 | ;;; Fun stuff -- The code | 212 | ;;; Fun stuff -- The code |
diff --git a/lisp/play/snake.el b/lisp/play/snake.el index 3714e6be4d2..418c898e825 100644 --- a/lisp/play/snake.el +++ b/lisp/play/snake.el | |||
| @@ -174,21 +174,22 @@ and then start moving it leftwards.") | |||
| 174 | ;; ;;;;;;;;;;;;; keymaps ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 174 | ;; ;;;;;;;;;;;;; keymaps ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 175 | 175 | ||
| 176 | (defvar snake-mode-map | 176 | (defvar snake-mode-map |
| 177 | (make-sparse-keymap 'snake-mode-map)) | 177 | (let ((map (make-sparse-keymap 'snake-mode-map))) |
| 178 | 178 | ||
| 179 | (define-key snake-mode-map "n" 'snake-start-game) | 179 | (define-key map "n" 'snake-start-game) |
| 180 | (define-key snake-mode-map "q" 'snake-end-game) | 180 | (define-key map "q" 'snake-end-game) |
| 181 | (define-key snake-mode-map "p" 'snake-pause-game) | 181 | (define-key map "p" 'snake-pause-game) |
| 182 | 182 | ||
| 183 | (define-key snake-mode-map [left] 'snake-move-left) | 183 | (define-key map [left] 'snake-move-left) |
| 184 | (define-key snake-mode-map [right] 'snake-move-right) | 184 | (define-key map [right] 'snake-move-right) |
| 185 | (define-key snake-mode-map [up] 'snake-move-up) | 185 | (define-key map [up] 'snake-move-up) |
| 186 | (define-key snake-mode-map [down] 'snake-move-down) | 186 | (define-key map [down] 'snake-move-down) |
| 187 | map)) | ||
| 187 | 188 | ||
| 188 | (defvar snake-null-map | 189 | (defvar snake-null-map |
| 189 | (make-sparse-keymap 'snake-null-map)) | 190 | (let ((map (make-sparse-keymap 'snake-null-map))) |
| 190 | 191 | (define-key map "n" 'snake-start-game) | |
| 191 | (define-key snake-null-map "n" 'snake-start-game) | 192 | map)) |
| 192 | 193 | ||
| 193 | ;; ;;;;;;;;;;;;;;;; game functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | 194 | ;; ;;;;;;;;;;;;;;;; game functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
| 194 | 195 | ||
diff --git a/lisp/play/solitaire.el b/lisp/play/solitaire.el index 3e6e941473f..9d6a0ef52b1 100644 --- a/lisp/play/solitaire.el +++ b/lisp/play/solitaire.el | |||
| @@ -41,6 +41,49 @@ | |||
| 41 | :type 'hook | 41 | :type 'hook |
| 42 | :group 'solitaire) | 42 | :group 'solitaire) |
| 43 | 43 | ||
| 44 | (defvar solitaire-mode-map | ||
| 45 | (let ((map (make-sparse-keymap))) | ||
| 46 | (set-keymap-parent map special-mode-map) | ||
| 47 | |||
| 48 | (define-key map "\C-f" 'solitaire-right) | ||
| 49 | (define-key map "\C-b" 'solitaire-left) | ||
| 50 | (define-key map "\C-p" 'solitaire-up) | ||
| 51 | (define-key map "\C-n" 'solitaire-down) | ||
| 52 | (define-key map "\r" 'solitaire-move) | ||
| 53 | (define-key map [remap undo] 'solitaire-undo) | ||
| 54 | (define-key map " " 'solitaire-do-check) | ||
| 55 | |||
| 56 | (define-key map [right] 'solitaire-right) | ||
| 57 | (define-key map [left] 'solitaire-left) | ||
| 58 | (define-key map [up] 'solitaire-up) | ||
| 59 | (define-key map [down] 'solitaire-down) | ||
| 60 | |||
| 61 | (define-key map [S-right] 'solitaire-move-right) | ||
| 62 | (define-key map [S-left] 'solitaire-move-left) | ||
| 63 | (define-key map [S-up] 'solitaire-move-up) | ||
| 64 | (define-key map [S-down] 'solitaire-move-down) | ||
| 65 | |||
| 66 | (define-key map [kp-6] 'solitaire-right) | ||
| 67 | (define-key map [kp-4] 'solitaire-left) | ||
| 68 | (define-key map [kp-8] 'solitaire-up) | ||
| 69 | (define-key map [kp-2] 'solitaire-down) | ||
| 70 | (define-key map [kp-5] 'solitaire-center-point) | ||
| 71 | |||
| 72 | (define-key map [S-kp-6] 'solitaire-move-right) | ||
| 73 | (define-key map [S-kp-4] 'solitaire-move-left) | ||
| 74 | (define-key map [S-kp-8] 'solitaire-move-up) | ||
| 75 | (define-key map [S-kp-2] 'solitaire-move-down) | ||
| 76 | |||
| 77 | (define-key map [kp-enter] 'solitaire-move) | ||
| 78 | (define-key map [kp-0] 'solitaire-undo) | ||
| 79 | |||
| 80 | ;; spoil it with s ;) | ||
| 81 | (define-key map [?s] 'solitaire-solve) | ||
| 82 | |||
| 83 | ;; (define-key map [kp-0] 'solitaire-hint) - Not yet provided ;) | ||
| 84 | map) | ||
| 85 | "Keymap for playing Solitaire.") | ||
| 86 | |||
| 44 | ;; Solitaire mode is suitable only for specially formatted data. | 87 | ;; Solitaire mode is suitable only for specially formatted data. |
| 45 | (put 'solitaire-mode 'mode-class 'special) | 88 | (put 'solitaire-mode 'mode-class 'special) |
| 46 | 89 | ||
| @@ -54,41 +97,6 @@ The usual mnemonic keys move the cursor around the board; in addition, | |||
| 54 | (setq truncate-lines t) | 97 | (setq truncate-lines t) |
| 55 | (setq show-trailing-whitespace nil)) | 98 | (setq show-trailing-whitespace nil)) |
| 56 | 99 | ||
| 57 | (define-key solitaire-mode-map "\C-f" 'solitaire-right) | ||
| 58 | (define-key solitaire-mode-map "\C-b" 'solitaire-left) | ||
| 59 | (define-key solitaire-mode-map "\C-p" 'solitaire-up) | ||
| 60 | (define-key solitaire-mode-map "\C-n" 'solitaire-down) | ||
| 61 | (define-key solitaire-mode-map "\r" 'solitaire-move) | ||
| 62 | (define-key solitaire-mode-map [remap undo] 'solitaire-undo) | ||
| 63 | (define-key solitaire-mode-map " " 'solitaire-do-check) | ||
| 64 | |||
| 65 | (define-key solitaire-mode-map [right] 'solitaire-right) | ||
| 66 | (define-key solitaire-mode-map [left] 'solitaire-left) | ||
| 67 | (define-key solitaire-mode-map [up] 'solitaire-up) | ||
| 68 | (define-key solitaire-mode-map [down] 'solitaire-down) | ||
| 69 | |||
| 70 | (define-key solitaire-mode-map [S-right] 'solitaire-move-right) | ||
| 71 | (define-key solitaire-mode-map [S-left] 'solitaire-move-left) | ||
| 72 | (define-key solitaire-mode-map [S-up] 'solitaire-move-up) | ||
| 73 | (define-key solitaire-mode-map [S-down] 'solitaire-move-down) | ||
| 74 | |||
| 75 | (define-key solitaire-mode-map [kp-6] 'solitaire-right) | ||
| 76 | (define-key solitaire-mode-map [kp-4] 'solitaire-left) | ||
| 77 | (define-key solitaire-mode-map [kp-8] 'solitaire-up) | ||
| 78 | (define-key solitaire-mode-map [kp-2] 'solitaire-down) | ||
| 79 | (define-key solitaire-mode-map [kp-5] 'solitaire-center-point) | ||
| 80 | |||
| 81 | (define-key solitaire-mode-map [S-kp-6] 'solitaire-move-right) | ||
| 82 | (define-key solitaire-mode-map [S-kp-4] 'solitaire-move-left) | ||
| 83 | (define-key solitaire-mode-map [S-kp-8] 'solitaire-move-up) | ||
| 84 | (define-key solitaire-mode-map [S-kp-2] 'solitaire-move-down) | ||
| 85 | |||
| 86 | (define-key solitaire-mode-map [kp-enter] 'solitaire-move) | ||
| 87 | (define-key solitaire-mode-map [kp-0] 'solitaire-undo) | ||
| 88 | |||
| 89 | ;; spoil it with s ;) | ||
| 90 | (define-key solitaire-mode-map [?s] 'solitaire-solve) | ||
| 91 | ;; (define-key map [kp-0] 'solitaire-hint) - Not yet provided ;) | ||
| 92 | (defvar solitaire-stones 0 | 100 | (defvar solitaire-stones 0 |
| 93 | "Counter for the stones that are still there.") | 101 | "Counter for the stones that are still there.") |
| 94 | 102 | ||
diff --git a/lisp/progmodes/gdb-mi.el b/lisp/progmodes/gdb-mi.el index bbe9722f548..25d1410621a 100644 --- a/lisp/progmodes/gdb-mi.el +++ b/lisp/progmodes/gdb-mi.el | |||
| @@ -2983,25 +2983,27 @@ DOC is an optional documentation string." | |||
| 2983 | map) | 2983 | map) |
| 2984 | "Keymap to select format in the header line.") | 2984 | "Keymap to select format in the header line.") |
| 2985 | 2985 | ||
| 2986 | (defvar gdb-memory-format-menu (make-sparse-keymap "Format") | 2986 | (defvar gdb-memory-format-menu |
| 2987 | (let ((map (make-sparse-keymap "Format"))) | ||
| 2988 | |||
| 2989 | (define-key map [binary] | ||
| 2990 | '(menu-item "Binary" gdb-memory-format-binary | ||
| 2991 | :button (:radio . (equal gdb-memory-format "t")))) | ||
| 2992 | (define-key map [octal] | ||
| 2993 | '(menu-item "Octal" gdb-memory-format-octal | ||
| 2994 | :button (:radio . (equal gdb-memory-format "o")))) | ||
| 2995 | (define-key map [unsigned] | ||
| 2996 | '(menu-item "Unsigned Decimal" gdb-memory-format-unsigned | ||
| 2997 | :button (:radio . (equal gdb-memory-format "u")))) | ||
| 2998 | (define-key map [signed] | ||
| 2999 | '(menu-item "Signed Decimal" gdb-memory-format-signed | ||
| 3000 | :button (:radio . (equal gdb-memory-format "d")))) | ||
| 3001 | (define-key map [hexadecimal] | ||
| 3002 | '(menu-item "Hexadecimal" gdb-memory-format-hexadecimal | ||
| 3003 | :button (:radio . (equal gdb-memory-format "x")))) | ||
| 3004 | map) | ||
| 2987 | "Menu of display formats in the header line.") | 3005 | "Menu of display formats in the header line.") |
| 2988 | 3006 | ||
| 2989 | (define-key gdb-memory-format-menu [binary] | ||
| 2990 | '(menu-item "Binary" gdb-memory-format-binary | ||
| 2991 | :button (:radio . (equal gdb-memory-format "t")))) | ||
| 2992 | (define-key gdb-memory-format-menu [octal] | ||
| 2993 | '(menu-item "Octal" gdb-memory-format-octal | ||
| 2994 | :button (:radio . (equal gdb-memory-format "o")))) | ||
| 2995 | (define-key gdb-memory-format-menu [unsigned] | ||
| 2996 | '(menu-item "Unsigned Decimal" gdb-memory-format-unsigned | ||
| 2997 | :button (:radio . (equal gdb-memory-format "u")))) | ||
| 2998 | (define-key gdb-memory-format-menu [signed] | ||
| 2999 | '(menu-item "Signed Decimal" gdb-memory-format-signed | ||
| 3000 | :button (:radio . (equal gdb-memory-format "d")))) | ||
| 3001 | (define-key gdb-memory-format-menu [hexadecimal] | ||
| 3002 | '(menu-item "Hexadecimal" gdb-memory-format-hexadecimal | ||
| 3003 | :button (:radio . (equal gdb-memory-format "x")))) | ||
| 3004 | |||
| 3005 | (defun gdb-memory-format-menu (event) | 3007 | (defun gdb-memory-format-menu (event) |
| 3006 | (interactive "@e") | 3008 | (interactive "@e") |
| 3007 | (x-popup-menu event gdb-memory-format-menu)) | 3009 | (x-popup-menu event gdb-memory-format-menu)) |
| @@ -3061,22 +3063,23 @@ DOC is an optional documentation string." | |||
| 3061 | map) | 3063 | map) |
| 3062 | "Keymap to select units in the header line.") | 3064 | "Keymap to select units in the header line.") |
| 3063 | 3065 | ||
| 3064 | (defvar gdb-memory-unit-menu (make-sparse-keymap "Unit") | 3066 | (defvar gdb-memory-unit-menu |
| 3067 | (let ((map (make-sparse-keymap "Unit"))) | ||
| 3068 | (define-key map [giantwords] | ||
| 3069 | '(menu-item "Giant words" gdb-memory-unit-giant | ||
| 3070 | :button (:radio . (equal gdb-memory-unit 8)))) | ||
| 3071 | (define-key map [words] | ||
| 3072 | '(menu-item "Words" gdb-memory-unit-word | ||
| 3073 | :button (:radio . (equal gdb-memory-unit 4)))) | ||
| 3074 | (define-key map [halfwords] | ||
| 3075 | '(menu-item "Halfwords" gdb-memory-unit-halfword | ||
| 3076 | :button (:radio . (equal gdb-memory-unit 2)))) | ||
| 3077 | (define-key map [bytes] | ||
| 3078 | '(menu-item "Bytes" gdb-memory-unit-byte | ||
| 3079 | :button (:radio . (equal gdb-memory-unit 1)))) | ||
| 3080 | map) | ||
| 3065 | "Menu of units in the header line.") | 3081 | "Menu of units in the header line.") |
| 3066 | 3082 | ||
| 3067 | (define-key gdb-memory-unit-menu [giantwords] | ||
| 3068 | '(menu-item "Giant words" gdb-memory-unit-giant | ||
| 3069 | :button (:radio . (equal gdb-memory-unit 8)))) | ||
| 3070 | (define-key gdb-memory-unit-menu [words] | ||
| 3071 | '(menu-item "Words" gdb-memory-unit-word | ||
| 3072 | :button (:radio . (equal gdb-memory-unit 4)))) | ||
| 3073 | (define-key gdb-memory-unit-menu [halfwords] | ||
| 3074 | '(menu-item "Halfwords" gdb-memory-unit-halfword | ||
| 3075 | :button (:radio . (equal gdb-memory-unit 2)))) | ||
| 3076 | (define-key gdb-memory-unit-menu [bytes] | ||
| 3077 | '(menu-item "Bytes" gdb-memory-unit-byte | ||
| 3078 | :button (:radio . (equal gdb-memory-unit 1)))) | ||
| 3079 | |||
| 3080 | (defun gdb-memory-unit-menu (event) | 3083 | (defun gdb-memory-unit-menu (event) |
| 3081 | (interactive "@e") | 3084 | (interactive "@e") |
| 3082 | (x-popup-menu event gdb-memory-unit-menu)) | 3085 | (x-popup-menu event gdb-memory-unit-menu)) |
diff --git a/lisp/progmodes/idlw-help.el b/lisp/progmodes/idlw-help.el index 1b32c7807c6..7202d95c8db 100644 --- a/lisp/progmodes/idlw-help.el +++ b/lisp/progmodes/idlw-help.el | |||
| @@ -219,23 +219,24 @@ support." | |||
| 219 | 219 | ||
| 220 | ;; Define the key bindings for the Help application | 220 | ;; Define the key bindings for the Help application |
| 221 | 221 | ||
| 222 | (defvar idlwave-help-mode-map (make-sparse-keymap) | 222 | (defvar idlwave-help-mode-map |
| 223 | (let ((map (make-sparse-keymap))) | ||
| 224 | (define-key map "q" 'idlwave-help-quit) | ||
| 225 | (define-key map "w" 'widen) | ||
| 226 | (define-key map "\C-m" (lambda (arg) | ||
| 227 | (interactive "p") | ||
| 228 | (scroll-up arg))) | ||
| 229 | (define-key map " " 'scroll-up) | ||
| 230 | (define-key map [delete] 'scroll-down) | ||
| 231 | (define-key map "h" 'idlwave-help-find-header) | ||
| 232 | (define-key map "H" 'idlwave-help-find-first-header) | ||
| 233 | (define-key map "." 'idlwave-help-toggle-header-match-and-def) | ||
| 234 | (define-key map "F" 'idlwave-help-fontify) | ||
| 235 | (define-key map "\M-?" 'idlwave-help-return-to-calling-frame) | ||
| 236 | (define-key map "x" 'idlwave-help-return-to-calling-frame) | ||
| 237 | map) | ||
| 223 | "The keymap used in `idlwave-help-mode'.") | 238 | "The keymap used in `idlwave-help-mode'.") |
| 224 | 239 | ||
| 225 | (define-key idlwave-help-mode-map "q" 'idlwave-help-quit) | ||
| 226 | (define-key idlwave-help-mode-map "w" 'widen) | ||
| 227 | (define-key idlwave-help-mode-map "\C-m" (lambda (arg) | ||
| 228 | (interactive "p") | ||
| 229 | (scroll-up arg))) | ||
| 230 | (define-key idlwave-help-mode-map " " 'scroll-up) | ||
| 231 | (define-key idlwave-help-mode-map [delete] 'scroll-down) | ||
| 232 | (define-key idlwave-help-mode-map "h" 'idlwave-help-find-header) | ||
| 233 | (define-key idlwave-help-mode-map "H" 'idlwave-help-find-first-header) | ||
| 234 | (define-key idlwave-help-mode-map "." 'idlwave-help-toggle-header-match-and-def) | ||
| 235 | (define-key idlwave-help-mode-map "F" 'idlwave-help-fontify) | ||
| 236 | (define-key idlwave-help-mode-map "\M-?" 'idlwave-help-return-to-calling-frame) | ||
| 237 | (define-key idlwave-help-mode-map "x" 'idlwave-help-return-to-calling-frame) | ||
| 238 | |||
| 239 | ;; Define the menu for the Help application | 240 | ;; Define the menu for the Help application |
| 240 | 241 | ||
| 241 | (easy-menu-define | 242 | (easy-menu-define |
diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index 72b7914e21b..30d9fc21867 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el | |||
| @@ -8265,20 +8265,26 @@ If we do not know about MODULE, just return KEYWORD literally." | |||
| 8265 | ;; keyword - return it as it is. | 8265 | ;; keyword - return it as it is. |
| 8266 | keyword)))) | 8266 | keyword)))) |
| 8267 | 8267 | ||
| 8268 | (defvar idlwave-rinfo-mouse-map (make-sparse-keymap)) | 8268 | (defvar idlwave-rinfo-mouse-map |
| 8269 | (defvar idlwave-rinfo-map (make-sparse-keymap)) | 8269 | (let ((map (make-sparse-keymap))) |
| 8270 | (define-key idlwave-rinfo-mouse-map | 8270 | (define-key map |
| 8271 | (if (featurep 'xemacs) [button2] [mouse-2]) | 8271 | (if (featurep 'xemacs) [button2] [mouse-2]) |
| 8272 | 'idlwave-mouse-active-rinfo) | 8272 | 'idlwave-mouse-active-rinfo) |
| 8273 | (define-key idlwave-rinfo-mouse-map | 8273 | (define-key map |
| 8274 | (if (featurep 'xemacs) [(shift button2)] [(shift mouse-2)]) | 8274 | (if (featurep 'xemacs) [(shift button2)] [(shift mouse-2)]) |
| 8275 | 'idlwave-mouse-active-rinfo-shift) | 8275 | 'idlwave-mouse-active-rinfo-shift) |
| 8276 | (define-key idlwave-rinfo-mouse-map | 8276 | (define-key map |
| 8277 | (if (featurep 'xemacs) [button3] [mouse-3]) | 8277 | (if (featurep 'xemacs) [button3] [mouse-3]) |
| 8278 | 'idlwave-mouse-active-rinfo-right) | 8278 | 'idlwave-mouse-active-rinfo-right) |
| 8279 | (define-key idlwave-rinfo-mouse-map " " 'idlwave-active-rinfo-space) | 8279 | (define-key map " " 'idlwave-active-rinfo-space) |
| 8280 | (define-key idlwave-rinfo-map "q" 'idlwave-quit-help) | 8280 | (define-key map "q" 'idlwave-quit-help) |
| 8281 | (define-key idlwave-rinfo-mouse-map "q" 'idlwave-quit-help) | 8281 | map)) |
| 8282 | |||
| 8283 | (defvar idlwave-rinfo-map | ||
| 8284 | (let ((map (make-sparse-keymap))) | ||
| 8285 | (define-key map "q" 'idlwave-quit-help) | ||
| 8286 | map)) | ||
| 8287 | |||
| 8282 | (defvar idlwave-popup-source nil) | 8288 | (defvar idlwave-popup-source nil) |
| 8283 | (defvar idlwave-rinfo-marker (make-marker)) | 8289 | (defvar idlwave-rinfo-marker (make-marker)) |
| 8284 | 8290 | ||
diff --git a/lisp/replace.el b/lisp/replace.el index 924622b692d..0f8adea2aca 100644 --- a/lisp/replace.el +++ b/lisp/replace.el | |||
| @@ -757,6 +757,60 @@ a previously found match." | |||
| 757 | count))) | 757 | count))) |
| 758 | 758 | ||
| 759 | 759 | ||
| 760 | (defvar occur-mode-map | ||
| 761 | (let ((map (make-sparse-keymap))) | ||
| 762 | ;; We use this alternative name, so we can use \\[occur-mode-mouse-goto]. | ||
| 763 | (define-key map [mouse-2] 'occur-mode-mouse-goto) | ||
| 764 | (define-key map "\C-c\C-c" 'occur-mode-goto-occurrence) | ||
| 765 | (define-key map "\C-m" 'occur-mode-goto-occurrence) | ||
| 766 | (define-key map "o" 'occur-mode-goto-occurrence-other-window) | ||
| 767 | (define-key map "\C-o" 'occur-mode-display-occurrence) | ||
| 768 | (define-key map "\M-n" 'occur-next) | ||
| 769 | (define-key map "\M-p" 'occur-prev) | ||
| 770 | (define-key map "r" 'occur-rename-buffer) | ||
| 771 | (define-key map "c" 'clone-buffer) | ||
| 772 | (define-key map "\C-c\C-f" 'next-error-follow-minor-mode) | ||
| 773 | (define-key map [menu-bar] (make-sparse-keymap)) | ||
| 774 | (define-key map [menu-bar occur] | ||
| 775 | `(cons ,(purecopy "Occur") map)) | ||
| 776 | (define-key map [next-error-follow-minor-mode] | ||
| 777 | (menu-bar-make-mm-toggle next-error-follow-minor-mode | ||
| 778 | "Auto Occurrence Display" | ||
| 779 | "Display another occurrence when moving the cursor")) | ||
| 780 | (define-key map [separator-1] menu-bar-separator) | ||
| 781 | (define-key map [kill-this-buffer] | ||
| 782 | `(menu-item ,(purecopy "Kill occur buffer") kill-this-buffer | ||
| 783 | :help ,(purecopy "Kill the current *Occur* buffer"))) | ||
| 784 | (define-key map [quit-window] | ||
| 785 | `(menu-item ,(purecopy "Quit occur window") quit-window | ||
| 786 | :help ,(purecopy "Quit the current *Occur* buffer. Bury it, and maybe delete the selected frame"))) | ||
| 787 | (define-key map [revert-buffer] | ||
| 788 | `(menu-item ,(purecopy "Revert occur buffer") revert-buffer | ||
| 789 | :help ,(purecopy "Replace the text in the *Occur* buffer with the results of rerunning occur"))) | ||
| 790 | (define-key map [clone-buffer] | ||
| 791 | `(menu-item ,(purecopy "Clone occur buffer") clone-buffer | ||
| 792 | :help ,(purecopy "Create and return a twin copy of the current *Occur* buffer"))) | ||
| 793 | (define-key map [occur-rename-buffer] | ||
| 794 | `(menu-item ,(purecopy "Rename occur buffer") occur-rename-buffer | ||
| 795 | :help ,(purecopy "Rename the current *Occur* buffer to *Occur: original-buffer-name*."))) | ||
| 796 | (define-key map [separator-2] menu-bar-separator) | ||
| 797 | (define-key map [occur-mode-goto-occurrence-other-window] | ||
| 798 | `(menu-item ,(purecopy "Go To Occurrence Other Window") occur-mode-goto-occurrence-other-window | ||
| 799 | :help ,(purecopy "Go to the occurrence the current line describes, in another window"))) | ||
| 800 | (define-key map [occur-mode-goto-occurrence] | ||
| 801 | `(menu-item ,(purecopy "Go To Occurrence") occur-mode-goto-occurrence | ||
| 802 | :help ,(purecopy "Go to the occurrence the current line describes"))) | ||
| 803 | (define-key map [occur-mode-display-occurrence] | ||
| 804 | `(menu-item ,(purecopy "Display Occurrence") occur-mode-display-occurrence | ||
| 805 | :help ,(purecopy "Display in another window the occurrence the current line describes"))) | ||
| 806 | (define-key map [occur-next] | ||
| 807 | `(menu-item ,(purecopy "Move to next match") occur-next | ||
| 808 | :help ,(purecopy "Move to the Nth (default 1) next match in an Occur mode buffer"))) | ||
| 809 | (define-key map [occur-prev] | ||
| 810 | `(menu-item ,(purecopy "Move to previous match") occur-prev | ||
| 811 | :help ,(purecopy "Move to the Nth (default 1) previous match in an Occur mode buffer"))) | ||
| 812 | map) | ||
| 813 | "Keymap for `occur-mode'.") | ||
| 760 | 814 | ||
| 761 | (defvar occur-revert-arguments nil | 815 | (defvar occur-revert-arguments nil |
| 762 | "Arguments to pass to `occur-1' to revert an Occur mode buffer. | 816 | "Arguments to pass to `occur-1' to revert an Occur mode buffer. |
| @@ -792,54 +846,6 @@ Alternatively, click \\[occur-mode-mouse-goto] on an item to go to it. | |||
| 792 | (add-hook 'change-major-mode-hook 'font-lock-defontify nil t) | 846 | (add-hook 'change-major-mode-hook 'font-lock-defontify nil t) |
| 793 | (setq next-error-function 'occur-next-error)) | 847 | (setq next-error-function 'occur-next-error)) |
| 794 | 848 | ||
| 795 | (define-key occur-mode-map [mouse-2] 'occur-mode-mouse-goto) | ||
| 796 | (define-key occur-mode-map "\C-c\C-c" 'occur-mode-goto-occurrence) | ||
| 797 | (define-key occur-mode-map "\C-m" 'occur-mode-goto-occurrence) | ||
| 798 | (define-key occur-mode-map "o" 'occur-mode-goto-occurrence-other-window) | ||
| 799 | (define-key occur-mode-map "\C-o" 'occur-mode-display-occurrence) | ||
| 800 | (define-key occur-mode-map "\M-n" 'occur-next) | ||
| 801 | (define-key occur-mode-map "\M-p" 'occur-prev) | ||
| 802 | (define-key occur-mode-map "r" 'occur-rename-buffer) | ||
| 803 | (define-key occur-mode-map "c" 'clone-buffer) | ||
| 804 | (define-key occur-mode-map "\C-c\C-f" 'next-error-follow-minor-mode) | ||
| 805 | (define-key occur-mode-map [menu-bar] (make-sparse-keymap)) | ||
| 806 | (define-key occur-mode-map [menu-bar occur] `(cons ,(purecopy "Occur") map)) | ||
| 807 | (define-key occur-mode-map [next-error-follow-minor-mode] | ||
| 808 | (menu-bar-make-mm-toggle next-error-follow-minor-mode | ||
| 809 | "Auto Occurrence Display" | ||
| 810 | "Display another occurrence when moving the cursor")) | ||
| 811 | (define-key occur-mode-map [separator-1] menu-bar-separator) | ||
| 812 | (define-key occur-mode-map [kill-this-buffer] | ||
| 813 | `(menu-item ,(purecopy "Kill occur buffer") kill-this-buffer | ||
| 814 | :help ,(purecopy "Kill the current *Occur* buffer"))) | ||
| 815 | (define-key occur-mode-map [quit-window] | ||
| 816 | `(menu-item ,(purecopy "Quit occur window") quit-window | ||
| 817 | :help ,(purecopy "Quit the current *Occur* buffer. Bury it, and maybe delete the selected frame"))) | ||
| 818 | (define-key occur-mode-map [revert-buffer] | ||
| 819 | `(menu-item ,(purecopy "Revert occur buffer") revert-buffer | ||
| 820 | :help ,(purecopy "Replace the text in the *Occur* buffer with the results of rerunning occur"))) | ||
| 821 | (define-key occur-mode-map [clone-buffer] | ||
| 822 | `(menu-item ,(purecopy "Clone occur buffer") clone-buffer | ||
| 823 | :help ,(purecopy "Create and return a twin copy of the current *Occur* buffer"))) | ||
| 824 | (define-key occur-mode-map [occur-rename-buffer] | ||
| 825 | `(menu-item ,(purecopy "Rename occur buffer") occur-rename-buffer | ||
| 826 | :help ,(purecopy "Rename the current *Occur* buffer to *Occur: original-buffer-name*."))) | ||
| 827 | (define-key occur-mode-map [separator-2] menu-bar-separator) | ||
| 828 | (define-key occur-mode-map [occur-mode-goto-occurrence-other-window] | ||
| 829 | `(menu-item ,(purecopy "Go To Occurrence Other Window") occur-mode-goto-occurrence-other-window | ||
| 830 | :help ,(purecopy "Go to the occurrence the current line describes, in another window"))) | ||
| 831 | (define-key occur-mode-map [occur-mode-goto-occurrence] | ||
| 832 | `(menu-item ,(purecopy "Go To Occurrence") occur-mode-goto-occurrence | ||
| 833 | :help ,(purecopy "Go to the occurrence the current line describes"))) | ||
| 834 | (define-key occur-mode-map [occur-mode-display-occurrence] | ||
| 835 | `(menu-item ,(purecopy "Display Occurrence") occur-mode-display-occurrence | ||
| 836 | :help ,(purecopy "Display in another window the occurrence the current line describes"))) | ||
| 837 | (define-key occur-mode-map [occur-next] | ||
| 838 | `(menu-item ,(purecopy "Move to next match") occur-next | ||
| 839 | :help ,(purecopy "Move to the Nth (default 1) next match in an Occur mode buffer"))) | ||
| 840 | (define-key occur-mode-map [occur-prev] | ||
| 841 | `(menu-item ,(purecopy "Move to previous match") occur-prev | ||
| 842 | :help ,(purecopy "Move to the Nth (default 1) previous match in an Occur mode buffer"))) | ||
| 843 | (defun occur-revert-function (ignore1 ignore2) | 849 | (defun occur-revert-function (ignore1 ignore2) |
| 844 | "Handle `revert-buffer' for Occur mode buffers." | 850 | "Handle `revert-buffer' for Occur mode buffers." |
| 845 | (apply 'occur-1 (append occur-revert-arguments (list (buffer-name))))) | 851 | (apply 'occur-1 (append occur-revert-arguments (list (buffer-name))))) |
diff --git a/lisp/tar-mode.el b/lisp/tar-mode.el index 10ea1ac23c4..44908a87b8c 100644 --- a/lisp/tar-mode.el +++ b/lisp/tar-mode.el | |||
| @@ -520,7 +520,84 @@ MODE should be an integer which is a file mode value." | |||
| 520 | (goto-char (point-min)) | 520 | (goto-char (point-min)) |
| 521 | (restore-buffer-modified-p modified))) | 521 | (restore-buffer-modified-p modified))) |
| 522 | 522 | ||
| 523 | (defvar tar-mode-map | ||
| 524 | (let ((map (make-keymap))) | ||
| 525 | (suppress-keymap map) | ||
| 526 | (define-key map " " 'tar-next-line) | ||
| 527 | (define-key map "C" 'tar-copy) | ||
| 528 | (define-key map "d" 'tar-flag-deleted) | ||
| 529 | (define-key map "\^D" 'tar-flag-deleted) | ||
| 530 | (define-key map "e" 'tar-extract) | ||
| 531 | (define-key map "f" 'tar-extract) | ||
| 532 | (define-key map "\C-m" 'tar-extract) | ||
| 533 | (define-key map [mouse-2] 'tar-mouse-extract) | ||
| 534 | (define-key map "g" 'revert-buffer) | ||
| 535 | (define-key map "n" 'tar-next-line) | ||
| 536 | (define-key map "\^N" 'tar-next-line) | ||
| 537 | (define-key map [down] 'tar-next-line) | ||
| 538 | (define-key map "o" 'tar-extract-other-window) | ||
| 539 | (define-key map "p" 'tar-previous-line) | ||
| 540 | (define-key map "\^P" 'tar-previous-line) | ||
| 541 | (define-key map [up] 'tar-previous-line) | ||
| 542 | (define-key map "R" 'tar-rename-entry) | ||
| 543 | (define-key map "u" 'tar-unflag) | ||
| 544 | (define-key map "v" 'tar-view) | ||
| 545 | (define-key map "x" 'tar-expunge) | ||
| 546 | (define-key map "\177" 'tar-unflag-backwards) | ||
| 547 | (define-key map "E" 'tar-extract-other-window) | ||
| 548 | (define-key map "M" 'tar-chmod-entry) | ||
| 549 | (define-key map "G" 'tar-chgrp-entry) | ||
| 550 | (define-key map "O" 'tar-chown-entry) | ||
| 551 | ;; Let mouse-1 follow the link. | ||
| 552 | (define-key map [follow-link] 'mouse-face) | ||
| 553 | |||
| 554 | ;; Make menu bar items. | ||
| 555 | |||
| 556 | ;; Get rid of the Edit menu bar item to save space. | ||
| 557 | (define-key map [menu-bar edit] 'undefined) | ||
| 558 | |||
| 559 | (define-key map [menu-bar immediate] | ||
| 560 | (cons "Immediate" (make-sparse-keymap "Immediate"))) | ||
| 561 | |||
| 562 | (define-key map [menu-bar immediate view] | ||
| 563 | '("View This File" . tar-view)) | ||
| 564 | (define-key map [menu-bar immediate display] | ||
| 565 | '("Display in Other Window" . tar-display-other-window)) | ||
| 566 | (define-key map [menu-bar immediate find-file-other-window] | ||
| 567 | '("Find in Other Window" . tar-extract-other-window)) | ||
| 568 | (define-key map [menu-bar immediate find-file] | ||
| 569 | '("Find This File" . tar-extract)) | ||
| 570 | |||
| 571 | (define-key map [menu-bar mark] | ||
| 572 | (cons "Mark" (make-sparse-keymap "Mark"))) | ||
| 573 | |||
| 574 | (define-key map [menu-bar mark unmark-all] | ||
| 575 | '("Unmark All" . tar-clear-modification-flags)) | ||
| 576 | (define-key map [menu-bar mark deletion] | ||
| 577 | '("Flag" . tar-flag-deleted)) | ||
| 578 | (define-key map [menu-bar mark unmark] | ||
| 579 | '("Unflag" . tar-unflag)) | ||
| 580 | |||
| 581 | (define-key map [menu-bar operate] | ||
| 582 | (cons "Operate" (make-sparse-keymap "Operate"))) | ||
| 583 | |||
| 584 | (define-key map [menu-bar operate chown] | ||
| 585 | '("Change Owner..." . tar-chown-entry)) | ||
| 586 | (define-key map [menu-bar operate chgrp] | ||
| 587 | '("Change Group..." . tar-chgrp-entry)) | ||
| 588 | (define-key map [menu-bar operate chmod] | ||
| 589 | '("Change Mode..." . tar-chmod-entry)) | ||
| 590 | (define-key map [menu-bar operate rename] | ||
| 591 | '("Rename to..." . tar-rename-entry)) | ||
| 592 | (define-key map [menu-bar operate copy] | ||
| 593 | '("Copy to..." . tar-copy)) | ||
| 594 | (define-key map [menu-bar operate expunge] | ||
| 595 | '("Expunge Marked Files" . tar-expunge)) | ||
| 596 | |||
| 597 | map) | ||
| 598 | "Local keymap for Tar mode listings.") | ||
| 523 | 599 | ||
| 600 | |||
| 524 | ;; tar mode is suitable only for specially formatted data. | 601 | ;; tar mode is suitable only for specially formatted data. |
| 525 | (put 'tar-mode 'mode-class 'special) | 602 | (put 'tar-mode 'mode-class 'special) |
| 526 | (put 'tar-subfile-mode 'mode-class 'special) | 603 | (put 'tar-subfile-mode 'mode-class 'special) |
| @@ -590,77 +667,6 @@ See also: variables `tar-update-datestamp' and `tar-anal-blocksize'. | |||
| 590 | (fundamental-mode) | 667 | (fundamental-mode) |
| 591 | (signal (car err) (cdr err))))) | 668 | (signal (car err) (cdr err))))) |
| 592 | 669 | ||
| 593 | (define-key tar-mode-map " " 'tar-next-line) | ||
| 594 | (define-key tar-mode-map "C" 'tar-copy) | ||
| 595 | (define-key tar-mode-map "d" 'tar-flag-deleted) | ||
| 596 | (define-key tar-mode-map "\^D" 'tar-flag-deleted) | ||
| 597 | (define-key tar-mode-map "e" 'tar-extract) | ||
| 598 | (define-key tar-mode-map "f" 'tar-extract) | ||
| 599 | (define-key tar-mode-map "\C-m" 'tar-extract) | ||
| 600 | (define-key tar-mode-map [mouse-2] 'tar-mouse-extract) | ||
| 601 | (define-key tar-mode-map "g" 'revert-buffer) | ||
| 602 | (define-key tar-mode-map "h" 'describe-mode) | ||
| 603 | (define-key tar-mode-map "n" 'tar-next-line) | ||
| 604 | (define-key tar-mode-map "\^N" 'tar-next-line) | ||
| 605 | (define-key tar-mode-map [down] 'tar-next-line) | ||
| 606 | (define-key tar-mode-map "o" 'tar-extract-other-window) | ||
| 607 | (define-key tar-mode-map "p" 'tar-previous-line) | ||
| 608 | (define-key tar-mode-map "\^P" 'tar-previous-line) | ||
| 609 | (define-key tar-mode-map [up] 'tar-previous-line) | ||
| 610 | (define-key tar-mode-map "R" 'tar-rename-entry) | ||
| 611 | (define-key tar-mode-map "u" 'tar-unflag) | ||
| 612 | (define-key tar-mode-map "v" 'tar-view) | ||
| 613 | (define-key tar-mode-map "x" 'tar-expunge) | ||
| 614 | (define-key tar-mode-map "\177" 'tar-unflag-backwards) | ||
| 615 | (define-key tar-mode-map "E" 'tar-extract-other-window) | ||
| 616 | (define-key tar-mode-map "M" 'tar-chmod-entry) | ||
| 617 | (define-key tar-mode-map "G" 'tar-chgrp-entry) | ||
| 618 | (define-key tar-mode-map "O" 'tar-chown-entry) | ||
| 619 | ;; Let mouse-1 follow the link. | ||
| 620 | (define-key tar-mode-map [follow-link] 'mouse-face) | ||
| 621 | |||
| 622 | ;; Make menu bar items. | ||
| 623 | |||
| 624 | ;; Get rid of the Edit menu bar item to save space. | ||
| 625 | (define-key tar-mode-map [menu-bar edit] 'undefined) | ||
| 626 | |||
| 627 | (define-key tar-mode-map [menu-bar immediate] | ||
| 628 | (cons "Immediate" (make-sparse-keymap "Immediate"))) | ||
| 629 | |||
| 630 | (define-key tar-mode-map [menu-bar immediate view] | ||
| 631 | '("View This File" . tar-view)) | ||
| 632 | (define-key tar-mode-map [menu-bar immediate display] | ||
| 633 | '("Display in Other Window" . tar-display-other-window)) | ||
| 634 | (define-key tar-mode-map [menu-bar immediate find-file-other-window] | ||
| 635 | '("Find in Other Window" . tar-extract-other-window)) | ||
| 636 | (define-key tar-mode-map [menu-bar immediate find-file] | ||
| 637 | '("Find This File" . tar-extract)) | ||
| 638 | |||
| 639 | (define-key tar-mode-map [menu-bar mark] | ||
| 640 | (cons "Mark" (make-sparse-keymap "Mark"))) | ||
| 641 | |||
| 642 | (define-key tar-mode-map [menu-bar mark unmark-all] | ||
| 643 | '("Unmark All" . tar-clear-modification-flags)) | ||
| 644 | (define-key tar-mode-map [menu-bar mark deletion] | ||
| 645 | '("Flag" . tar-flag-deleted)) | ||
| 646 | (define-key tar-mode-map [menu-bar mark unmark] | ||
| 647 | '("Unflag" . tar-unflag)) | ||
| 648 | |||
| 649 | (define-key tar-mode-map [menu-bar operate] | ||
| 650 | (cons "Operate" (make-sparse-keymap "Operate"))) | ||
| 651 | |||
| 652 | (define-key tar-mode-map [menu-bar operate chown] | ||
| 653 | '("Change Owner..." . tar-chown-entry)) | ||
| 654 | (define-key tar-mode-map [menu-bar operate chgrp] | ||
| 655 | '("Change Group..." . tar-chgrp-entry)) | ||
| 656 | (define-key tar-mode-map [menu-bar operate chmod] | ||
| 657 | '("Change Mode..." . tar-chmod-entry)) | ||
| 658 | (define-key tar-mode-map [menu-bar operate rename] | ||
| 659 | '("Rename to..." . tar-rename-entry)) | ||
| 660 | (define-key tar-mode-map [menu-bar operate copy] | ||
| 661 | '("Copy to..." . tar-copy)) | ||
| 662 | (define-key tar-mode-map [menu-bar operate expunge] | ||
| 663 | '("Expunge Marked Files" . tar-expunge)) | ||
| 664 | 670 | ||
| 665 | (define-minor-mode tar-subfile-mode | 671 | (define-minor-mode tar-subfile-mode |
| 666 | "Minor mode for editing an element of a tar-file. | 672 | "Minor mode for editing an element of a tar-file. |
diff --git a/lisp/term/lk201.el b/lisp/term/lk201.el index 23f4d0dbd2c..e1da0f6f1db 100644 --- a/lisp/term/lk201.el +++ b/lisp/term/lk201.el | |||
| @@ -1,75 +1,77 @@ | |||
| 1 | ;; -*- no-byte-compile: t -*- | 1 | ;; -*- no-byte-compile: t -*- |
| 2 | ;; Define function key sequences for DEC terminals. | 2 | ;; Define function key sequences for DEC terminals. |
| 3 | 3 | ||
| 4 | (defvar lk201-function-map (make-sparse-keymap) | 4 | (defvar lk201-function-map |
| 5 | "Function key definitions for DEC terminals.") | 5 | (let ((map (make-sparse-keymap))) |
| 6 | 6 | ||
| 7 | ;; Termcap or terminfo should set these. | 7 | ;; Termcap or terminfo should set these. |
| 8 | ;; (define-key lk201-function-map "\e[A" [up]) | 8 | ;; (define-key map "\e[A" [up]) |
| 9 | ;; (define-key lk201-function-map "\e[B" [down]) | 9 | ;; (define-key map "\e[B" [down]) |
| 10 | ;; (define-key lk201-function-map "\e[C" [right]) | 10 | ;; (define-key map "\e[C" [right]) |
| 11 | ;; (define-key lk201-function-map "\e[D" [left]) | 11 | ;; (define-key map "\e[D" [left]) |
| 12 | 12 | ||
| 13 | (define-key lk201-function-map "\e[1~" [find]) | 13 | (define-key map "\e[1~" [find]) |
| 14 | (define-key lk201-function-map "\e[2~" [insert]) | 14 | (define-key map "\e[2~" [insert]) |
| 15 | (define-key lk201-function-map "\e[3~" [delete]) | 15 | (define-key map "\e[3~" [delete]) |
| 16 | (define-key lk201-function-map "\e[4~" [select]) | 16 | (define-key map "\e[4~" [select]) |
| 17 | (define-key lk201-function-map "\e[5~" [prior]) | 17 | (define-key map "\e[5~" [prior]) |
| 18 | (define-key lk201-function-map "\e[6~" [next]) | 18 | (define-key map "\e[6~" [next]) |
| 19 | (define-key lk201-function-map "\e[11~" [f1]) | 19 | (define-key map "\e[11~" [f1]) |
| 20 | (define-key lk201-function-map "\e[12~" [f2]) | 20 | (define-key map "\e[12~" [f2]) |
| 21 | (define-key lk201-function-map "\e[13~" [f3]) | 21 | (define-key map "\e[13~" [f3]) |
| 22 | (define-key lk201-function-map "\e[14~" [f4]) | 22 | (define-key map "\e[14~" [f4]) |
| 23 | (define-key lk201-function-map "\e[15~" [f5]) | 23 | (define-key map "\e[15~" [f5]) |
| 24 | (define-key lk201-function-map "\e[17~" [f6]) | 24 | (define-key map "\e[17~" [f6]) |
| 25 | (define-key lk201-function-map "\e[18~" [f7]) | 25 | (define-key map "\e[18~" [f7]) |
| 26 | (define-key lk201-function-map "\e[19~" [f8]) | 26 | (define-key map "\e[19~" [f8]) |
| 27 | (define-key lk201-function-map "\e[20~" [f9]) | 27 | (define-key map "\e[20~" [f9]) |
| 28 | (define-key lk201-function-map "\e[21~" [f10]) | 28 | (define-key map "\e[21~" [f10]) |
| 29 | ;; Customarily F11 is used as the ESC key. | 29 | ;; Customarily F11 is used as the ESC key. |
| 30 | ;; The file that includes this one, takes care of that. | 30 | ;; The file that includes this one, takes care of that. |
| 31 | (define-key lk201-function-map "\e[23~" [f11]) | 31 | (define-key map "\e[23~" [f11]) |
| 32 | (define-key lk201-function-map "\e[24~" [f12]) | 32 | (define-key map "\e[24~" [f12]) |
| 33 | (define-key lk201-function-map "\e[25~" [f13]) | 33 | (define-key map "\e[25~" [f13]) |
| 34 | (define-key lk201-function-map "\e[26~" [f14]) | 34 | (define-key map "\e[26~" [f14]) |
| 35 | (define-key lk201-function-map "\e[28~" [help]) | 35 | (define-key map "\e[28~" [help]) |
| 36 | (define-key lk201-function-map "\e[29~" [menu]) | 36 | (define-key map "\e[29~" [menu]) |
| 37 | (define-key lk201-function-map "\e[31~" [f17]) | 37 | (define-key map "\e[31~" [f17]) |
| 38 | (define-key lk201-function-map "\e[32~" [f18]) | 38 | (define-key map "\e[32~" [f18]) |
| 39 | (define-key lk201-function-map "\e[33~" [f19]) | 39 | (define-key map "\e[33~" [f19]) |
| 40 | (define-key lk201-function-map "\e[34~" [f20]) | 40 | (define-key map "\e[34~" [f20]) |
| 41 | 41 | ||
| 42 | ;; Termcap or terminfo should set these. | 42 | ;; Termcap or terminfo should set these. |
| 43 | ;; (define-key lk201-function-map "\eOA" [up]) | 43 | ;; (define-key map "\eOA" [up]) |
| 44 | ;; (define-key lk201-function-map "\eOB" [down]) | 44 | ;; (define-key map "\eOB" [down]) |
| 45 | ;; (define-key lk201-function-map "\eOC" [right]) | 45 | ;; (define-key map "\eOC" [right]) |
| 46 | ;; (define-key lk201-function-map "\eOD" [left]) | 46 | ;; (define-key map "\eOD" [left]) |
| 47 | 47 | ||
| 48 | ;; Termcap or terminfo should set these, but doesn't properly. | 48 | ;; Termcap or terminfo should set these, but doesn't properly. |
| 49 | ;; Termcap sets these to k1-k4, which get mapped to f1-f4 in term.c | 49 | ;; Termcap sets these to k1-k4, which get mapped to f1-f4 in term.c |
| 50 | (define-key lk201-function-map "\eOP" [kp-f1]) | 50 | (define-key map "\eOP" [kp-f1]) |
| 51 | (define-key lk201-function-map "\eOQ" [kp-f2]) | 51 | (define-key map "\eOQ" [kp-f2]) |
| 52 | (define-key lk201-function-map "\eOR" [kp-f3]) | 52 | (define-key map "\eOR" [kp-f3]) |
| 53 | (define-key lk201-function-map "\eOS" [kp-f4]) | 53 | (define-key map "\eOS" [kp-f4]) |
| 54 | 54 | ||
| 55 | (define-key lk201-function-map "\eOI" [kp-tab]) | 55 | (define-key map "\eOI" [kp-tab]) |
| 56 | (define-key lk201-function-map "\eOj" [kp-multiply]) | 56 | (define-key map "\eOj" [kp-multiply]) |
| 57 | (define-key lk201-function-map "\eOk" [kp-add]) | 57 | (define-key map "\eOk" [kp-add]) |
| 58 | (define-key lk201-function-map "\eOl" [kp-separator]) | 58 | (define-key map "\eOl" [kp-separator]) |
| 59 | (define-key lk201-function-map "\eOM" [kp-enter]) | 59 | (define-key map "\eOM" [kp-enter]) |
| 60 | (define-key lk201-function-map "\eOm" [kp-subtract]) | 60 | (define-key map "\eOm" [kp-subtract]) |
| 61 | (define-key lk201-function-map "\eOn" [kp-decimal]) | 61 | (define-key map "\eOn" [kp-decimal]) |
| 62 | (define-key lk201-function-map "\eOo" [kp-divide]) | 62 | (define-key map "\eOo" [kp-divide]) |
| 63 | (define-key lk201-function-map "\eOp" [kp-0]) | 63 | (define-key map "\eOp" [kp-0]) |
| 64 | (define-key lk201-function-map "\eOq" [kp-1]) | 64 | (define-key map "\eOq" [kp-1]) |
| 65 | (define-key lk201-function-map "\eOr" [kp-2]) | 65 | (define-key map "\eOr" [kp-2]) |
| 66 | (define-key lk201-function-map "\eOs" [kp-3]) | 66 | (define-key map "\eOs" [kp-3]) |
| 67 | (define-key lk201-function-map "\eOt" [kp-4]) | 67 | (define-key map "\eOt" [kp-4]) |
| 68 | (define-key lk201-function-map "\eOu" [kp-5]) | 68 | (define-key map "\eOu" [kp-5]) |
| 69 | (define-key lk201-function-map "\eOv" [kp-6]) | 69 | (define-key map "\eOv" [kp-6]) |
| 70 | (define-key lk201-function-map "\eOw" [kp-7]) | 70 | (define-key map "\eOw" [kp-7]) |
| 71 | (define-key lk201-function-map "\eOx" [kp-8]) | 71 | (define-key map "\eOx" [kp-8]) |
| 72 | (define-key lk201-function-map "\eOy" [kp-9]) | 72 | (define-key map "\eOy" [kp-9]) |
| 73 | map) | ||
| 74 | "Function key definitions for DEC terminals.") | ||
| 73 | 75 | ||
| 74 | (defun terminal-init-lk201 () | 76 | (defun terminal-init-lk201 () |
| 75 | ;; Use inheritance to let the main keymap override these defaults. | 77 | ;; Use inheritance to let the main keymap override these defaults. |
diff --git a/lisp/textmodes/bib-mode.el b/lisp/textmodes/bib-mode.el index 728f42779bf..17ddd1de954 100644 --- a/lisp/textmodes/bib-mode.el +++ b/lisp/textmodes/bib-mode.el | |||
| @@ -47,11 +47,14 @@ | |||
| 47 | :type 'file | 47 | :type 'file |
| 48 | :group 'bib) | 48 | :group 'bib) |
| 49 | 49 | ||
| 50 | (defvar bib-mode-map (copy-keymap text-mode-map)) | 50 | (defvar bib-mode-map |
| 51 | (define-key bib-mode-map "\C-M" 'return-key-bib) | 51 | (let ((map (make-sparse-keymap))) |
| 52 | (define-key bib-mode-map "\C-c\C-u" 'unread-bib) | 52 | (set-keymap-parent map text-mode-map) |
| 53 | (define-key bib-mode-map "\C-c\C-@" 'mark-bib) | 53 | (define-key map "\C-M" 'return-key-bib) |
| 54 | (define-key bib-mode-map "\e`" 'abbrev-mode) | 54 | (define-key map "\C-c\C-u" 'unread-bib) |
| 55 | (define-key map "\C-c\C-@" 'mark-bib) | ||
| 56 | (define-key map "\e`" 'abbrev-mode) | ||
| 57 | map)) | ||
| 55 | 58 | ||
| 56 | (defun addbib () | 59 | (defun addbib () |
| 57 | "Set up editor to add to troff bibliography file specified | 60 | "Set up editor to add to troff bibliography file specified |
diff --git a/lisp/textmodes/enriched.el b/lisp/textmodes/enriched.el index f6677bf458e..357b9d6c94e 100644 --- a/lisp/textmodes/enriched.el +++ b/lisp/textmodes/enriched.el | |||
| @@ -164,6 +164,24 @@ The value is a list of \(VAR VALUE VAR VALUE...).") | |||
| 164 | (defvar enriched-rerun-flag nil) | 164 | (defvar enriched-rerun-flag nil) |
| 165 | 165 | ||
| 166 | ;;; | 166 | ;;; |
| 167 | ;;; Keybindings | ||
| 168 | ;;; | ||
| 169 | |||
| 170 | (defvar enriched-mode-map | ||
| 171 | (let ((map (make-sparse-keymap))) | ||
| 172 | (define-key map [remap move-beginning-of-line] 'beginning-of-line-text) | ||
| 173 | (define-key map "\C-m" 'reindent-then-newline-and-indent) | ||
| 174 | (define-key map | ||
| 175 | [remap newline-and-indent] 'reindent-then-newline-and-indent) | ||
| 176 | (define-key map "\M-j" 'facemenu-justification-menu) | ||
| 177 | (define-key map "\M-S" 'set-justification-center) | ||
| 178 | (define-key map "\C-x\t" 'increase-left-margin) | ||
| 179 | (define-key map "\C-c[" 'set-left-margin) | ||
| 180 | (define-key map "\C-c]" 'set-right-margin) | ||
| 181 | map) | ||
| 182 | "Keymap for Enriched mode.") | ||
| 183 | |||
| 184 | ;;; | ||
| 167 | ;;; Define the mode | 185 | ;;; Define the mode |
| 168 | ;;; | 186 | ;;; |
| 169 | 187 | ||
| @@ -184,6 +202,8 @@ Commands: | |||
| 184 | :group 'enriched :lighter " Enriched" | 202 | :group 'enriched :lighter " Enriched" |
| 185 | (cond ((null enriched-mode) | 203 | (cond ((null enriched-mode) |
| 186 | ;; Turn mode off | 204 | ;; Turn mode off |
| 205 | (remove-hook 'change-major-mode-hook | ||
| 206 | 'enriched-before-change-major-mode 'local) | ||
| 187 | (setq buffer-file-format (delq 'text/enriched buffer-file-format)) | 207 | (setq buffer-file-format (delq 'text/enriched buffer-file-format)) |
| 188 | ;; restore old variable values | 208 | ;; restore old variable values |
| 189 | (while enriched-old-bindings | 209 | (while enriched-old-bindings |
| @@ -199,6 +219,8 @@ Commands: | |||
| 199 | nil) | 219 | nil) |
| 200 | 220 | ||
| 201 | (t ; Turn mode on | 221 | (t ; Turn mode on |
| 222 | (add-hook 'change-major-mode-hook | ||
| 223 | 'enriched-before-change-major-mode nil 'local) | ||
| 202 | (add-to-list 'buffer-file-format 'text/enriched) | 224 | (add-to-list 'buffer-file-format 'text/enriched) |
| 203 | ;; Save old variable values before we change them. | 225 | ;; Save old variable values before we change them. |
| 204 | ;; These will be restored if we exit Enriched mode. | 226 | ;; These will be restored if we exit Enriched mode. |
| @@ -226,8 +248,6 @@ Commands: | |||
| 226 | (while enriched-old-bindings | 248 | (while enriched-old-bindings |
| 227 | (set (pop enriched-old-bindings) (pop enriched-old-bindings))))) | 249 | (set (pop enriched-old-bindings) (pop enriched-old-bindings))))) |
| 228 | 250 | ||
| 229 | (add-hook 'change-major-mode-hook 'enriched-before-change-major-mode) | ||
| 230 | |||
| 231 | (defun enriched-after-change-major-mode () | 251 | (defun enriched-after-change-major-mode () |
| 232 | (when enriched-mode | 252 | (when enriched-mode |
| 233 | (let ((enriched-rerun-flag t)) | 253 | (let ((enriched-rerun-flag t)) |
| @@ -235,30 +255,8 @@ Commands: | |||
| 235 | 255 | ||
| 236 | (add-hook 'after-change-major-mode-hook 'enriched-after-change-major-mode) | 256 | (add-hook 'after-change-major-mode-hook 'enriched-after-change-major-mode) |
| 237 | 257 | ||
| 238 | ;;; | ||
| 239 | ;;; Keybindings | ||
| 240 | ;;; | ||
| 241 | |||
| 242 | (defvar enriched-mode-map nil | ||
| 243 | "Keymap for Enriched mode.") | ||
| 244 | 258 | ||
| 245 | (if (null enriched-mode-map) | 259 | (fset 'enriched-mode-map enriched-mode-map) |
| 246 | (fset 'enriched-mode-map (setq enriched-mode-map (make-sparse-keymap)))) | ||
| 247 | |||
| 248 | (if (not (assq 'enriched-mode minor-mode-map-alist)) | ||
| 249 | (setq minor-mode-map-alist | ||
| 250 | (cons (cons 'enriched-mode enriched-mode-map) | ||
| 251 | minor-mode-map-alist))) | ||
| 252 | |||
| 253 | (define-key enriched-mode-map [remap move-beginning-of-line] 'beginning-of-line-text) | ||
| 254 | (define-key enriched-mode-map "\C-m" 'reindent-then-newline-and-indent) | ||
| 255 | (define-key enriched-mode-map | ||
| 256 | [remap newline-and-indent] 'reindent-then-newline-and-indent) | ||
| 257 | (define-key enriched-mode-map "\M-j" 'facemenu-justification-menu) | ||
| 258 | (define-key enriched-mode-map "\M-S" 'set-justification-center) | ||
| 259 | (define-key enriched-mode-map "\C-x\t" 'increase-left-margin) | ||
| 260 | (define-key enriched-mode-map "\C-c[" 'set-left-margin) | ||
| 261 | (define-key enriched-mode-map "\C-c]" 'set-right-margin) | ||
| 262 | 260 | ||
| 263 | ;;; | 261 | ;;; |
| 264 | ;;; Some functions dealing with text-properties, especially indentation | 262 | ;;; Some functions dealing with text-properties, especially indentation |