(help-function-def, help-variable-def): Handle hyperrefs

to C source files specially.
This commit is contained in:
Stefan Monnier 2004-04-07 19:35:05 +00:00
parent 583a15bb15
commit 0728ab1196

View file

@ -1,6 +1,6 @@
;;; help-mode.el --- `help-mode' used by *Help* buffers
;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002
;; Copyright (C) 1985, 1986, 1993, 1994, 1998, 1999, 2000, 2001, 2002, 2004
;; Free Software Foundation, Inc.
;; Maintainer: FSF
@ -150,8 +150,11 @@ The format is (FUNCTION ARGS...).")
;; Don't use find-function-noselect because it follows
;; aliases (which fails for built-in functions).
(let ((location
(if (bufferp file) (cons file fun)
(find-function-search-for-symbol fun nil file))))
(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)))))
(pop-to-buffer (car location))
(goto-char (cdr location))))
'help-echo (purecopy "mouse-2, RET: find function's definition"))
@ -160,7 +163,10 @@ The format is (FUNCTION ARGS...).")
:supertype 'help-xref
'help-function (lambda (var &optional file)
(let ((location
(find-variable-noselect var file)))
(cond
((string-match "\\`src/\\(.*\\.c\\)" file)
(help-find-C-source var (match-string 1 file) 'var))
(t (find-variable-noselect var file)))))
(pop-to-buffer (car location))
(goto-char (cdr location))))
'help-echo (purecopy"mouse-2, RET: find variable's definition"))