Function: rst-define-key
rst-define-key is a byte-compiled function defined in rst.el.gz.
Signature
(rst-define-key KEYMAP KEY DEF &rest DEPRECATED)
Documentation
Bind like define-key but add deprecated key definitions.
KEYMAP, KEY, and DEF are as in define-key. DEPRECATED key
definitions should be in vector notation. These are defined
as well but give an additional message.
Source Code
;; Defined in /usr/src/emacs/lisp/textmodes/rst.el.gz
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Mode definition
(defun rst-define-key (keymap key def &rest deprecated)
;; testcover: ok.
"Bind like `define-key' but add deprecated key definitions.
KEYMAP, KEY, and DEF are as in `define-key'. DEPRECATED key
definitions should be in vector notation. These are defined
as well but give an additional message."
(define-key keymap key def)
(when deprecated
(let* ((command-name (symbol-name def))
(forwarder-function-name
(if (string-match "^rst-\\(.*\\)$" command-name)
(concat "rst-deprecated-"
(match-string 1 command-name))
(error "Not an RST command: %s" command-name)))
(forwarder-function (intern forwarder-function-name)))
(unless (fboundp forwarder-function)
(defalias forwarder-function
(lambda ()
(:documentation
(format "Deprecated binding for %s, use \\[%s] instead."
def def))
(interactive)
(call-interactively def)
(message "[Deprecated use of key %s; use key %s instead]"
(key-description (this-command-keys))
(key-description key)))))
(dolist (dep-key deprecated)
(define-key keymap dep-key forwarder-function)))))