diff options
author | Bastien Guerry <bzg@altern.org> | 2013-07-03 14:57:19 +0200 |
---|---|---|
committer | Bastien Guerry <bzg@altern.org> | 2013-07-03 14:57:19 +0200 |
commit | f80e262967cbb6776105ceebd555aa2946a8ac33 (patch) | |
tree | aabf693a9dac17e733b650e8956711e0c45f8e65 | |
parent | 330eb689cdba665d2cdca687a574dc8c566ecbbf (diff) | |
download | org-mode-f80e262967cbb6776105ceebd555aa2946a8ac33.tar.gz |
org-list.el (org-sort-list): Implement sorting by "checked" status for check lists
* org-list.el (org-sort-list): Implement sorting by "checked"
status for check lists.
* org.texi (Plain lists): Add index entry for sorting plain
list. Document sorting by checked status for check lists.
-rw-r--r-- | doc/org.texi | 4 | ||||
-rw-r--r-- | lisp/org-list.el | 13 |
2 files changed, 12 insertions, 5 deletions
diff --git a/doc/org.texi b/doc/org.texi index 6f2aa36..79737ce 100644 --- a/doc/org.texi +++ b/doc/org.texi @@ -1832,9 +1832,11 @@ This command also cycles bullet styles when the cursor in on the bullet or anywhere in an item line, details depending on @code{org-support-shift-select}. @kindex C-c ^ +@cindex sorting, of plain list @item C-c ^ Sort the plain list. You will be prompted for the sorting method: -numerically, alphabetically, by time, or by custom function. +numerically, alphabetically, by time, by checked status for check lists, +or by a custom function. @end table @node Drawers, Blocks, Plain lists, Document Structure diff --git a/lisp/org-list.el b/lisp/org-list.el index 86afe11..ccd8f9d 100644 --- a/lisp/org-list.el +++ b/lisp/org-list.el @@ -2799,13 +2799,14 @@ optional argument WITH-CASE, the sorting considers case as well. The command prompts for the sorting type unless it has been given to the function through the SORTING-TYPE argument, which needs to -be a character, \(?n ?N ?a ?A ?t ?T ?f ?F). Here is the precise -meaning of each character: +be a character, \(?n ?N ?a ?A ?t ?T ?f ?F ?c ?C). Here is the +detailed meaning of each character: n Numerically, by converting the beginning of the item to a number. a Alphabetically. Only the first line of item is checked. t By date/time, either the first active time stamp in the entry, if any, or by the first inactive one. In a timer list, sort the timers. +c By \"checked\" status of a check list. Capital letters will reverse the sort order. @@ -2827,7 +2828,7 @@ ignores hidden links." (or sorting-type (progn (message - "Sort plain list: [a]lpha [n]umeric [t]ime [f]unc A/N/T/F means reversed:") + "Sort plain list: [a]lpha [n]umeric [t]ime [f]unc [c]hecked A/N/T/F/C means reversed:") (read-char-exclusive)))) (getkey-func (or getkey-func @@ -2844,7 +2845,8 @@ ignores hidden links." (sort-func (cond ((= dcst ?a) 'string<) ((= dcst ?f) compare-func) - ((= dcst ?t) '<))) + ((= dcst ?t) '<) + ((= dcst ?c) 'string<))) (next-record (lambda () (skip-chars-forward " \r\t\n") (or (eobp) (beginning-of-line)))) @@ -2875,6 +2877,9 @@ ignores hidden links." (point-at-eol) t))) (org-time-string-to-seconds (match-string 0))) (t (org-float-time now)))) + ((= dcst ?c) (or (and (stringp (match-string 1)) + (match-string 1)) + "")) ((= dcst ?f) (if getkey-func (let ((value (funcall getkey-func))) |