Browse Source

Release 4.41

Carsten Dominik 17 years ago
parent
commit
d0bd2eda60
6 changed files with 326 additions and 210 deletions
  1. 197 158
      org
  2. 68 32
      org.el
  3. BIN
      org.pdf
  4. 57 18
      org.texi
  5. BIN
      orgcard.pdf
  6. 4 2
      orgcard.tex

+ 197 - 158
org

@@ -5,7 +5,7 @@ START-INFO-DIR-ENTRY
 * Org Mode: (org).	outline-based notes management and organizer
 END-INFO-DIR-ENTRY
 
-   This manual is for Org-mode (version 4.40).
+   This manual is for Org-mode (version 4.41).
 
    Copyright (C) 2004, 2005, 2006 Free Software Foundation
 
@@ -27,7 +27,7 @@ File: org,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)
 Org Mode Manual
 ***************
 
-This manual is for Org-mode (version 4.40).
+This manual is for Org-mode (version 4.41).
 
    Copyright (C) 2004, 2005, 2006 Free Software Foundation
 
@@ -80,6 +80,7 @@ Document Structure
 * Archiving::                   Move done task trees to a different place
 * Sparse trees::                Matches embedded in context
 * Plain lists::                 Editing hand-formatted lists
+* Checkboxes::                  Easily checking off things.
 
 Archiving
 
@@ -373,6 +374,7 @@ edit the structure of the document.
 * Archiving::                   Move done task trees to a different place
 * Sparse trees::                Matches embedded in context
 * Plain lists::                 Editing hand-formatted lists
+* Checkboxes::                  Easily checking off things.
 
 
 File: org,  Node: Outlines,  Next: Headlines,  Prev: Document structure,  Up: Document structure
@@ -684,7 +686,7 @@ only the visible part of the document and print the resulting file.
 display for outlining, not text properties.
 
 
-File: org,  Node: Plain lists,  Prev: Sparse trees,  Up: Document structure
+File: org,  Node: Plain lists,  Next: Checkboxes,  Prev: Sparse trees,  Up: Document structure
 
 2.8 Plain lists
 ===============
@@ -719,15 +721,6 @@ is indented like the bullet/number, or less.  For example:
    Org-mode supports these lists by tuning filling and wrapping commands
 to deal with them correctly.
 
-   Every item in a plain list can be made a checkbox by starting it with
-the string `[ ]'.  The checkbox status can conveniently be toggled with
-`C-c C-c'.
-
-     * Stupid mistakes when distributing a new version
-       - [ ] update also Emacs CVS
-       - [X] forget to update index.html on the website
-       - [X] leaving a `(debug)' form in the code
-
    The following commands act on items when the cursor is in the first
 line of an item (the line with the bullet or number).
 
@@ -749,7 +742,7 @@ line of an item (the line with the bullet or number).
      contain the bullet, a bullet is added to the current line.  
 
 `M-S-<RET>'
-     Insert a new item with a checkbox.  
+     Insert a new item with a checkbox (*note Checkboxes::).  
 
 `S-<up>'
 `S-<down>'
@@ -771,9 +764,9 @@ line of an item (the line with the bullet or number).
      hierarchy, break the command chain with a cursor motion or so.  
 
 `C-c C-c'
-     If there is a checkbox in the item line, toggle the state of the
-     checkbox.  Otherwise, if this is an ordered list, renumber the
-     ordered list at the cursor.
+     If there is a checkbox (*note Checkboxes::) in the item line,
+     toggle the state of the checkbox.  Otherwise, if this is an
+     ordered list, renumber the ordered list at the cursor.
 
    ---------- Footnotes ----------
 
@@ -784,6 +777,48 @@ star are visually indistinguishable from true headlines.  In short:
 even though `*' is supported, it may be better not to use it for plain
 list items
 
