branch: externals/org
commit b1f8488fb112dfdcc517f63e9a29d29df5207cc7
Author: Slawomir Grochowski <[email protected]>
Commit: Slawomir Grochowski <[email protected]>
; org-colview: Extract level accumulator clearing
* lisp/org-colview.el (org-columns--clear-values-below-level): New
function.
(org-columns--compute-spec): Use it.
Refactoring: Extract Function.
No behavior change.
---
lisp/org-colview.el | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/lisp/org-colview.el b/lisp/org-colview.el
index f28e04a226..22f01a2d82 100644
--- a/lisp/org-colview.el
+++ b/lisp/org-colview.el
@@ -1432,6 +1432,12 @@ they have their own way to be computed."
(and (not (member property org-special-properties))
(org-columns--spec-operator spec))))
+(defun org-columns--clear-values-below-level (values-by-level level
deepest-level)
+ "Clear accumulated values below LEVEL in VALUES-BY-LEVEL.
+DEEPEST-LEVEL is the deepest index to clear."
+ (cl-loop for deeper-level from (1+ level) to deepest-level
+ do (aset values-by-level deeper-level nil)))
+
(defun org-columns--compute-spec (spec &optional update-property-p)
"Update tree according to SPEC.
SPEC is a column format specification. When optional argument
@@ -1477,9 +1483,7 @@ existing ones in properties drawers."
;; Add current to current level accumulator.
(when (or summary value-nonempty-p)
(push (or summary current-value) (aref values-by-level level)))
- ;; Clear accumulators for deeper levels.
- (cl-loop for l from (1+ level) to deepest-level
- do (aset values-by-level l nil))))
+ (org-columns--clear-values-below-level values-by-level level
deepest-level)))
(value-nonempty-p (push current-value (aref values-by-level level)))
(t nil)))))))