changeset 55233:038fab289258

(help-function-def, help-variable-def): Use the new find-function-search-for-symbol functionality. Allow FILE to be `C-source'.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Thu, 29 Apr 2004 18:43:32 +0000
parents 32822ce3259d
children fde56fd631fc
files lisp/help-mode.el
diffstat 1 files changed, 7 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/help-mode.el	Thu Apr 29 18:42:24 2004 +0000
+++ b/lisp/help-mode.el	Thu Apr 29 18:43:32 2004 +0000
@@ -147,14 +147,13 @@
   :supertype 'help-xref
   'help-function (lambda (fun file)
 		   (require 'find-func)
+		   (when (eq file 'C-source)
+		     (setq file
+			   (help-C-file-name (indirect-function fun) 'fun)))
 		   ;; Don't use find-function-noselect because it follows
 		   ;; aliases (which fails for built-in functions).
 		   (let ((location
-			  (cond
-			   ((bufferp file) (cons file fun))
-			   ((string-match "\\`src/\\(.*\\.c\\)" file)
-			    (help-find-C-source fun (match-string 1 file) 'fun))
-			   (t (find-function-search-for-symbol fun nil file)))))
+			  (find-function-search-for-symbol fun nil file)))
 		     (pop-to-buffer (car location))
 		     (goto-char (cdr location))))
   'help-echo (purecopy "mouse-2, RET: find function's definition"))
@@ -162,11 +161,9 @@
 (define-button-type 'help-variable-def
   :supertype 'help-xref
   'help-function (lambda (var &optional file)
-		   (let ((location
-			  (cond
-			   ((string-match "\\`src/\\(.*\\.c\\)" file)
-			    (help-find-C-source var (match-string 1 file) 'var))
-			   (t (find-variable-noselect var file)))))
+		   (when (eq file 'C-source)
+		     (setq file (help-C-file-name var 'var)))
+		   (let ((location (find-variable-noselect var file)))
 		     (pop-to-buffer (car location))
 		     (goto-char (cdr location))))
   'help-echo (purecopy"mouse-2, RET: find variable's definition"))