branch: elpa/git-commit commit 8269af107f619e10c588ee0b8a81b9e3ec077a98 Author: Jonas Bernoulli <jo...@bernoul.li> Commit: Jonas Bernoulli <jo...@bernoul.li>
magit-generate-new-buffer: Determine appropriate default-directory --- lisp/magit-mode.el | 11 +++++------ lisp/magit-process.el | 4 ++-- lisp/magit-submodule.el | 3 +-- 3 files changed, 8 insertions(+), 10 deletions(-) diff --git a/lisp/magit-mode.el b/lisp/magit-mode.el index 4cefd402de..213c616816 100644 --- a/lisp/magit-mode.el +++ b/lisp/magit-mode.el @@ -604,8 +604,7 @@ your mode instead of adding an entry to this variable.") (section (and buffer (magit-current-section))) (created (not buffer))) (unless buffer - (setq buffer (magit-with-toplevel - (magit-generate-new-buffer mode value)))) + (setq buffer (magit-generate-new-buffer mode value))) (with-current-buffer buffer (setq magit-previous-section section) (funcall mode) @@ -641,8 +640,7 @@ locked to its value, which is derived from MODE and ARGS." (section (and buffer (magit-current-section))) (created (not buffer))) (unless buffer - (setq buffer (magit-with-toplevel - (magit-generate-new-buffer mode value)))) + (setq buffer (magit-generate-new-buffer mode value))) (with-current-buffer buffer (setq magit-previous-section section) (with-no-warnings @@ -887,8 +885,9 @@ If a frame, then only consider buffers on that frame." (window-list (unless (eq frame t) frame))) (buffer-list))))) -(defun magit-generate-new-buffer (mode &optional value) - (let* ((name (funcall magit-generate-buffer-name-function mode value)) +(defun magit-generate-new-buffer (mode &optional value directory) + (let* ((default-directory (or directory (magit--toplevel-safe))) + (name (funcall magit-generate-buffer-name-function mode value)) (buffer (generate-new-buffer name))) (with-current-buffer buffer (setq magit--default-directory default-directory) diff --git a/lisp/magit-process.el b/lisp/magit-process.el index 6dd347a0c1..65b7291180 100644 --- a/lisp/magit-process.el +++ b/lisp/magit-process.el @@ -300,8 +300,8 @@ optional NODISPLAY is non-nil also display it." (and (eq major-mode 'magit-process-mode) (equal default-directory topdir))) (buffer-list)) - (let ((default-directory topdir)) - (magit-generate-new-buffer 'magit-process-mode))))) + (magit-generate-new-buffer 'magit-process-mode + nil topdir)))) (with-current-buffer buffer (if magit-root-section (when magit-process-log-max diff --git a/lisp/magit-submodule.el b/lisp/magit-submodule.el index 2179fa10a2..0625e20d22 100644 --- a/lisp/magit-submodule.el +++ b/lisp/magit-submodule.el @@ -651,8 +651,7 @@ These sections can be expanded to show the respective commits." (defun magit-submodule-list-setup (columns &optional predicate) (magit-display-buffer (or (magit-get-mode-buffer 'magit-submodule-list-mode) - (magit-with-toplevel - (magit-generate-new-buffer 'magit-submodule-list-mode)))) + (magit-generate-new-buffer 'magit-submodule-list-mode))) (magit-submodule-list-mode) (setq-local magit-repolist-columns columns) (setq-local magit-repolist-sort-key magit-submodule-list-sort-key)