+
+File: org,  Node: Checkboxes,  Prev: Plain lists,  Up: Document structure
+
+2.9 Checkboxes
+==============
+
+Every item in a plain list (ordered and unordered) can be made a
+checkbox by starting it with the string `[ ]'.  This feature is similar
+to TODO items (*note TODO items::), but more lightweight.  Checkboxes
+are not included into the global TODO list, so they are often great to
+split a task into a number of simple steps.  Or you can use them in a
+shopping list to select the items you need to buy.  To toggle a
+checkbox, use `C-c C-c', or try Piotr Zielinski's `org-mouse.el'.  Here
+is an example of a checkbox list.
+
+     * Avoid stupid mistakes when distributing a new version
+       - [ ] update also Emacs CVS
+       - [X] forget to update index.html on the website
+       - [X] leaving a `(debug)' form in the code
+
+The following commands work with checkboxes:
+
+`C-c C-c'
+     Toggle checkbox at point.  
+
+`C-c C-x C-b'
+     Toggle checkbox at point.
+        - If there is an active region, toggle the first checkbox in
+          the region and set all remaining boxes to the same status as
+          the first.  If you want to toggle all boxes in the region
+          independently, use a prefix argument.
+
+        - If the cursor is in a headline, toggle checkboxes in the
+          region between this headline and the next.  This does _not_
+          act on the entire subtree, just the current entry.
+
+        - If no active region, just toggle the checkbox at point.
+     
+`M-S-<RET>'
+     Insert a new item with a checkbox.  This works only if the cursor
+     is already in a plain list item (*note Plain lists::).
+
 
 File: org,  Node: Tables,  Next: Hyperlinks,  Prev: Document structure,  Up: Top
 
@@ -4537,7 +4572,7 @@ Index
 * CamelCase links, completion of:        CamelCase links.     (line   6)
 * category:                              Categories.          (line   6)
 * cdlatex.el:                            Cooperation.         (line  29)
-* checkboxes:                            Plain lists.         (line  36)
+* checkboxes:                            Checkboxes.          (line   6)
 * children, subtree visibility state:    Visibility cycling.  (line  10)
 * clean outline view:                    Clean view.          (line   6)
 * CLOCK keyword:                         Time stamps.         (line  61)
@@ -4839,7 +4874,7 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * <TAB> <2>:                             Agenda commands.     (line  35)
 * <TAB> <3>:                             Built-in table editor.
                                                               (line  57)
-* <TAB> <4>:                             Plain lists.         (line  48)
+* <TAB> <4>:                             Plain lists.         (line  39)
 * <TAB>:                                 Visibility cycling.  (line  10)
 * > <1>:                                 Agenda commands.     (line 151)
 * >:                                     Creating timestamps. (line  79)
@@ -4911,7 +4946,8 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
                                                               (line  16)
 * C-c C-c <6>:                           Built-in table editor.
                                                               (line  54)
-* C-c C-c:                               Plain lists.         (line  85)
+* C-c C-c <7>:                           Checkboxes.          (line  22)
+* C-c C-c:                               Plain lists.         (line  76)
 * C-c C-d <1>:                           Agenda commands.     (line 136)
 * C-c C-d:                               Creating timestamps. (line  37)
 * C-c C-f:                               Motion.              (line  12)
@@ -4937,6 +4973,7 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * C-c C-x b:                             HTML export.         (line  11)
 * C-c C-x c:                             iCalendar export.    (line  20)
 * C-c C-x C-a:                           ARCHIVE tag.         (line  27)
+* C-c C-x C-b:                           Checkboxes.          (line  23)
 * C-c C-x C-c:                           Agenda commands.     (line 198)
 * C-c C-x C-d:                           Clocking work time.  (line  28)
 * C-c C-x C-i <1>:                       iCalendar export.    (line  15)
@@ -4994,7 +5031,7 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * M-<left> <1>:                          Built-in table editor.
                                                               (line  72)
 * M-<left>:                              Structure editing.   (line  18)
-* M-<RET> <1>:                           Plain lists.         (line  53)
+* M-<RET> <1>:                           Plain lists.         (line  44)
 * M-<RET>:                               Structure editing.   (line   6)
 * M-<right> <1>:                         Built-in table editor.
                                                               (line  72)
@@ -5006,23 +5043,24 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
                                                               (line  82)
 * M-S-<down> <1>:                        Built-in table editor.
                                                               (line  89)
-* M-S-<down> <2>:                        Plain lists.         (line  70)
+* M-S-<down> <2>:                        Plain lists.         (line  61)
 * M-S-<down>:                            Structure editing.   (line  33)
 * M-S-<left> <1>:                        Creating timestamps. (line 100)
 * M-S-<left> <2>:                        Built-in table editor.
                                                               (line  76)
-* M-S-<left> <3>:                        Plain lists.         (line  76)
+* M-S-<left> <3>:                        Plain lists.         (line  67)
 * M-S-<left>:                            Structure editing.   (line  24)
-* M-S-<RET> <1>:                         Plain lists.         (line  63)
+* M-S-<RET> <1>:                         Checkboxes.          (line  37)
+* M-S-<RET> <2>:                         Plain lists.         (line  54)
 * M-S-<RET>:                             Structure editing.   (line  15)
 * M-S-<right> <1>:                       Creating timestamps. (line  97)
 * M-S-<right> <2>:                       Built-in table editor.
                                                               (line  79)
-* M-S-<right> <3>:                       Plain lists.         (line  76)
+* M-S-<right> <3>:                       Plain lists.         (line  67)
 * M-S-<right>:                           Structure editing.   (line  27)
 * M-S-<up> <1>:                          Built-in table editor.
                                                               (line  86)
-* M-S-<up> <2>:                          Plain lists.         (line  70)
+* M-S-<up> <2>:                          Plain lists.         (line  61)
 * M-S-<up>:                              Structure editing.   (line  30)
 * mouse-1 <1>:                           Agenda commands.     (line  35)
 * mouse-1 <2>:                           Creating timestamps. (line  82)
@@ -5043,7 +5081,7 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * S-<down> <1>:                          Agenda commands.     (line 129)
 * S-<down> <2>:                          Creating timestamps. (line  58)
 * S-<down> <3>:                          Priorities.          (line  25)
-* S-<down>:                              Plain lists.         (line  66)
+* S-<down>:                              Plain lists.         (line  57)
 * S-<left> <1>:                          Agenda commands.     (line 147)
 * S-<left> <2>:                          Creating timestamps. (line  53)
 * S-<left>:                              TODO basics.         (line  20)
@@ -5058,7 +5096,7 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * S-<up> <1>:                            Agenda commands.     (line 123)
 * S-<up> <2>:                            Creating timestamps. (line  58)
 * S-<up> <3>:                            Priorities.          (line  25)
-* S-<up>:                                Plain lists.         (line  66)
+* S-<up>:                                Plain lists.         (line  57)
 * T:                                     Agenda commands.     (line 104)
 * t:                                     Agenda commands.     (line 100)
 * w:                                     Agenda commands.     (line  62)
@@ -5069,136 +5107,137 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 
 Tag Table:
 Node: Top959
-Node: Introduction9455
-Node: Summary9768
-Node: Installation12035
-Node: Feedback13824
-Node: Document structure14595
-Node: Outlines15361
-Node: Headlines16021
-Node: Visibility cycling16644
-Ref: Visibility cycling-Footnote-118119
-Ref: Visibility cycling-Footnote-218177
-Node: Motion18227
-Node: Structure editing19011
-Node: Archiving21120
-Node: ARCHIVE tag21678
-Node: Moving subtrees23353
-Node: Sparse trees24394
-Ref: Sparse trees-Footnote-126373
-Ref: Sparse trees-Footnote-226465
-Node: Plain lists26580
-Ref: Plain lists-Footnote-130478
-Node: Tables30835
-Node: Built-in table editor31383
-Node: Narrow columns38990
-Ref: Narrow columns-Footnote-140929
-Node: Table calculations40975
-Node: Formula syntax42295
-Ref: Formula syntax-Footnote-145200
-Node: Lisp formulas45500
-Node: Column formulas46289
-Node: Advanced features48051
-Node: Named-field formulas51305
-Node: Editing/debugging formulas51945
-Node: Appetizer53703
-Node: orgtbl-mode54806
-Node: table.el55297
-Node: Hyperlinks56274
-Node: Link format56979
-Node: Internal links58272
-Ref: Internal links-Footnote-160261
-Node: Radio targets60393
-Node: CamelCase links61108
-Node: External links61606
-Node: Handling links63737
-Ref: Handling links-Footnote-168323
-Node: Search options68560
-Ref: Search options-Footnote-170334
-Node: Custom searches70415
-Node: Remember71463
-Node: TODO items75153
-Node: TODO basics76017
-Node: TODO extensions77544
-Node: Workflow states78339
-Node: TODO types79207
-Ref: TODO types-Footnote-180865
-Node: Per file keywords80947
-Ref: Per file keywords-Footnote-182401
-Node: Priorities82629
-Node: Timestamps83845
-Node: Time stamps84235
-Node: Creating timestamps87332
-Node: Progress logging90678
-Node: Closing items91208
-Node: Clocking work time92003
-Node: Tags94172
-Node: Tag inheritance94934
-Node: Setting tags95871
-Ref: Setting tags-Footnote-199001
-Ref: Setting tags-Footnote-299113
-Node: Tag searches99193
-Node: Agenda views100402
-Node: Agenda files101946
-Ref: Agenda files-Footnote-1102906
-Ref: Agenda files-Footnote-2103055
-Node: Agenda dispatcher103247
-Node: Weekly/Daily agenda105363
-Node: Categories106498
-Node: Time-of-day specifications107146
-Node: Calendar/Diary integration109122
-Node: Sorting of agenda items110499
-Node: Global TODO list111331
-Node: Matching headline tags112692
-Node: Timeline113635
-Node: Agenda commands114508
-Node: Embedded LaTeX120286
-Ref: Embedded LaTeX-Footnote-1121378
-Node: Math symbols121568
-Node: Subscripts and Superscripts122333
-Node: LaTeX fragments123177
-Node: Processing LaTeX fragments125246
-Node: CDLaTeX mode126192
-Ref: CDLaTeX mode-Footnote-1128676
-Node: Exporting128824
-Node: ASCII export129961
-Node: HTML export131251
-Node: XOXO export134087
-Node: iCalendar export134528
-Node: Text interpretation136353
-Node: Comment lines136832
-Node: Enhancing text137303
-Node: Export options138995
-Node: Publishing140662
-Ref: Publishing-Footnote-1141458
-Node: Configuration141654
-Node: Project alist142372
-Node: Sources and destinations143438
-Node: Selecting files143985
-Node: Publishing action144733
-Node: Publishing options145848
-Node: Publishing links148000
-Node: Project page index149513
-Node: Sample configuration150291
-Node: Simple example150783
-Node: Complex example151456
-Node: Triggering publication153532
-Node: Miscellaneous154188
-Node: Completion154822
-Node: Customization155818
-Node: In-buffer settings156403
-Node: The very busy C-c C-c key159634
-Node: Clean view161271
-Node: TTY keys163848
-Node: Interaction165457
-Node: Cooperation165854
-Node: Conflicts167756
-Node: Bugs169348
-Node: Extensions and Hacking170971
-Node: Extensions171457
-Node: Dynamic blocks173027
-Node: History and Acknowledgments174945
-Node: Index179726
-Node: Key Index202566
+Node: Introduction9515
+Node: Summary9828
+Node: Installation12095
+Node: Feedback13884
+Node: Document structure14655
+Node: Outlines15481
+Node: Headlines16141
+Node: Visibility cycling16764
+Ref: Visibility cycling-Footnote-118239
+Ref: Visibility cycling-Footnote-218297
+Node: Motion18347
+Node: Structure editing19131
+Node: Archiving21240
+Node: ARCHIVE tag21798
+Node: Moving subtrees23473
+Node: Sparse trees24514
+Ref: Sparse trees-Footnote-126493
+Ref: Sparse trees-Footnote-226585
+Node: Plain lists26700
+Ref: Plain lists-Footnote-130305
+Node: Checkboxes30662
+Node: Tables32299
+Node: Built-in table editor32847
+Node: Narrow columns40454
+Ref: Narrow columns-Footnote-142393
+Node: Table calculations42439
+Node: Formula syntax43759
+Ref: Formula syntax-Footnote-146664
+Node: Lisp formulas46964
+Node: Column formulas47753
+Node: Advanced features49515
+Node: Named-field formulas52769
+Node: Editing/debugging formulas53409
+Node: Appetizer55167
+Node: orgtbl-mode56270
+Node: table.el56761
+Node: Hyperlinks57738
+Node: Link format58443
+Node: Internal links59736
+Ref: Internal links-Footnote-161725
+Node: Radio targets61857
+Node: CamelCase links62572
+Node: External links63070
+Node: Handling links65201
+Ref: Handling links-Footnote-169787
+Node: Search options70024
+Ref: Search options-Footnote-171798
+Node: Custom searches71879
+Node: Remember72927
+Node: TODO items76617
+Node: TODO basics77481
+Node: TODO extensions79008
+Node: Workflow states79803
+Node: TODO types80671
+Ref: TODO types-Footnote-182329
+Node: Per file keywords82411
+Ref: Per file keywords-Footnote-183865
+Node: Priorities84093
+Node: Timestamps85309
+Node: Time stamps85699
+Node: Creating timestamps88796
+Node: Progress logging92142
+Node: Closing items92672
+Node: Clocking work time93467
+Node: Tags95636
+Node: Tag inheritance96398
+Node: Setting tags97335
+Ref: Setting tags-Footnote-1100465
+Ref: Setting tags-Footnote-2100577
+Node: Tag searches100657
+Node: Agenda views101866
+Node: Agenda files103410
+Ref: Agenda files-Footnote-1104370
+Ref: Agenda files-Footnote-2104519
+Node: Agenda dispatcher104711
+Node: Weekly/Daily agenda106827
+Node: Categories107962
+Node: Time-of-day specifications108610
+Node: Calendar/Diary integration110586
+Node: Sorting of agenda items111963
+Node: Global TODO list112795
+Node: Matching headline tags114156
+Node: Timeline115099
+Node: Agenda commands115972
+Node: Embedded LaTeX121750
+Ref: Embedded LaTeX-Footnote-1122842
+Node: Math symbols123032
+Node: Subscripts and Superscripts123797
+Node: LaTeX fragments124641
+Node: Processing LaTeX fragments126710
+Node: CDLaTeX mode127656
+Ref: CDLaTeX mode-Footnote-1130140
+Node: Exporting130288
+Node: ASCII export131425
+Node: HTML export132715
+Node: XOXO export135551
+Node: iCalendar export135992
+Node: Text interpretation137817
+Node: Comment lines138296
+Node: Enhancing text138767
+Node: Export options140459
+Node: Publishing142126
+Ref: Publishing-Footnote-1142922
+Node: Configuration143118
+Node: Project alist143836
+Node: Sources and destinations144902
+Node: Selecting files145449
+Node: Publishing action146197
+Node: Publishing options147312
+Node: Publishing links149464
+Node: Project page index150977
+Node: Sample configuration151755
+Node: Simple example152247
+Node: Complex example152920
+Node: Triggering publication154996
+Node: Miscellaneous155652
+Node: Completion156286
+Node: Customization157282
+Node: In-buffer settings157867
+Node: The very busy C-c C-c key161098
+Node: Clean view162735
+Node: TTY keys165312
+Node: Interaction166921
+Node: Cooperation167318
+Node: Conflicts169220
+Node: Bugs170812
+Node: Extensions and Hacking172435
+Node: Extensions172921
+Node: Dynamic blocks174491
+Node: History and Acknowledgments176409
+Node: Index181190
+Node: Key Index204030
 
 End Tag Table

+ 68 - 32
org.el

@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
-;; Version: 4.40
+;; Version: 4.41
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -90,6 +90,12 @@
 ;;
 ;; Recent changes
 ;; --------------
+;; Version 4.41
+;;    - Shift-curser keys can modify inactive time stamps (inactive time
+;;      stamps are the ones in [...] brackets.
+;;    - Toggle all checkboxes in a region/below a headline.
+;;    - Bug fixes.
+;;
 ;; Version 4.40
 ;;    - Bug fixes.
 ;;
@@ -199,7 +205,7 @@
 
 ;;; Customization variables
 
-(defvar org-version "4.40"
+(defvar org-version "4.41"
   "The version number of the file org.el.")
 (defun org-version ()
   (interactive)
@@ -1905,6 +1911,11 @@ headline  Only export the headline, but skip the tree below it."
   :group 'org-export
   :type 'boolean)
 
+(defcustom org-export-remove-timestamps-from-toc t
+  "Nil means, remove timestamps from the table of contents entries."
+  :group 'org-export
+  :type 'boolean)
+
 (defcustom org-export-with-tags t
   "Nil means, do not export tags, just remove them from headlines."
   :group 'org-export-general
@@ -3075,10 +3086,12 @@ that will be added to PLIST.  Returns the string that was modified."
   "Regular expression for fast time stamp matching.")
 (defconst org-ts-regexp-both "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^\r\n>]*?\\)[]>]"
   "Regular expression for fast time stamp matching.")
-(defconst org-ts-regexp1 "\\(\\([0-9]\\{4\\}\\)-\\([0-9]\\{2\\}\\)-\\([0-9]\\{2\\}\\)\\([^0-9>\r\n]*\\)\\(\\([0-9]\\{2\\}\\):\\([0-9]\\{2\\}\\)\\)?\\)"
+(defconst org-ts-regexp1 "\\(\\([0-9]\\{4\\}\\)-\\([0-9]\\{2\\}\\)-\\([0-9]\\{2\\}\\)\\([^]0-9>\r\n]*\\)\\(\\([0-9]\\{2\\}\\):\\([0-9]\\{2\\}\\)\\)?\\)"
   "Regular expression matching time strings for analysis.")
 (defconst org-ts-regexp2 (concat "<" org-ts-regexp1 ">")
   "Regular expression matching time stamps, with groups.")
+(defconst org-ts-regexp3 (concat "[[<]" org-ts-regexp1 "[]>]")
+  "Regular expression matching time stamps (also [..]), with groups.")
 (defconst org-tr-regexp (concat org-ts-regexp "--?-?" org-ts-regexp)
   "Regular expression matching a time stamp range.")
 (defconst org-tsr-regexp (concat org-ts-regexp "\\(--?-?"
@@ -4157,12 +4170,31 @@ If optional TXT is given, check this string instead of the current kill."
 	 (skip-chars-forward " \t")
 	 (looking-at "\\[[ X]\\]"))))
 
-(defun org-toggle-checkbox ()
+(defun org-toggle-checkbox (&optional arg)
   "Toggle the checkbox in the current line."
-  (interactive)
-  (save-excursion
-    (if (org-at-item-checkbox-p)
-	(replace-match (if (equal (match-string 0) "[ ]") "[X]" "[ ]") t t))))
+  (interactive "P")
+  (catch 'exit
+    (let (beg end status (firstnew 'unknown))
+      (cond
+       ((org-region-active-p)
+	(setq beg (region-beginning) end (region-end)))
+       ((org-on-heading-p)
+	(setq beg (point) end (save-excursion (outline-next-heading) (point))))
+       ((org-at-item-checkbox-p)
+	(save-excursion
+	  (replace-match (if (equal (match-string 0) "[ ]") "[X]" "[ ]") t t))
+	(throw 'exit t))
+       (t (error "Not at a checkbox or heading, and no active region")))
+      (save-excursion
+	(goto-char beg)
+	(while (< (point) end)
+	  (when (org-at-item-checkbox-p)
+	    (setq status (equal (match-string 0) "[X]"))
+	    (when (eq firstnew 'unknown)
+	      (setq firstnew (not status)))
+	    (replace-match 
+	     (if (if arg (not status) firstnew) "[X]" "[ ]") t t))
+	  (beginning-of-line 2))))))
 
 (defun org-get-indentation (&optional line)
   "Get the indentation of the current line, interpreting tabs.
@@ -4216,7 +4248,7 @@ If the cursor is not in an item, throw an error."
 	    (while t
 	      (beginning-of-line 0)
 	      (if (< (point) limit) (throw 'exit nil))
-	      (unless (looking-at " \t]*$")
+	      (unless (looking-at "[ \t]*$")
 		(skip-chars-forward " \t")
 		(setq ind1 (current-column))
 		(if (< ind1 ind)
@@ -4575,7 +4607,7 @@ When TAG is non-nil, don't move trees, but mark them with the ARCHIVE tag."
     (save-excursion
       (goto-char begm)
       (while (re-search-forward re1 endm t)
-	      beg (match-beginning 0)
+	(setq beg (match-beginning 0)
 	      end (save-excursion (org-end-of-subtree t) (point)))
 	(goto-char beg)
 	(if (re-search-forward re end t)
@@ -4588,10 +4620,9 @@ When TAG is non-nil, don't move trees, but mark them with the ARCHIVE tag."
 		    (org-toggle-tag org-archive-tag 'on)
 		  (org-archive-subtree))
 		(setq cntarch (1+ cntarch)))
-	    (goto-char end))))
+	    (goto-char end)))))
     (message "%d trees archived" cntarch)))
 
-
 (defun org-cycle-hide-archived-subtrees (state)
   "Re-hide all archived subtrees after a visibility state change."
   (when (and (not org-cycle-open-archived-trees)
@@ -4658,6 +4689,7 @@ the children that do not contain any open TODO items."
 
 (defun org-prepare-agenda-buffers (files)
   "Create buffers for all agenda files, protect archived trees and comments."
+  (interactive)
   (let ((pa '(:org-archived t))
 	(pc '(:org-comment t))
 	(pall '(:org-archived t :org-comment t))
@@ -4674,12 +4706,12 @@ the children that do not contain any open TODO items."
 	    (goto-char (point-min))
 	    (while (re-search-forward rea nil t)
 	      (if (org-on-heading-p)
-		  (add-text-properties (point-at-bol) (org-end-of-subtree) pa))))
+		  (add-text-properties (point-at-bol) (org-end-of-subtree t) pa))))
 	  (goto-char (point-min))
 	  (setq re (concat "^\\*+ +" org-comment-string "\\>"))
 	  (while (re-search-forward re nil t)
 	    (add-text-properties
-	     (match-beginning 0) (org-end-of-subtree) pc)))))))
+	     (match-beginning 0) (org-end-of-subtree t) pc)))))))
 
 (defun org-agenda-skip ()
   "Throw to `:skip' in places that should be skipped."
