summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien <bzg@gnu.org>2021-05-15 22:03:47 +0200
committerBastien <bzg@gnu.org>2021-05-16 09:54:28 +0200
commitcbc450d03c9672e54364516084e652597a077e21 (patch)
tree3666c3470c3f56320dc513753ee3c743ba97a311
parentef495b76ec29d2df670e008c2fe950339444e07a (diff)
downloadorg-mode-cbc450d03c9672e54364516084e652597a077e21.tar.gz
lisp/org-list.el: Fix bug wrt updating statistics
* lisp/org-list.el (org-update-checkbox-count): Don't update statistics when toggling a checkbox witin a heading that has COOKIE_DATA set to "todo". Reported-by: Michael Brand <michael.ch.brand@gmail.com> Link: https://orgmode.org/list/CALn3zohYfoyDm6w-AYWsVRSbOCndBPZQyb+YvHcaEby3JEhWMw@mail.gmail.com
-rw-r--r--lisp/org-list.el7
1 files changed, 4 insertions, 3 deletions
diff --git a/lisp/org-list.el b/lisp/org-list.el
index 55eb478..d2ce129 100644
--- a/lisp/org-list.el
+++ b/lisp/org-list.el
@@ -2476,10 +2476,10 @@ With optional prefix argument ALL, do this for the whole buffer."
(let* ((cookie-re "\\(\\(\\[[0-9]*%\\]\\)\\|\\(\\[[0-9]*/[0-9]*\\]\\)\\)")
(box-re "^[ \t]*\\([-+*]\\|\\([0-9]+\\|[A-Za-z]\\)[.)]\\)[ \t]+\
\\(?:\\[@\\(?:start:\\)?\\([0-9]+\\|[A-Za-z]\\)\\][ \t]*\\)?\\(\\[[- X]\\]\\)")
+ (cookie-data (or (org-entry-get nil "COOKIE_DATA") ""))
(recursivep
(or (not org-checkbox-hierarchical-statistics)
- (string-match "\\<recursive\\>"
- (or (org-entry-get nil "COOKIE_DATA") ""))))
+ (string-match-p "\\<recursive\\>" cookie-data)))
(within-inlinetask (and (not all)
(featurep 'org-inlinetask)
(org-inlinetask-in-task-p)))
@@ -2525,7 +2525,8 @@ With optional prefix argument ALL, do this for the whole buffer."
(while (re-search-forward cookie-re end t)
(let ((context (save-excursion (backward-char)
(save-match-data (org-element-context)))))
- (when (eq (org-element-type context) 'statistics-cookie)
+ (when (and (eq (org-element-type context) 'statistics-cookie)
+ (not (string-match-p "\\<todo\\>" cookie-data)))
(push
(append
(list (match-beginning 1) (match-end 1) (match-end 2))