summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/find-func.el
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2011-09-06 21:06:09 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2011-09-06 21:06:09 -0400
commit77694924d89ca42fbf115391baf26be00fd074ca (patch)
tree6da7624a77e457f4bb3984d8881f2e0c91644010 /lisp/emacs-lisp/find-func.el
parentc8199d0f9eb45a99de074ec10b893f737f738cd8 (diff)
downloademacs-77694924d89ca42fbf115391baf26be00fd074ca.tar.gz
* lisp/emacs-lisp/find-func.el (find-function-C-source): Only set
find-function-C-source-directory after checking that we found a source file there. Fixes: debbugs:9440
Diffstat (limited to 'lisp/emacs-lisp/find-func.el')
-rw-r--r--lisp/emacs-lisp/find-func.el15
1 files changed, 8 insertions, 7 deletions
diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el
index 2c7208db8a3..08e73b32a15 100644
--- a/lisp/emacs-lisp/find-func.el
+++ b/lisp/emacs-lisp/find-func.el
@@ -198,13 +198,14 @@ If FUNC is not the symbol of an advised function, just returns FUNC."
(defun find-function-C-source (fun-or-var file type)
"Find the source location where FUN-OR-VAR is defined in FILE.
TYPE should be nil to find a function, or `defvar' to find a variable."
- (unless find-function-C-source-directory
- (setq find-function-C-source-directory
- (read-directory-name "Emacs C source dir: " nil nil t)))
- (setq file (expand-file-name file find-function-C-source-directory))
- (unless (file-readable-p file)
- (error "The C source file %s is not available"
- (file-name-nondirectory file)))
+ (let ((dir (or find-function-C-source-directory
+ (read-directory-name "Emacs C source dir: " nil nil t))))
+ (setq file (expand-file-name file dir))
+ (if (file-readable-p file)
+ (if (null find-function-C-source-directory)
+ (setq find-function-C-source-directory dir))
+ (error "The C source file %s is not available"
+ (file-name-nondirectory file))))
(unless type
;; Either or both an alias and its target might be advised.
(setq fun-or-var (find-function-advised-original