[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/git-commit 67352a64b5 11/12: magit--toplevel-safe: New fun
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/git-commit 67352a64b5 11/12: magit--toplevel-safe: New function |
Date: |
Fri, 13 May 2022 10:58:11 -0400 (EDT) |
branch: elpa/git-commit
commit 67352a64b555a99e77fba8651487fa6449c88078
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>
magit--toplevel-safe: New function
---
lisp/magit-git.el | 12 +++++-----
lisp/magit-mode.el | 66 ++++++++++++++++++++++++++----------------------------
2 files changed, 38 insertions(+), 40 deletions(-)
diff --git a/lisp/magit-git.el b/lisp/magit-git.el
index 341167f3d1..bd1fee84d3 100644
--- a/lisp/magit-git.el
+++ b/lisp/magit-git.el
@@ -918,14 +918,14 @@ returning the truename."
;; Step outside the control directory to enter the working
tree.
(file-name-directory (directory-file-name gitdir)))))))))))
+(defun magit--toplevel-safe ()
+ (or (magit-toplevel)
+ (magit--not-inside-repository-error)))
+
(defmacro magit-with-toplevel (&rest body)
(declare (indent defun) (debug (body)))
- (let ((toplevel (cl-gensym "toplevel")))
- `(let ((,toplevel (magit-toplevel)))
- (if ,toplevel
- (let ((default-directory ,toplevel))
- ,@body)
- (magit--not-inside-repository-error)))))
+ `(let ((default-directory (magit--toplevel-safe)))
+ ,@body))
(define-error 'magit-outside-git-repo "Not inside Git repository")
(define-error 'magit-corrupt-git-config "Corrupt Git configuration")
diff --git a/lisp/magit-mode.el b/lisp/magit-mode.el
index 7956e8565a..4cefd402de 100644
--- a/lisp/magit-mode.el
+++ b/lisp/magit-mode.el
@@ -849,45 +849,43 @@ If `visible', then only consider buffers on all visible
frames.
If `selected' or t, then only consider buffers on the selected
frame.
If a frame, then only consider buffers on that frame."
- (if-let ((topdir (magit-toplevel)))
- (cl-flet* ((b (buffer)
- (with-current-buffer buffer
- (and (eq major-mode mode)
- (equal magit--default-directory topdir)
- (if value
- (and magit-buffer-locked-p
- (equal (magit-buffer-value) value))
- (not magit-buffer-locked-p))
- buffer)))
- (w (window)
- (b (window-buffer window)))
- (f (frame)
- (seq-some #'w (window-list frame 'no-minibuf))))
- (pcase-exhaustive frame
- ('nil (seq-some #'b (buffer-list)))
- ('all (seq-some #'f (frame-list)))
- ('visible (seq-some #'f (visible-frame-list)))
- ((or 'selected 't) (seq-some #'w (window-list
(selected-frame))))
- ((guard (framep frame)) (seq-some #'w (window-list frame)))))
- (magit--not-inside-repository-error)))
+ (let ((topdir (magit--toplevel-safe)))
+ (cl-flet* ((b (buffer)
+ (with-current-buffer buffer
+ (and (eq major-mode mode)
+ (equal magit--default-directory topdir)
+ (if value
+ (and magit-buffer-locked-p
+ (equal (magit-buffer-value) value))
+ (not magit-buffer-locked-p))
+ buffer)))
+ (w (window)
+ (b (window-buffer window)))
+ (f (frame)
+ (seq-some #'w (window-list frame 'no-minibuf))))
+ (pcase-exhaustive frame
+ ('nil (seq-some #'b (buffer-list)))
+ ('all (seq-some #'f (frame-list)))
+ ('visible (seq-some #'f (visible-frame-list)))
+ ((or 'selected 't) (seq-some #'w (window-list (selected-frame))))
+ ((guard (framep frame)) (seq-some #'w (window-list frame)))))))
(defun magit-mode-get-buffer (mode &optional create frame value)
(declare (obsolete magit-get-mode-buffer "Magit 3.0.0"))
(when create
(error "`magit-mode-get-buffer's CREATE argument is obsolete"))
- (if-let ((topdir (magit-toplevel)))
- (--first (with-current-buffer it
- (and (eq major-mode mode)
- (equal magit--default-directory topdir)
- (if value
- (and magit-buffer-locked-p
- (equal (magit-buffer-value) value))
- (not magit-buffer-locked-p))))
- (if frame
- (mapcar #'window-buffer
- (window-list (unless (eq frame t) frame)))
- (buffer-list)))
- (magit--not-inside-repository-error)))
+ (let ((topdir (magit--toplevel-safe)))
+ (--first (with-current-buffer it
+ (and (eq major-mode mode)
+ (equal magit--default-directory topdir)
+ (if value
+ (and magit-buffer-locked-p
+ (equal (magit-buffer-value) value))
+ (not magit-buffer-locked-p))))
+ (if frame
+ (mapcar #'window-buffer
+ (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))
- [nongnu] elpa/git-commit updated (aff4180479 -> 8269af107f), ELPA Syncer, 2022/05/13
- [nongnu] elpa/git-commit 466bf542b0 02/12: Remove unnecessary declare-function, ELPA Syncer, 2022/05/13
- [nongnu] elpa/git-commit 91e6698435 10/12: Avoid loading bookmark upfront, ELPA Syncer, 2022/05/13
- [nongnu] elpa/git-commit ccb0de02ad 01/12: magit--disable-save-buffers: Renamed variable, ELPA Syncer, 2022/05/13
- [nongnu] elpa/git-commit c42b09f987 04/12: magit-section-get-relative-position: Rename and move, ELPA Syncer, 2022/05/13
- [nongnu] elpa/git-commit 69327510e2 07/12: magit-section-goto-successor: Cosmetics, ELPA Syncer, 2022/05/13
- [nongnu] elpa/git-commit 7c45ae83ac 08/12: Add magit-process-unset-mode-line-error-status to hook, ELPA Syncer, 2022/05/13
- [nongnu] elpa/git-commit 67352a64b5 11/12: magit--toplevel-safe: New function,
ELPA Syncer <=
- [nongnu] elpa/git-commit 8269af107f 12/12: magit-generate-new-buffer: Determine appropriate default-directory, ELPA Syncer, 2022/05/13
- [nongnu] elpa/git-commit 208dbd5689 06/12: magit-section-goto-successor: Define as generic function, ELPA Syncer, 2022/05/13
- [nongnu] elpa/git-commit 8ea1df1cd0 03/12: Wrap git-commit-mode with bound-and-true-p, ELPA Syncer, 2022/05/13
- [nongnu] elpa/git-commit e733c8d1aa 05/12: magit-section-get-relative-position: Define as generic function, ELPA Syncer, 2022/05/13
- [nongnu] elpa/git-commit 2276f6bcce 09/12: Move core bookmark support to magit-mode.el, ELPA Syncer, 2022/05/13