]> git.eshelyaron.com Git - emacs.git/commitdiff
In xref-collect-references, force backends to respect the 'dir' arg
authorStephen Leake <stephen_leake@stephe-leake.org>
Fri, 22 Jan 2016 07:53:05 +0000 (01:53 -0600)
committerStephen Leake <stephen_leake@stephe-leake.org>
Fri, 22 Jan 2016 07:57:18 +0000 (01:57 -0600)
* lisp/progmodes/xref.el (xref-collect-references): Force symref backends
to use `default-directory'.

lisp/progmodes/xref.el

index 2bccd8575769c0558a3a86864178e5ef9f6775fd..d32da371771631ebfe624fbbe6a6bb91386f0beb 100644 (file)
@@ -861,7 +861,13 @@ tools are used, and when."
   (cl-assert (directory-name-p dir))
   (require 'semantic/symref)
   (defvar semantic-symref-tool)
-  (let* ((default-directory dir)
+
+  ;; Some symref backends use `ede-project-root-directory' as the root
+  ;; directory for the search, rather than `default-directory'. Since
+  ;; the caller has specified `dir', we bind `ede-minor-mode' to nil
+  ;; to force the backend to use `default-directory'.
+  (let* ((ede-minor-mode nil)
+         (default-directory dir)
          (semantic-symref-tool 'detect)
          (res (semantic-symref-find-references-by-name symbol 'subdirs))
          (hits (and res (oref res hit-lines)))