]> git.eshelyaron.com Git - emacs.git/commitdiff
* man.el (Man-mode-map): Restore the \r binding.
authorDan Nicolaescu <dann@ics.uci.edu>
Tue, 4 Apr 2006 16:46:03 +0000 (16:46 +0000)
committerDan Nicolaescu <dann@ics.uci.edu>
Tue, 4 Apr 2006 16:46:03 +0000 (16:46 +0000)
(Man-abstract-xref-man-page): If Man-target-string is a function,
call it.
(Man-highlight-references): Use Man-default-man-entry to get the
target. Deal with xrefs too.
(Man-highlight-references0): Don't call the target function.

* woman.el (WoMan-xref-man-page): Strip the section number, woman
cannot deal with it.

lisp/ChangeLog
lisp/man.el
lisp/woman.el

index 532dc341c149686bddc99ad6ef0a46e1799dd6f1..4eea80ee200b7e9624c1c1a33e60a09441745058 100644 (file)
@@ -1,3 +1,15 @@
+2006-04-04  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       * man.el (Man-mode-map): Restore the \r binding.
+       (Man-abstract-xref-man-page): If Man-target-string is a function,
+       call it.
+       (Man-highlight-references): Use Man-default-man-entry to get the
+       target. Deal with xrefs too.
+       (Man-highlight-references0): Don't call the target function.
+
+       * woman.el (WoMan-xref-man-page): Strip the section number, woman
+       cannot deal with it.
+
 2006-04-04  Daiki Ueno  <ueno@unixuser.org>
 
        * pgg-gpg.el: Clean up process buffers every time gpg processes
index 706961b0450e6cada9ce9686e035f90878b95f4e..77c089b9d8db8870fe9130d45b7ea690f03d03bb 100644 (file)
@@ -416,6 +416,9 @@ Otherwise, the value is whatever the function
   (define-key Man-mode-map "k"    'Man-kill)
   (define-key Man-mode-map "q"    'Man-quit)
   (define-key Man-mode-map "m"    'man)
+  ;; Not all the man references get buttons currently. The text in the
+  ;; manual page can contain references to other man pages
+  (define-key Man-mode-map "\r"   'man-follow)
   (define-key Man-mode-map "?"    'describe-mode))
 
 ;; buttons
@@ -423,10 +426,13 @@ Otherwise, the value is whatever the function
   'follow-link t
   'help-echo "mouse-2, RET: display this man page"
   'func nil
-  'action (lambda (button) (funcall 
-                           (button-get button 'func)
-                           (or (button-get button 'Man-target-string)
-                               (button-label button)))))
+  '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))))))
 
 (define-button-type 'Man-xref-man-page 
   :supertype 'Man-abstract-xref-man-page
@@ -929,15 +935,14 @@ default type, `Man-xref-man-page' is used for the buttons."
     (setq Man-arguments ""))
   (if (string-match "-k " Man-arguments)
       (progn
-       (Man-highlight-references0 nil Man-reference-regexp 1 nil
+       (Man-highlight-references0 nil Man-reference-regexp 1
+                                  'Man-default-man-entry
                                   (or xref-man-type 'Man-xref-man-page))
        (Man-highlight-references0 nil Man-apropos-regexp 1
-                                  (lambda ()
-                                    (format "%s(%s)"
-                                            (match-string 1)
-                                            (match-string 2)))
+                                  'Man-default-man-entry
                                   (or xref-man-type 'Man-xref-man-page)))
-    (Man-highlight-references0 Man-see-also-regexp Man-reference-regexp 1 nil
+    (Man-highlight-references0 Man-see-also-regexp Man-reference-regexp 1 
+                              'Man-default-man-entry
                               (or xref-man-type 'Man-xref-man-page))
     (Man-highlight-references0 Man-synopsis-regexp Man-header-regexp 0 2
                               'Man-xref-header-file)
@@ -966,7 +971,7 @@ default type, `Man-xref-man-page' is used for the buttons."
                             ((numberp target) 
                              (match-string target))
                             ((functionp target)
-                             (funcall target))
+                             target)
                             (t nil)))))))
 
 (defun Man-cleanup-manpage (&optional interactive)
index 22fcc0e3f62feef632929224d7bb6df021849fdf..1aa5ce257168e7f5e7cc8e65d104eed08fa9e6e0 100644 (file)
 (require 'button)
 (define-button-type 'WoMan-xref-man-page 
   :supertype 'Man-abstract-xref-man-page
-  'func 'woman)
+  'func (lambda (arg)
+         (woman
+          ;; `woman' cannot deal with arguments that contain a
+          ;; section name, like close(2), so strip the section name.
+          (if (string-match Man-reference-regexp arg)
+              (subqstring arg 0 (match-end 1))
+            arg))))
 
 (eval-when-compile                     ; to avoid compiler warnings
   (require 'dired)