emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] /srv/bzr/emacs/trunk r105669: * lisp/emacs-lisp/find-func.


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r105669: * lisp/emacs-lisp/find-func.el (find-function-C-source): Only set
Date: Tue, 06 Sep 2011 21:06:09 -0400
User-agent: Bazaar (2.3.1)

------------------------------------------------------------
revno: 105669
fixes bug(s): http://debbugs.gnu.org/cgi/bugreport.cgi?bug=9440
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Tue 2011-09-06 21:06:09 -0400
message:
  * 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.
modified:
  lisp/ChangeLog
  lisp/emacs-lisp/find-func.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2011-09-06 01:01:46 +0000
+++ b/lisp/ChangeLog    2011-09-07 01:06:09 +0000
@@ -1,3 +1,9 @@
+2011-09-07  Stefan Monnier  <address@hidden>
+
+       * 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 (bug#9440).
+
 2011-09-06  Alan Mackenzie  <address@hidden>
 
        * isearch.el (isearch-other-meta-char): Wherever a key list is

=== modified file 'lisp/emacs-lisp/find-func.el'
--- a/lisp/emacs-lisp/find-func.el      2011-08-21 17:43:31 +0000
+++ b/lisp/emacs-lisp/find-func.el      2011-09-07 01:06:09 +0000
@@ -198,13 +198,14 @@
 (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


reply via email to

[Prev in Thread] Current Thread [Next in Thread]