Function: tutorial--detailed-help
tutorial--detailed-help is a byte-compiled function defined in
tutorial.el.gz.
Signature
(tutorial--detailed-help BUTTON)
Documentation
Give detailed help about changed keys.
Source Code
;; Defined in /usr/src/emacs/lisp/tutorial.el.gz
(defun tutorial--detailed-help (button)
"Give detailed help about changed keys."
(with-output-to-temp-buffer (help-buffer)
(help-setup-xref (list #'tutorial--detailed-help button)
(called-interactively-p 'interactive))
(with-current-buffer (help-buffer)
(let* ((tutorial-buffer (button-get button 'tutorial-buffer))
(explain-key-desc (button-get button 'explain-key-desc))
(changed-keys (with-current-buffer tutorial-buffer
(save-excursion
(goto-char (point-min))
(tutorial--find-changed-keys
tutorial--default-keys)))))
(when changed-keys
(insert
"The following key bindings used in the tutorial have been changed
from the Emacs default:\n\n" )
(let ((frm " %-14s %-27s %-16s\n"))
(insert (format frm
"Standard Key" "Command" "In Your Emacs")))
(dolist (tk changed-keys)
(let* ((def-fun (nth 1 tk))
(key (nth 0 tk))
(def-fun-txt (nth 2 tk))
(where (nth 3 tk))
(remark (nth 4 tk))
(key-txt (key-description key))
(key-fun (with-current-buffer tutorial-buffer (key-binding key))))
(unless (eq def-fun key-fun)
;; Insert key binding description:
(when (string= key-txt explain-key-desc)
(put-text-property 0 (length key-txt)
'face 'tutorial-warning-face key-txt))
(insert " " key-txt " ")
(indent-to 18)
;; Insert a link describing the old binding:
(insert-button def-fun-txt
'value def-fun
'action
(lambda (button) (interactive)
(describe-function
(button-get button 'value)))
'follow-link t)
(indent-to 45)
(when (listp where)
(setq where "list"))
;; Tell where the old binding is now:
(insert (format " %-16s "
(if (string= "" where)
(format "M-x %s" def-fun-txt)
where)))
;; Insert a link with more information, for example
;; current binding and keymap or information about
;; cua-mode replacements:
(insert-button (car remark)
'action
(lambda (b) (interactive)
(let ((value (button-get b 'value)))
(tutorial--describe-nonstandard-key value)))
'value (cdr remark)
'follow-link t)
(insert "\n")))))
(insert "
It is OK to change key bindings, but changed bindings do not
correspond to what the tutorial says.\n\n")
(help-print-return-message)))))