Hi Richard,
your patch works, almost.
Where it goes wrong is here:
* test [3/6]
- one
- [X] two
- three
- [-] four
- [X] five
- [-] six
- seven
- [ ] eight
- [X] nine
The statistics cookie talks about 6 checkboxes below it,
but in fact there are only 4, two (at "four" and "six")
are a "summary" checkboxes.
So we get the funny effect that toggling "eight" will make
the cookie jump from 3/6 directly to 6/6 ....
Maybe this is acceptable, because the "summary" checkboxes don't really
make sense when the statistics covers the entire tree....
Opinions?
- Carsten
On Apr 24, 2009, at 3:01 PM, Richard KLINDA wrote:
This is the fixed patch, it actually works on my real life org files
so
this has a slight chance of being right.
------------------------------------------------------------------------
diff --git a/lisp/org-list.el b/lisp/org-list.el
index 7469add..872dddf 100644
--- a/lisp/org-list.el
+++ b/lisp/org-list.el
@@ -110,6 +110,9 @@ with \\[org-ctrl-c-ctrl-c\\]."
:group 'org-plain-lists
:type 'boolean)
+(defcustom org-recursive-checkbox-statistics nil
+ "Non-nil means, that checkbox counting should happen recursively.")
+
(defcustom org-description-max-indent 20
"Maximum indentation for the second line of a description list.
When the indentation would be larger than this, it will become
@@ -402,7 +405,10 @@ the whole buffer."
(org-beginning-of-item)
(setq curr-ind (org-get-indentation))
(setq next-ind curr-ind)
- (while (and (bolp) (org-at-item-p) (= curr-ind next-
ind))
+ (while (and (bolp) (org-at-item-p)
+ (if org-recursive-checkbox-statistics
+ (<= curr-ind next-ind)
+ (= curr-ind next-ind)))
(save-excursion (end-of-line) (setq eline (point)))
(if (re-search-forward re-box eline t)
(if (member (match-string 2) '("[ ]" "[-]"))
@@ -410,7 +416,12 @@ the whole buffer."
(setq c-on (1+ c-on))
)
)
- (org-end-of-item)
+ (if org-recursive-checkbox-statistics
+ (progn
+ (end-of-line)
+ (when (re-search-forward org-list-beginning-
re lim t)
+ (beginning-of-line)))
+ (org-end-of-item))
(setq next-ind (org-get-indentation))
)))
(goto-char continue-from)
------------------------------------------------------------------------
--
Richard
_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode
_______________________________________________
Emacs-orgmode mailing list
Remember: use `Reply All' to send replies to the list.
Emacs-orgmode@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-orgmode