aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lisp/progmodes/project.el24
1 files changed, 17 insertions, 7 deletions
diff --git a/lisp/progmodes/project.el b/lisp/progmodes/project.el
index 04c67710d71..7c51778d5d4 100644
--- a/lisp/progmodes/project.el
+++ b/lisp/progmodes/project.el
@@ -1327,13 +1327,23 @@ general form of conditions."
1327 (and (memq (cdr buffer) buffers) 1327 (and (memq (cdr buffer) buffers)
1328 (not 1328 (not
1329 (project--buffer-check 1329 (project--buffer-check
1330 (cdr buffer) project-ignore-buffer-conditions)))))) 1330 (cdr buffer) project-ignore-buffer-conditions)))))
1331 (read-buffer 1331 (buffer (read-buffer
1332 "Switch to buffer: " 1332 "Switch to buffer: "
1333 (when (funcall predicate (cons other-name other-buffer)) 1333 (when (funcall predicate (cons other-name other-buffer))
1334 other-name) 1334 other-name)
1335 nil 1335 nil
1336 predicate))) 1336 predicate)))
1337 ;; XXX: This check hardcodes the default buffer-belonging relation
1338 ;; which `project-buffers' is allowed to override. Straighten
1339 ;; this up sometime later. Or not. Since we can add a method
1340 ;; `project-contains-buffer-p', but a separate method to create a
1341 ;; new project buffer seems too much.
1342 (if (or (get-buffer buffer)
1343 (file-in-directory-p default-directory (project-root pr)))
1344 buffer
1345 (let ((default-directory (project-root pr)))
1346 (get-buffer-create buffer)))))
1337 1347
1338;;;###autoload 1348;;;###autoload
1339(defun project-switch-to-buffer (buffer-or-name) 1349(defun project-switch-to-buffer (buffer-or-name)