[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/git-commit 91ef0822d3 04/18: magit-get-section: Compare co
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/git-commit 91ef0822d3 04/18: magit-get-section: Compare constant values |
Date: |
Fri, 25 Mar 2022 13:58:19 -0400 (EDT) |
branch: elpa/git-commit
commit 91ef0822d330d51861e421a4fb2ffe55097c92a8
Author: Jonas Bernoulli <jonas@bernoul.li>
Commit: Jonas Bernoulli <jonas@bernoul.li>
magit-get-section: Compare constant values
Previously only `magit-section-ident' returned a constant value for
sections that need special handling, but we need to use that value
in `magit-get-section' as well.
This commit just implements the most straight forward fix. The next
commit improves the `magit-section-ident-value', replacing the newly
added secondary function.
---
lisp/magit-section.el | 37 ++++++++++++++++++++-----------------
1 file changed, 20 insertions(+), 17 deletions(-)
diff --git a/lisp/magit-section.el b/lisp/magit-section.el
index 526a4b2ab8..7b2fb4d702 100644
--- a/lisp/magit-section.el
+++ b/lisp/magit-section.el
@@ -401,23 +401,25 @@ never modify it.")
"Return an unique identifier for SECTION.
The return value has the form ((TYPE . VALUE)...)."
(with-slots (type value parent) section
- (cons (cons type
- (cond ((eieio-object-p value)
- (magit-section-ident-value value))
- ((not (memq type '(unpulled unpushed))) value)
- ((string-match-p "@{upstream}" value) value)
- ;; Unfortunately Git chokes on "@{push}" when
- ;; the value of `push.default' does not allow a
- ;; 1:1 mapping. Arbitrary commands may consult
- ;; the section value so we cannot use "@{push}".
- ;; But `unpushed' and `unpulled' sections should
- ;; keep their identity when switching branches
- ;; so we have to use another value here.
- ((string-match-p "\\`\\.\\." value) "..@{push}")
- (t "@{push}..")))
+ (cons (cons type (magit-section-ident-value-1 value type))
(and parent
(magit-section-ident parent)))))
+(defun magit-section-ident-value-1 (value type)
+ (cond ((eieio-object-p value)
+ (magit-section-ident-value value))
+ ((not (memq type '(unpulled unpushed))) value)
+ ((string-match-p "@{upstream}" value) value)
+ ;; Unfortunately Git chokes on "@{push}" when
+ ;; the value of `push.default' does not allow a
+ ;; 1:1 mapping. Arbitrary commands may consult
+ ;; the section value so we cannot use "@{push}".
+ ;; But `unpushed' and `unpulled' sections should
+ ;; keep their identity when switching branches
+ ;; so we have to use another value here.
+ ((string-match-p "\\`\\.\\." value) "..@{push}")
+ (t "@{push}..")))
+
(cl-defgeneric magit-section-ident-value (value)
"Return a constant representation of VALUE.
VALUE is the value of a `magit-section' object. If that is an
@@ -441,12 +443,13 @@ instead of in the one whose root `magit-root-section' is."
(oref section type))
(while (and ident
(pcase-let* ((`(,type . ,value) (car ident))
- (value (magit-section-ident-value value)))
+ (value (magit-section-ident-value-1 value
type)))
(setq section
(cl-find-if (lambda (section)
(and (eq (oref section type) type)
- (equal (magit-section-ident-value
- (oref section value))
+ (equal
(magit-section-ident-value-1
+ (oref section value)
+ (oref section type))
value)))
(oref section children)))))
(pop ident))
- [nongnu] elpa/git-commit updated (b32521d543 -> f3afc117c2), ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit 94aca04dc8 02/18: magit-module-section: Use correct keymap, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit 70b34f08ab 03/18: Increase use of section type, keymap and binding inheritance, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit be371711f5 06/18: magit-section-at: New function, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit 949b4a47a4 10/18: magit-mouse-toggle-section: New command, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit 5641d3749c 12/18: Completely rework magit-mode-menu, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit 0168be9366 14/18: Add basic context-menu, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit 38cb9372dc 17/18: Add section-specific context-menus, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit f3afc117c2 18/18: Bump dependencies on Melpa, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit 91ef0822d3 04/18: magit-get-section: Compare constant values,
ELPA Syncer <=
- [nongnu] elpa/git-commit 8c53997121 05/18: magit-section-ident-value: Split up into more methods, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit 4de514b84c 07/18: magit-section-content-p: New function, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit 8eb43f8b23 13/18: Store keymap detected based on name in section object, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit bc065246b4 01/18: Remove duplicated command magit-help, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit 5da6122160 08/18: magit-section-mode-map: Add docstring, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit 73a2cbe61f 09/18: magit-section-heading-map: New keymap, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit 7d15b1a041 11/18: magit-diff--region-range: New function, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit b7294344e3 15/18: Add context-menu utilities, ELPA Syncer, 2022/03/25
- [nongnu] elpa/git-commit 95b432530a 16/18: Do not set point when invoking context-menu, ELPA Syncer, 2022/03/25