diff lisp/man.el @ 66177:bd98d8a37303

* woman.el (WoMan-xref-man-page): New button type derived from `Man-abstract-xref-man-page'. (woman-mode): Pass `WoMan-xref-man-page' to `Man-highlight-references'. * man.el (Man-abstract-xref-man-page): New button type. (Man-xref-man-page): Make it derived from `Man-abstract-xref-man-page'. (Man-highlight-references): Add new optiolnal argument `xref-man-type'.
author Masatake YAMATO <jet@gyve.org>
date Tue, 18 Oct 2005 04:21:51 +0000
parents ed770a0a7846
children 66a34cb7272d 0ca0d9181b5e
line wrap: on
line diff
--- a/lisp/man.el	Tue Oct 18 04:14:36 2005 +0000
+++ b/lisp/man.el	Tue Oct 18 04:21:51 2005 +0000
@@ -415,10 +415,18 @@
   (define-key Man-mode-map "?"    'describe-mode))
 
 ;; buttons
-(define-button-type 'Man-xref-man-page
-  'action (lambda (button) (man-follow (button-label button)))
+(define-button-type 'Man-abstract-xref-man-page
   'follow-link t
-  'help-echo "mouse-2, RET: display this man page")
+  'help-echo "mouse-2, RET: display this man page"
+  'func nil
+  'action (lambda (button) (funcall 
+			    (button-get button 'func)
+			    (button-label button))))
+
+(define-button-type 'Man-xref-man-page 
+  :supertype 'Man-abstract-xref-man-page
+  'func 'man-follow)
+
 
 (define-button-type 'Man-xref-header-file
     'action (lambda (button)
@@ -903,14 +911,17 @@
 			 'face Man-overstrike-face)))
   (message "%s man page formatted" Man-arguments))
 
-(defun Man-highlight-references ()
+(defun Man-highlight-references (&optional xref-man-type)
   "Highlight the references on mouse-over.
 References include items in the SEE ALSO section,
-header file (#include <foo.h>) and files in FILES."
+header file (#include <foo.h>) and files in FILES.
+If XREF-MAN-TYPE is used as the button type for items
+in SEE ALSO section. If it is nil, default type, 
+`Man-xref-man-page' is used."
   (let ((dummy 0))
     (Man-highlight-references0
      Man-see-also-regexp Man-reference-regexp 1 dummy
-     'Man-xref-man-page)
+     (or xref-man-type 'Man-xref-man-page))
     (Man-highlight-references0
      Man-synopsis-regexp Man-header-regexp 0 2
      'Man-xref-header-file)