branch: externals/org
commit 50a18e7824493e0dac8de66493050f6e5a5c053e
Author: Slawomir Grochowski <[email protected]>
Commit: Slawomir Grochowski <[email protected]>
; org-colview: Extract summary text property update
* lisp/org-colview.el (org-columns--put-summary): New function.
(org-columns--compute-spec): Use it.
Refactoring: Extract Function.
No behavior change.
---
lisp/org-colview.el | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/lisp/org-colview.el b/lisp/org-colview.el
index 2fa63371cb..0956f34d2d 100644
--- a/lisp/org-colview.el
+++ b/lisp/org-colview.el
@@ -1401,6 +1401,16 @@ Return nil if no collect function is associated to
OPERATOR."
;;;;; Tree summary computation
+(defun org-columns--put-summary (pos spec summary)
+ "Set SUMMARY for SPEC in `org-summaries' at POS."
+ (let* ((summaries (get-text-property pos 'org-summaries))
+ (old (assoc spec summaries)))
+ (if old (setcdr old summary)
+ (push (cons spec summary) summaries)
+ (with-silent-modifications
+ (add-text-properties
+ pos (1+ pos) (list 'org-summaries summaries))))))
+
(defun org-columns--compute-spec (spec &optional update)
"Update tree according to SPEC.
SPEC is a column format specification. When optional argument
@@ -1449,13 +1459,7 @@ properties drawers."
(and values (funcall summarize values
format-string))))))
;; Leaf values are not summaries: do not mark them.
(when summary
- (let* ((summaries-alist (get-text-property pos 'org-summaries))
- (old (assoc spec summaries-alist)))
- (if old (setcdr old summary)
- (push (cons spec summary) summaries-alist)
- (with-silent-modifications
- (add-text-properties
- pos (1+ pos) (list 'org-summaries summaries-alist)))))
+ (org-columns--put-summary pos spec summary)
;; When PROPERTY exists in current node, even if empty,
;; but its value doesn't match the one computed, use
;; the latter instead.