;;; 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
;; 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"))
: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"))