Mercurial > emacs
changeset 74532:2acf2de66673
(Man-xref-button-action): New function. If the `Man-target-string'
button property is a function, assume it accepts a position argument.
(Man-abstract-xref-man-page): Use it.
(Man-default-man-entry): New optional arg POS.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sat, 09 Dec 2006 17:42:28 +0000 |
parents | 76a88b32996a |
children | 07e8643936d5 |
files | lisp/man.el |
diffstat | 1 files changed, 15 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/man.el Sat Dec 09 17:41:44 2006 +0000 +++ b/lisp/man.el Sat Dec 09 17:42:28 2006 +0000 @@ -428,13 +428,17 @@ 'follow-link t 'help-echo "mouse-2, RET: display this man page" 'func nil - 'action (lambda (button) - (funcall - (button-get button 'func) - (let ((func (button-get button 'Man-target-string))) - (if func - (if (functionp func) (funcall func) func) - (button-label button)))))) + 'action #'Man-xref-button-action) + +(defun Man-xref-button-action (button) + (let ((target (button-get button 'Man-target-string))) + (funcall + (button-get button 'func) + (cond ((null target) + (button-label button)) + ((functionp target) + (funcall target (button-start button))) + (t target))))) (define-button-type 'Man-xref-man-page :supertype 'Man-abstract-xref-man-page @@ -636,11 +640,12 @@ ;; ====================================================================== ;; default man entry: get word under point -(defsubst Man-default-man-entry () - "Make a guess at a default manual entry. -This guess is based on the text surrounding the cursor." +(defsubst Man-default-man-entry (&optional pos) + "Make a guess at a default manual entry based on the text at POS. +If POS is nil, the current point is used." (let (word) (save-excursion + (if pos (goto-char pos)) ;; Default man entry title is any word the cursor is on, or if ;; cursor not on a word, then nearest preceding word. (skip-chars-backward "-a-zA-Z0-9._+:")