diff options
author | Bastien <bzg@gnu.org> | 2021-05-15 22:03:47 +0200 |
---|---|---|
committer | Bastien <bzg@gnu.org> | 2021-05-15 22:05:19 +0200 |
commit | 5c8e735af458add0f5066a0367b7b655470f9c2c (patch) | |
tree | 3666c3470c3f56320dc513753ee3c743ba97a311 | |
parent | 702fefe9f60414ccbb1e4ae3810d30a610ed1da9 (diff) | |
download | org-mode-5c8e735af458add0f5066a0367b7b655470f9c2c.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.el | 7 |
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)) |