diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2011-09-06 21:06:09 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2011-09-06 21:06:09 -0400 |
commit | 77694924d89ca42fbf115391baf26be00fd074ca (patch) | |
tree | 6da7624a77e457f4bb3984d8881f2e0c91644010 /lisp/emacs-lisp | |
parent | c8199d0f9eb45a99de074ec10b893f737f738cd8 (diff) | |
download | emacs-77694924d89ca42fbf115391baf26be00fd074ca.tar.gz emacs-77694924d89ca42fbf115391baf26be00fd074ca.tar.bz2 emacs-77694924d89ca42fbf115391baf26be00fd074ca.zip |
* 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')
-rw-r--r-- | lisp/emacs-lisp/find-func.el | 15 |
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 |