@@ -5686,7 +5718,7 @@ With prefix ARG, change by that many units."
   "Increase the date in the time stamp by one day.
 With prefix ARG, change that many days."
   (interactive "p")
-  (if (and (not (org-at-timestamp-p))
+  (if (and (not (org-at-timestamp-p t))
 	   (org-on-heading-p))
       (org-todo 'up)
     (org-timestamp-change (prefix-numeric-value arg) 'day)))
@@ -5695,7 +5727,7 @@ With prefix ARG, change that many days."
   "Decrease the date in the time stamp by one day.
 With prefix ARG, change that many days."
   (interactive "p")
-  (if (and (not (org-at-timestamp-p))
+  (if (and (not (org-at-timestamp-p t))
 	   (org-on-heading-p))
       (org-todo 'down)
     (org-timestamp-change (- (prefix-numeric-value arg)) 'day)))
@@ -5705,14 +5737,14 @@ With prefix ARG, change that many days."
        (<= (match-beginning n) pos)
        (>= (match-end n) pos)))
 
-(defun org-at-timestamp-p ()
+(defun org-at-timestamp-p (&optional also-inactive)
   "Determine if the cursor is in or at a timestamp."
   (interactive)
-  (let* ((tsr org-ts-regexp2)
+  (let* ((tsr (if also-inactive org-ts-regexp3 org-ts-regexp2))
 	 (pos (point))
 	 (ans (or (looking-at tsr)
 		  (save-excursion
-		    (skip-chars-backward "^<\n\r\t")
+		    (skip-chars-backward "^[<\n\r\t")
 		    (if (> (point) 1) (backward-char 1))
 		    (and (looking-at tsr)
 			 (> (- (match-end 0) pos) -1))))))
@@ -5737,7 +5769,7 @@ in the timestamp determines what will be changed."
 	org-ts-what
 	(pos (point))
 	ts time time0)
-    (if (not (org-at-timestamp-p))
+    (if (not (org-at-timestamp-p t))
 	(error "Not at a timestamp"))
     (setq org-ts-what (or what org-ts-what))
     (setq fmt (if (<= (abs (- (cdr org-ts-lengths)
@@ -5745,6 +5777,8 @@ in the timestamp determines what will be changed."
 		      1)
 		  (cdr org-time-stamp-formats)
 		(car org-time-stamp-formats)))
+    (if (= (char-after (match-beginning 0)) ?\[)
+	(setq fmt (concat "[" (substring fmt 1 -1) "]")))
     (setq ts (match-string 0))
     (replace-match "")
     (setq time0 (org-parse-time-string ts))
@@ -13819,7 +13853,7 @@ lang=\"%s\" xml:lang=\"%s\">
 				   level (org-tr-level level)
 				   txt (save-match-data
 					 (org-html-expand
-					  (org-html-cleanup-toc-line
+					  (org-export-cleanup-toc-line
 					   (match-string 3 line))))
 				   todo
 				   (or (and org-export-mark-todo-in-toc
@@ -14055,9 +14089,9 @@ lang=\"%s\" xml:lang=\"%s\">
 	    ;; Normal lines
 	    (when (string-match
 		   (cond
-		    ((eq llt t) "^\\([ \t]*\\)\\(\\([-+*]\\)\\|\\([0-9]+[.)]\\) \\)?\\( *[^ \t\n\r]\\|[ \t]*$\\)")
-		    ((= llt ?.) "^\\([ \t]*\\)\\(\\([-+*]\\)\\|\\([0-9]+\\.\\) \\)?\\( *[^ \t\n\r]\\|[ \t]*$\\)")
-		    ((= llt ?\)) "^\\( \t]*\\)\\(\\([-+*]\\)\\|\\([0-9]+)\\) \\)?\\( *[^ \t\n\r]\\|[ \t]*$\\)")
+		    ((eq llt t) "^\\([ \t]*\\)\\(\\([-+*] \\)\\|\\([0-9]+[.)]\\) \\)?\\( *[^ \t\n\r]\\|[ \t]*$\\)")
+		    ((= llt ?.) "^\\([ \t]*\\)\\(\\([-+*] \\)\\|\\([0-9]+\\.\\) \\)?\\( *[^ \t\n\r]\\|[ \t]*$\\)")
+		    ((= llt ?\)) "^\\( \t]*\\)\\(\\([-+*] \\)\\|\\([0-9]+)\\) \\)?\\( *[^ \t\n\r]\\|[ \t]*$\\)")
 		    (t (error "Invalid value of `org-plain-list-ordered-item-terminator'")))
 		   line)
 	      (setq ind (org-get-string-indentation line)
@@ -14345,12 +14379,13 @@ But it has the disadvantage, that Org-mode's HTML conversions cannot be used."
       (setq s (replace-match "&gt;" t t s))))
   s)
 
-(defun org-html-cleanup-toc-line (s)
+(defun org-export-cleanup-toc-line (s)
   "Remove tags and time staps from lines going into the toc."
   (if (string-match " +:[a-zA-Z0-9_@:]+: *$" s)
       (setq s (replace-match "" t t s)))
-  (while (string-match org-maybe-keyword-time-regexp s)
-    (setq s (replace-match "" t t s)))
+  (when org-export-remove-timestamps-from-toc
+    (while (string-match org-maybe-keyword-time-regexp s)
+      (setq s (replace-match "" t t s))))
   s)
 
 (defun org-html-expand (string)
@@ -15219,6 +15254,7 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
 (define-key org-mode-map "\C-c\C-x\C-r" 'org-clock-report)
 (define-key org-mode-map "\C-c\C-x\C-u" 'org-dblock-update)
 (define-key org-mode-map "\C-c\C-x\C-l" 'org-preview-latex-fragment)
+(define-key org-mode-map "\C-c\C-x\C-b" 'org-toggle-checkbox)
 
 (when (featurep 'xemacs)
   (define-key org-mode-map 'button3   'popup-mode-menu))
@@ -15435,7 +15471,7 @@ Calls `org-timestamp-up' or `org-priority-up', depending on context.
 See the individual commands for more information."
   (interactive "P")
   (cond
-   ((org-at-timestamp-p) (call-interactively 'org-timestamp-up))
+   ((org-at-timestamp-p t) (call-interactively 'org-timestamp-up))
    ((org-on-heading-p) (call-interactively 'org-priority-up))
    ((org-at-item-p) (call-interactively 'org-previous-item))
    (t (call-interactively 'org-beginning-of-item) (beginning-of-line 1))))
@@ -15446,7 +15482,7 @@ Calls `org-timestamp-down' or `org-priority-down', depending on context.
 See the individual commands for more information."
   (interactive "P")
   (cond
-   ((org-at-timestamp-p) (call-interactively 'org-timestamp-down))
+   ((org-at-timestamp-p t) (call-interactively 'org-timestamp-down))
    ((org-on-heading-p) (call-interactively 'org-priority-down))
    (t (call-interactively 'org-next-item))))
 
@@ -15454,7 +15490,7 @@ See the individual commands for more information."
   "Next TODO keyword or timestamp one day later, depending on context."
   (interactive)
   (cond
-   ((org-at-timestamp-p) (call-interactively 'org-timestamp-up-day))
+   ((org-at-timestamp-p t) (call-interactively 'org-timestamp-up-day))
    ((org-on-heading-p) (org-call-with-arg 'org-todo 'right))
    (t (org-shiftcursor-error))))
 
@@ -15462,7 +15498,7 @@ See the individual commands for more information."
   "Previous TODO keyword or timestamp one day earlier, depending on context."
   (interactive)
   (cond
-   ((org-at-timestamp-p) (call-interactively 'org-timestamp-down-day))
+   ((org-at-timestamp-p t) (call-interactively 'org-timestamp-down-day))
    ((org-on-heading-p) (org-call-with-arg 'org-todo 'left))
    (t (org-shiftcursor-error))))
 
@@ -15986,7 +16022,7 @@ return nil."
   (set (make-local-variable 'paragraph-separate) "\f\\|\\*\\|[ 	]*$\\|[ \t]*[:|]")
   ;; The paragraph starter includes hand-formatted lists.
   (set (make-local-variable 'paragraph-start)
-       "\f\\|[ 	]*$\\|\\([*\f]+\\)\\|[ \t]*\\([-+*]\\|[0-9]+[.)][ \t]+\\)\\|[ \t]*[:|]")
+       "\f\\|[ 	]*$\\|\\([*\f]+\\)\\|[ \t]*\\([-+*][ \t]+\\|[0-9]+[.)][ \t]+\\)\\|[ \t]*[:|]")
   ;; Inhibit auto-fill for headers, tables and fixed-width lines.
   ;; But only if the user has not turned off tables or fixed-width regions
   (set (make-local-variable 'auto-fill-inhibit-regexp)

BIN
org.pdf


+ 57 - 18
org.texi

@@ -3,7 +3,7 @@
 @setfilename ../info/org
 @settitle Org Mode Manual
 
-@set VERSION 4.40
+@set VERSION 4.41
 @set DATE June 2006
 
 @dircategory Emacs
@@ -111,6 +111,7 @@ Document Structure
 * Archiving::                   Move done task trees to a different place
 * Sparse trees::                Matches embedded in context
 * Plain lists::                 Editing hand-formatted lists
+* Checkboxes::                  Easily checking off things.
 
 Archiving
 
@@ -419,6 +420,7 @@ edit the structure of the document.
 * Archiving::                   Move done task trees to a different place
 * Sparse trees::                Matches embedded in context
 * Plain lists::                 Editing hand-formatted lists
+* Checkboxes::                  Easily checking off things.
 @end menu
 
 @node Outlines, Headlines, Document structure, Document structure
@@ -780,7 +782,7 @@ Or you can use the command @kbd{C-c C-x v} to export only the visible
 part of the document and print the resulting file.
 
 
-@node Plain lists,  , Sparse trees, Document structure
+@node Plain lists, Checkboxes, Sparse trees, Document structure
 @section Plain lists
 @cindex plain lists
 @cindex lists, plain
@@ -827,18 +829,6 @@ But in the end, not individual scenes matter but the film as a whole.
 Org-mode supports these lists by tuning filling and wrapping commands
 to deal with them correctly.  
 
-@cindex checkboxes
-Every item in a plain list can be made a checkbox by starting it with
-the string @samp{[ ]}.  The checkbox status can conveniently be toggled
-with @kbd{C-c C-c}.
-
-@example
-* Stupid mistakes when distributing a new version
-  - [ ] update also Emacs CVS
-  - [X] forget to update index.html on the website
-  - [X] leaving a `(debug)' form in the code
-@end example
-
 The following commands act on items when the cursor is in the first line
 of an item (the line with the bullet or number).
 
@@ -862,7 +852,7 @@ an item but does not contain the bullet, a bullet is added to the
 current line.
 @kindex M-S-@key{RET}
 @item M-S-@key{RET}
-Insert a new item with a checkbox.
+Insert a new item with a checkbox (@pxref{Checkboxes}).
 @kindex S-@key{up}
 @kindex S-@key{down}
 @item S-@key{up}
@@ -887,11 +877,60 @@ would imply a different hierarchy.  To use the new hierarchy, break
 the command chain with a cursor motion or so.
 @kindex C-c C-c
 @item C-c C-c
-If there is a checkbox in the item line, toggle the state of the
-checkbox.  Otherwise, if this is an ordered list, renumber the ordered
-list at the cursor.
+If there is a checkbox (@pxref{Checkboxes}) in the item line, toggle the
+state of the checkbox.  Otherwise, if this is an ordered list, renumber
+the ordered list at the cursor.
 @end table
 
+@page
+@node Checkboxes,  , Plain lists, Document structure
+@section Checkboxes
+@cindex checkboxes
+
+Every item in a plain list (ordered and unordered) can be made a
+checkbox by starting it with the string @samp{[ ]}.  This feature is
+similar to TODO items (@pxref{TODO items}), but more lightweight.
+Checkboxes are not included into the global TODO list, so they are often
+great to split a task into a number of simple steps.  Or you can use
+them in a shopping list to select the items you need to buy.  To toggle
+a checkbox, use @kbd{C-c C-c}, or try Piotr Zielinski's
+@file{org-mouse.el}.  Here is an example of a checkbox list.
+
+@example
+* Avoid stupid mistakes when distributing a new version
+  - [ ] update also Emacs CVS
+  - [X] forget to update index.html on the website
+  - [X] leaving a `(debug)' form in the code
+@end example
+
+@noindent The following commands work with checkboxes:
+
+@table @kbd
+@kindex C-c C-c
+@item C-c C-c
+Toggle checkbox at point.
+@kindex C-c C-x C-b
+@item C-c C-x C-b
+Toggle checkbox at point.
+@itemize @minus
+@item
+If there is an active region, toggle the first checkbox in the region
+and set all remaining boxes to the same status as the first.  If you
+want to toggle all boxes in the region independently, use a prefix
+argument.
+@item
+If the cursor is in a headline, toggle checkboxes in the region between
+this headline and the next.  This does @emph{not} act on the entire
+subtree, just the current entry.
+@item
+If no active region, just toggle the checkbox at point.
+@end itemize
+@kindex M-S-@key{RET}
+@item M-S-@key{RET}
+Insert a new item with a checkbox.
+This works only if the cursor is already in a plain list item
+(@pxref{Plain lists}).
+@end table
 
 @node Tables, Hyperlinks, Document structure, Top
 @chapter Tables

BIN
orgcard.pdf


+ 4 - 2
orgcard.tex

@@ -1,5 +1,5 @@
 % Reference Card for Org Mode
-\def\orgversionnumber{4.40}
+\def\orgversionnumber{4.41}
 \def\year{2006}
 %
 %**start of header
@@ -297,7 +297,9 @@ are preserved on all copies.
 \section{Structure Editing}
 
 \key{insert new heading/item at current level}{M-RET}
-\key{insert new TODO entry}{M-S-RET}
+\key{insert new TODO entry/checkbox item}{M-S-RET}
+\key{toggle checkbox(es) in region/entry/at point}{C-c C-x C-b}
+\key{toggle checkbox at point}{C-c C-c}
 
 \key{promote current heading up one level}{M-LEFT}
 \key{demote current heading down one level}{M-RIGHT}