From ff3453e4d171f566fc372a3edea912afee645813 Mon Sep 17 00:00:00 2001 From: Dave Love Date: Mon, 6 Apr 1998 09:56:55 +0000 Subject: [PATCH] (help-make-xrefs): Grok commands in keymap table expansions. (help-xref-button): Simplify. (help-make-xrefs): Set overriding keymap properly. --- lisp/help.el | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) diff --git a/lisp/help.el b/lisp/help.el index bef91749235..2f28e53796e 100644 --- a/lisp/help.el +++ b/lisp/help.el @@ -937,7 +937,29 @@ that." "\\ (move-to-column col) 0) + (looking-at "\\(\\sw\\|\\s_\\)+$")) + ;; + (let ((sym (intern-soft (match-string 0)))) + (if (fboundp sym) + (help-xref-button + 0 #'describe-function sym)))) + t) + (zerop (forward-line)) + (move-to-column 0))))))) (set-syntax-table stab)) ;; Make a back-reference in this buffer if appropriate. (when help-xref-stack @@ -951,6 +973,7 @@ that." (set (make-local-variable 'minor-mode-overriding-map-alist) (list (cons 'view-mode (let ((map (make-sparse-keymap))) + (set-keymap-parent map view-mode-map) (define-key map "\r" 'help-follow) map)))) (set-buffer-modified-p old-modified)))) @@ -962,19 +985,17 @@ MATCH-NUMBER is the subexpression of interest in the last matched regexp. FUNCTION is a function to invoke when the button is activated, applied to DATA. DATA may be a single value or a list. See `help-make-xrefs'." - (put-text-property (match-beginning match-number) - (match-end match-number) - 'mouse-face 'highlight) - (if help-highlight-p - (put-text-property (match-beginning match-number) - (match-end match-number) - 'face help-highlight-face)) - (put-text-property (match-beginning match-number) + (add-text-properties (match-beginning match-number) (match-end match-number) + (list 'mouse-face 'highlight 'help-xref (cons function (if (listp data) data (list data))))) + (if help-highlight-p + (put-text-property (match-beginning match-number) + (match-end match-number) + 'face help-highlight-face))) ;; Additional functions for (re-)creating types of help buffers. @@ -1048,8 +1069,8 @@ For the cross-reference format, see `help-make-xrefs'." (let (pos) (while (not pos) (if (get-text-property (point) 'help-xref) ; move off reference - (or (goto-char (next-single-property-change (point) 'help-xref)) - (point))) + (goto-char (or (next-single-property-change (point) 'help-xref) + (point)))) (cond ((setq pos (next-single-property-change (point) 'help-xref)) (if pos (goto-char pos))) ((bobp) -- 2.39.2