on Thu Oct 06 2011, Dave Abrahams <dave-AT-boostpro.com> wrote:

> Here's a version that deals with at least one of your caveats:
>
> (defun ndk/checkbox-list-complete ()
>   (save-excursion
>     (org-back-to-heading t)
>     (when looking-at (concat 
>                       "^\\*+[ \t]+" 
>                       org-todo-regexp ;; first match group here
>                       "[ \t].*\\[" "\\(100%\\)\\|[0-9]+%" 
>                       "\\|" "\\([0-9]+\\)" "/" "\\([0-9]+\\)" "\\]")
>           (if (or (match-string 2)
>                   (and (match-string 3)
>                        (equal (match-string 3) (match-string 4))))
>               (org-todo 'done)
>             (org-todo 'todo)))))

Whoops!  Looks like I made some edits to that after my last test.
Please try this one instead:

--8<---------------cut here---------------start------------->8---
(defun dwa/checkbox-list-complete ()
  (save-excursion
    (org-back-to-heading t)
    (when (looking-at (concat 
                      "^\\*+[ \t]+" 
                      org-todo-regexp ;; first match group here
                      "[ \t].*\\[" "\\(?:" "\\(?2:100%\\)\\|[0-9]+%" 
                      "\\|" "\\(?3:[0-9]+\\)" "/" "\\(?4:[0-9]+\\)" "\\)" 
"\\]"))
          (if (or (match-string 2)
                  (and (match-string 3)
                       (equal (match-string 3) (match-string 4))))
              (org-todo 'done)
            (org-todo 'todo)))))
--8<---------------cut here---------------end--------------->8---

-- 
Dave Abrahams
BoostPro Computing
http://www.boostpro.com

Reply via email to