Make bindings--define-key obsolete

It used to be like 'define-key', but was used for making pure copies of
as much of a menu's data as possible.  With purespace now gone, it can
be replaced by 'define-key'.

* lisp/bindings.el (bindings--define-key): Make into obsolete
alias for 'define-key'.  Update all callers.
This commit is contained in:
Stefan Kangas 2024-08-22 00:09:51 +02:00
parent 5b471384d1
commit 1de87314c4
7 changed files with 444 additions and 465 deletions

View file

@ -400,29 +400,6 @@ the symbol `mode-line-format-right-align' is processed by
;;;###autoload
(put 'mode-line-format-right-align 'risky-local-variable t)
(defun bindings--define-key (map key item)
"Define KEY in keymap MAP according to ITEM from a menu.
This is like `define-key', but it takes the definition from the
specified menu item, and makes pure copies of as much as possible
of the menu's data."
(declare (indent 2))
(define-key map key
(cond
((not (consp item)) item) ;Not sure that could be other than a symbol.
;; Keymaps can't be made pure otherwise users can't remove/add elements
;; from/to them any more.
((keymapp item) item)
((stringp (car item))
(if (keymapp (cdr item))
(cons (purecopy (car item)) (cdr item))
(purecopy item)))
((eq 'menu-item (car item))
(if (keymapp (nth 2 item))
`(menu-item ,(purecopy (nth 1 item)) ,(nth 2 item)
,@(purecopy (nthcdr 3 item)))
(purecopy item)))
(t (message "non-menu-item: %S" item) item))))
(defvar mode-line-mode-menu (make-sparse-keymap "Minor Modes") "\
Menu of mode operations in the mode line.")
@ -454,11 +431,11 @@ a menu, so this function is not useful for non-menu keymaps."
(defvar mode-line-major-mode-keymap
(let ((map (make-sparse-keymap)))
(bindings--define-key map [mode-line down-mouse-1]
(define-key map [mode-line down-mouse-1]
`(menu-item "Menu Bar" ignore
:filter ,(lambda (_) (mouse-menu-major-mode-map))))
(define-key map [mode-line mouse-2] 'describe-mode)
(bindings--define-key map [mode-line down-mouse-3]
(define-key map [mode-line down-mouse-3]
`(menu-item "Minor Modes" ,mode-line-mode-menu
:filter bindings--sort-menu-keymap))
map) "\
@ -509,15 +486,15 @@ mouse-3: Toggle minor modes"
(defvar mode-line-column-line-number-mode-map
(let ((map (make-sparse-keymap))
(menu-map (make-sparse-keymap "Toggle Line and Column Number Display")))
(bindings--define-key menu-map [size-indication-mode]
(define-key menu-map [size-indication-mode]
'(menu-item "Display Size Indication" size-indication-mode
:help "Toggle displaying a size indication in the mode-line"
:button (:toggle . size-indication-mode)))
(bindings--define-key menu-map [line-number-mode]
(define-key menu-map [line-number-mode]
'(menu-item "Display Line Numbers" line-number-mode
:help "Toggle displaying line numbers in the mode-line"
:button (:toggle . line-number-mode)))
(bindings--define-key menu-map [column-number-mode]
(define-key menu-map [column-number-mode]
'(menu-item "Display Column Numbers" column-number-mode
:help "Toggle displaying column numbers in the mode-line"
:button (:toggle . column-number-mode)))
@ -774,54 +751,54 @@ meaningful if it refers to a lexically bound variable."
;; Use mode-line-mode-menu for local minor-modes only.
;; Global ones can go on the menubar (Options --> Show/Hide).
(bindings--define-key mode-line-mode-menu [overwrite-mode]
(define-key mode-line-mode-menu [overwrite-mode]
'(menu-item "Overwrite (Ovwrt)" overwrite-mode
:help "Overwrite mode: typed characters replace existing text"
:button (:toggle . overwrite-mode)))
(bindings--define-key mode-line-mode-menu [outline-minor-mode]
(define-key mode-line-mode-menu [outline-minor-mode]
'(menu-item "Outline (Outl)" outline-minor-mode
;; XXX: This needs a good, brief description.
:help ""
:button (:toggle . (bound-and-true-p outline-minor-mode))))
(bindings--define-key mode-line-mode-menu [highlight-changes-mode]
(define-key mode-line-mode-menu [highlight-changes-mode]
'(menu-item "Highlight changes (Chg)" highlight-changes-mode
:help "Show changes in the buffer in a distinctive color"
:button (:toggle . (bound-and-true-p highlight-changes-mode))))
(bindings--define-key mode-line-mode-menu [hide-ifdef-mode]
(define-key mode-line-mode-menu [hide-ifdef-mode]
'(menu-item "Hide ifdef (Ifdef)" hide-ifdef-mode
:help "Show/Hide code within #ifdef constructs"
:button (:toggle . (bound-and-true-p hide-ifdef-mode))))
(bindings--define-key mode-line-mode-menu [glasses-mode]
(define-key mode-line-mode-menu [glasses-mode]
'(menu-item "Glasses (o^o)" glasses-mode
:help "Insert virtual separators to make long identifiers easy to read"
:button (:toggle . (bound-and-true-p glasses-mode))))
(bindings--define-key mode-line-mode-menu [font-lock-mode]
(define-key mode-line-mode-menu [font-lock-mode]
'(menu-item "Font Lock" font-lock-mode
:help "Syntax coloring"
:button (:toggle . font-lock-mode)))
(bindings--define-key mode-line-mode-menu [flyspell-mode]
(define-key mode-line-mode-menu [flyspell-mode]
'(menu-item "Flyspell (Fly)" flyspell-mode
:help "Spell checking on the fly"
:button (:toggle . (bound-and-true-p flyspell-mode))))
(bindings--define-key mode-line-mode-menu [completion-preview-mode]
(define-key mode-line-mode-menu [completion-preview-mode]
'(menu-item "Completion Preview (CP)" completion-preview-mode
:help "Show preview of completion suggestions as you type"
:enable completion-at-point-functions
:button (:toggle . (bound-and-true-p completion-preview-mode))))
(bindings--define-key mode-line-mode-menu [auto-revert-tail-mode]
(define-key mode-line-mode-menu [auto-revert-tail-mode]
'(menu-item "Auto revert tail (Tail)" auto-revert-tail-mode
:help "Revert the tail of the buffer when the file on disk grows"
:enable (buffer-file-name)
:button (:toggle . (bound-and-true-p auto-revert-tail-mode))))
(bindings--define-key mode-line-mode-menu [auto-revert-mode]
(define-key mode-line-mode-menu [auto-revert-mode]
'(menu-item "Auto revert (ARev)" auto-revert-mode
:help "Revert the buffer when the file on disk changes"
:button (:toggle . (bound-and-true-p auto-revert-mode))))
(bindings--define-key mode-line-mode-menu [auto-fill-mode]
(define-key mode-line-mode-menu [auto-fill-mode]
'(menu-item "Auto fill (Fill)" auto-fill-mode
:help "Automatically insert new lines"
:button (:toggle . auto-fill-function)))
(bindings--define-key mode-line-mode-menu [abbrev-mode]
(define-key mode-line-mode-menu [abbrev-mode]
'(menu-item "Abbrev (Abbrev)" abbrev-mode
:help "Automatically expand abbreviations"
:button (:toggle . abbrev-mode)))
@ -1648,6 +1625,8 @@ if `inhibit-field-text-motion' is non-nil."
;; Text conversion
(define-key global-map [text-conversion] 'analyze-text-conversion)
(define-obsolete-function-alias 'bindings--define-key #'define-key "31.1")
;; Don't look for autoload cookies in this file.
;; Local Variables:
;; no-update-autoloads: t

View file

@ -2561,37 +2561,37 @@ strings returned are not."
;;;###autoload
(defvar menu-bar-bookmark-map
(let ((map (make-sparse-keymap "Bookmark functions")))
(bindings--define-key map [load]
(define-key map [load]
'(menu-item "Load a Bookmark File..." bookmark-load
:help "Load bookmarks from a bookmark file)"))
(bindings--define-key map [write]
(define-key map [write]
'(menu-item "Save Bookmarks As..." bookmark-write
:help "Write bookmarks to a file (reading the file name with the minibuffer)"))
(bindings--define-key map [save]
(define-key map [save]
'(menu-item "Save Bookmarks" bookmark-save
:help "Save currently defined bookmarks"))
(bindings--define-key map [edit]
(define-key map [edit]
'(menu-item "Edit Bookmark List" bookmark-bmenu-list
:help "Display a list of existing bookmarks"))
(bindings--define-key map [delete]
(define-key map [delete]
'(menu-item "Delete Bookmark..." bookmark-delete
:help "Delete a bookmark from the bookmark list"))
(bindings--define-key map [delete-all]
(define-key map [delete-all]
'(menu-item "Delete all Bookmarks..." bookmark-delete-all
:help "Delete all bookmarks from the bookmark list"))
(bindings--define-key map [rename]
(define-key map [rename]
'(menu-item "Rename Bookmark..." bookmark-rename
:help "Change the name of a bookmark"))
(bindings--define-key map [locate]
(define-key map [locate]
'(menu-item "Insert Location..." bookmark-locate
:help "Insert the name of the file associated with a bookmark"))
(bindings--define-key map [insert]
(define-key map [insert]
'(menu-item "Insert Contents..." bookmark-insert
:help "Insert the text of the file pointed to by a bookmark"))
(bindings--define-key map [set]
(define-key map [set]
'(menu-item "Set Bookmark..." bookmark-set
:help "Set a bookmark named inside a file."))
(bindings--define-key map [jump]
(define-key map [jump]
'(menu-item "Jump to Bookmark..." bookmark-jump
:help "Jump to a bookmark (a point in some file)"))
map))

View file

@ -59,97 +59,97 @@
(defvar describe-language-environment-map
(let ((map (make-sparse-keymap "Describe Language Environment")))
(bindings--define-key map
(define-key map
[Default] '(menu-item "Default" describe-specified-language-support))
map))
(defvar setup-language-environment-map
(let ((map (make-sparse-keymap "Set Language Environment")))
(bindings--define-key map
(define-key map
[Default] '(menu-item "Default" setup-specified-language-environment))
map))
(defvar set-coding-system-map
(let ((map (make-sparse-keymap "Set Coding System")))
(bindings--define-key map [set-buffer-process-coding-system]
(define-key map [set-buffer-process-coding-system]
'(menu-item "For I/O with Subprocess" set-buffer-process-coding-system
:visible (fboundp 'make-process)
:enable (get-buffer-process (current-buffer))
:help "How to en/decode I/O from/to subprocess connected to this buffer"))
(bindings--define-key map [set-next-selection-coding-system]
(define-key map [set-next-selection-coding-system]
'(menu-item "For Next X Selection" set-next-selection-coding-system
:visible (display-selections-p)
:help "How to en/decode next selection/clipboard operation"))
(bindings--define-key map [set-selection-coding-system]
(define-key map [set-selection-coding-system]
'(menu-item "For X Selections/Clipboard" set-selection-coding-system
:visible (display-selections-p)
:help "How to en/decode data to/from selection/clipboard"))
(bindings--define-key map [separator-3] menu-bar-separator)
(bindings--define-key map [set-terminal-coding-system]
(define-key map [separator-3] menu-bar-separator)
(define-key map [set-terminal-coding-system]
'(menu-item "For Terminal" set-terminal-coding-system
:enable (null (memq initial-window-system '(x w32 ns haiku pgtk
android)))
:help "How to encode terminal output"))
(bindings--define-key map [set-keyboard-coding-system]
(define-key map [set-keyboard-coding-system]
'(menu-item "For Keyboard" set-keyboard-coding-system
:help "How to decode keyboard input"))
(bindings--define-key map [separator-2] menu-bar-separator)
(bindings--define-key map [set-file-name-coding-system]
(define-key map [separator-2] menu-bar-separator)
(define-key map [set-file-name-coding-system]
'(menu-item "For File Name" set-file-name-coding-system
:help "How to decode/encode file names"))
(bindings--define-key map [revert-buffer-with-coding-system]
(define-key map [revert-buffer-with-coding-system]
'(menu-item "For Reverting This File Now"
revert-buffer-with-coding-system
:enable buffer-file-name
:help "Revisit this file immediately using specified coding system"))
(bindings--define-key map [set-buffer-file-coding-system]
(define-key map [set-buffer-file-coding-system]
'(menu-item "For Saving This Buffer" set-buffer-file-coding-system
:help "How to encode this buffer when saved"))
(bindings--define-key map [separator-1] menu-bar-separator)
(bindings--define-key map [universal-coding-system-argument]
(define-key map [separator-1] menu-bar-separator)
(define-key map [universal-coding-system-argument]
'(menu-item "For Next Command" universal-coding-system-argument
:help "Coding system to be used by next command"))
map))
(defvar mule-menu-keymap
(let ((map (make-sparse-keymap "Mule (Multilingual Environment)")))
(bindings--define-key map [mule-diag]
(define-key map [mule-diag]
'(menu-item "Show All Multilingual Settings" mule-diag
:help "Display multilingual environment settings"))
(bindings--define-key map [list-character-sets]
(define-key map [list-character-sets]
'(menu-item "List Character Sets" list-character-sets
:help "Show table of available character sets"))
(bindings--define-key map [describe-coding-system]
(define-key map [describe-coding-system]
'(menu-item "Describe Coding System..." describe-coding-system))
(bindings--define-key map [describe-input-method]
(define-key map [describe-input-method]
'(menu-item "Describe Input Method..." describe-input-method
:help "Keyboard layout for a specific input method"))
(bindings--define-key map [describe-language-environment]
(define-key map [describe-language-environment]
`(menu-item "Describe Language Environment"
,describe-language-environment-map
:help "Show multilingual settings for a specific language"))
(bindings--define-key map [separator-coding-system] menu-bar-separator)
(bindings--define-key map [view-hello-file]
(define-key map [separator-coding-system] menu-bar-separator)
(define-key map [view-hello-file]
'(menu-item "Show Multilingual Sample Text" view-hello-file
:enable (file-readable-p
(expand-file-name "HELLO" data-directory))
:help "Demonstrate various character sets"))
(bindings--define-key map [set-various-coding-system]
(define-key map [set-various-coding-system]
`(menu-item "Set Coding Systems" ,set-coding-system-map))
(bindings--define-key map [separator-input-method] menu-bar-separator)
(bindings--define-key map [activate-transient-input-method]
(define-key map [separator-input-method] menu-bar-separator)
(define-key map [activate-transient-input-method]
'(menu-item "Transient Input Method" activate-transient-input-method))
(bindings--define-key map [set-input-method]
(define-key map [set-input-method]
'(menu-item "Select Input Method..." set-input-method))
(bindings--define-key map [toggle-input-method]
(define-key map [toggle-input-method]
'(menu-item "Toggle Input Method" toggle-input-method))
(bindings--define-key map [separator-mule] menu-bar-separator)
(bindings--define-key map [set-language-environment]
(define-key map [separator-mule] menu-bar-separator)
(define-key map [set-language-environment]
`(menu-item "Set Language Environment" ,setup-language-environment-map))
map)
"Keymap for Mule (Multilingual environment) menu specific commands.")

File diff suppressed because it is too large Load diff

View file

@ -1315,7 +1315,7 @@ a previously found match."
(define-key map "r" 'occur-rename-buffer)
(define-key map "c" 'clone-buffer)
(define-key map "\C-c\C-f" 'next-error-follow-minor-mode)
(bindings--define-key map [menu-bar occur] (cons "Occur" occur-menu-map))
(define-key map [menu-bar occur] (cons "Occur" occur-menu-map))
map)
"Keymap for `occur-mode'.")
@ -1368,7 +1368,7 @@ Alternatively, click \\[occur-mode-mouse-goto] on an item to go to it.
(define-key map "\C-c\C-c" 'occur-cease-edit)
(define-key map "\C-o" 'occur-mode-display-occurrence)
(define-key map "\C-c\C-f" 'next-error-follow-minor-mode)
(bindings--define-key map [menu-bar occur] (cons "Occur" occur-menu-map))
(define-key map [menu-bar occur] (cons "Occur" occur-menu-map))
map)
"Keymap for `occur-edit-mode'.")

View file

@ -830,15 +830,15 @@ See the documentation of `create-fontset-from-fontset-spec' for the format.")
(setq menu-bar-final-items '(buffer services hide-app quit))
;; If running under GNUstep, "Help" is moved and renamed "Info".
(bindings--define-key global-map [menu-bar help-menu]
(define-key global-map [menu-bar help-menu]
(cons "Info" menu-bar-help-menu))
(bindings--define-key global-map [menu-bar quit]
(define-key global-map [menu-bar quit]
'(menu-item "Quit" save-buffers-kill-emacs
:help "Save unsaved buffers, then exit"))
(bindings--define-key global-map [menu-bar hide-app]
(define-key global-map [menu-bar hide-app]
'(menu-item "Hide" ns-do-hide-emacs
:help "Hide Emacs"))
(bindings--define-key global-map [menu-bar services]
(define-key global-map [menu-bar services]
(cons "Services" (make-sparse-keymap "Services")))))

View file

@ -940,76 +940,76 @@ In the latter case, VC mode is deactivated for this buffer."
(let ((map (make-sparse-keymap "Version Control")))
;;(define-key map [show-files]
;; '("Show Files under VC" . (vc-directory t)))
(bindings--define-key map [vc-retrieve-tag]
(define-key map [vc-retrieve-tag]
'(menu-item "Retrieve Tag" vc-retrieve-tag
:help "Retrieve tagged version or branch"))
(bindings--define-key map [vc-create-tag]
(define-key map [vc-create-tag]
'(menu-item "Create Tag" vc-create-tag
:help "Create version tag"))
(bindings--define-key map [vc-print-branch-log]
(define-key map [vc-print-branch-log]
'(menu-item "Show Branch History..." vc-print-branch-log
:help "List the change log for another branch"))
(bindings--define-key map [vc-switch-branch]
(define-key map [vc-switch-branch]
'(menu-item "Switch Branch..." vc-switch-branch
:help "Switch to another branch"))
(bindings--define-key map [vc-create-branch]
(define-key map [vc-create-branch]
'(menu-item "Create Branch..." vc-create-branch
:help "Make a new branch"))
(bindings--define-key map [separator1] menu-bar-separator)
(bindings--define-key map [vc-annotate]
(define-key map [separator1] menu-bar-separator)
(define-key map [vc-annotate]
'(menu-item "Annotate" vc-annotate
:help "Display the edit history of the current file using colors"))
(bindings--define-key map [vc-rename-file]
(define-key map [vc-rename-file]
'(menu-item "Rename File" vc-rename-file
:help "Rename file"))
(bindings--define-key map [vc-revision-other-window]
(define-key map [vc-revision-other-window]
'(menu-item "Show Other Version" vc-revision-other-window
:help "Visit another version of the current file in another window"))
(bindings--define-key map [vc-diff]
(define-key map [vc-diff]
'(menu-item "Compare with Base Version" vc-diff
:help "Compare file set with the base version"))
(bindings--define-key map [vc-root-diff]
(define-key map [vc-root-diff]
'(menu-item "Compare Tree with Base Version" vc-root-diff
:help "Compare current tree with the base version"))
(bindings--define-key map [vc-update-change-log]
(define-key map [vc-update-change-log]
'(menu-item "Update ChangeLog" vc-update-change-log
:help "Find change log file and add entries from recent version control logs"))
(bindings--define-key map [vc-log-out]
(define-key map [vc-log-out]
'(menu-item "Show Outgoing Log" vc-log-outgoing
:help "Show a log of changes that will be sent with a push operation"))
(bindings--define-key map [vc-log-in]
(define-key map [vc-log-in]
'(menu-item "Show Incoming Log" vc-log-incoming
:help "Show a log of changes that will be received with a pull operation"))
(bindings--define-key map [vc-print-log]
(define-key map [vc-print-log]
'(menu-item "Show History" vc-print-log
:help "List the change log of the current file set in a window"))
(bindings--define-key map [vc-print-root-log]
(define-key map [vc-print-root-log]
'(menu-item "Show Top of the Tree History " vc-print-root-log
:help "List the change log for the current tree in a window"))
(bindings--define-key map [separator2] menu-bar-separator)
(bindings--define-key map [vc-insert-header]
(define-key map [separator2] menu-bar-separator)
(define-key map [vc-insert-header]
'(menu-item "Insert Header" vc-insert-headers
:help "Insert headers into a file for use with a version control system."))
(bindings--define-key map [vc-revert]
(define-key map [vc-revert]
'(menu-item "Revert to Base Version" vc-revert
:help "Revert working copies of the selected file set to their repository contents"))
;; TODO Only :enable if (vc-find-backend-function backend 'push)
(bindings--define-key map [vc-push]
(define-key map [vc-push]
'(menu-item "Push Changes" vc-push
:help "Push the current branch's changes"))
(bindings--define-key map [vc-update]
(define-key map [vc-update]
'(menu-item "Update to Latest Version" vc-update
:help "Update the current fileset's files to their tip revisions"))
(bindings--define-key map [vc-next-action]
(define-key map [vc-next-action]
'(menu-item "Check In/Out" vc-next-action
:help "Do the next logical version control operation on the current fileset"))
(bindings--define-key map [vc-register]
(define-key map [vc-register]
'(menu-item "Register" vc-register
:help "Register file set into a version control system"))
(bindings--define-key map [vc-ignore]
(define-key map [vc-ignore]
'(menu-item "Ignore File..." vc-ignore
:help "Ignore a file under current version control system"))
(bindings--define-key map [vc-dir-root]
(define-key map [vc-dir-root]
'(menu-item "VC Dir" vc-dir-root
:help "Show the VC status of the repository"))
map))