Pārlūkot izejas kodu

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
Bastien 4 gadi atpakaļ
vecāks
revīzija
cbc450d03c
1 mainītis faili ar 4 papildinājumiem un 3 dzēšanām
  1. 4 3
      lisp/org-list.el

+ 4 - 3
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))