Bladeren bron

Release 5.07

Carsten Dominik 17 jaren geleden
bovenliggende
commit
05df3bb8a1
8 gewijzigde bestanden met toevoegingen van 710 en 543 verwijderingen
  1. 6 6
      Makefile
  2. 357 347
      org
  3. 44 54
      org-export-latex.el
  4. 273 116
      org.el
  5. BIN
      org.pdf
  6. 28 18
      org.texi
  7. BIN
      orgcard.pdf
  8. 2 2
      orgcard.tex

+ 6 - 6
Makefile

@@ -103,8 +103,8 @@ org-install.elc:	org-install.el
 
 xemacs/noutline.elc: xemacs/noutline.el
 
-#org:	org.texi
-#	$(MAKEINFO) --no-split org.texi -o org
+org:	org.texi
+	$(MAKEINFO) --no-split org.texi -o org
 
 org.pdf: org.texi
 	$(TEXI2PDF) org.texi
@@ -133,8 +133,8 @@ orgcard_letter.ps: orgcard_letter.dvi
 
 # Below here are special targets for maintenance only
 
-#info:	
-#	$(MAKEINFO) --no-split org.texi -o org
+info:	
+	$(MAKEINFO) --no-split org.texi -o org
 
 pdf:	org.pdf
 
@@ -148,8 +148,8 @@ ecompile:
 
 distfile:
 	@if [ "X$(TAG)" = "X" ]; then echo "*** No tag ***"; exit 1; fi
-#	touch org.texi orgcard.tex
-#	make info
+	touch org.pdf orgcard.tex
+	make info
 	make doc
 	rm -rf org-$(TAG) org-$(TAG).zip
 	$(MKDIR) org-$(TAG)

+ 357 - 347
org

@@ -1,4 +1,4 @@
-This is org, produced by makeinfo version 4.7 from org.texi.
+This is org, produced by makeinfo version 4.8 from org.texi.
 
 INFO-DIR-SECTION Emacs
 START-INFO-DIR-ENTRY
@@ -744,8 +744,8 @@ File: org,  Node: Structure editing,  Next: Archiving,  Prev: Motion,  Up: Docum
      entries in the region will be sorted.  Otherwise the children of
      the current headline are sorted.  The command prompts for the
      sorting method, which can be alphabetically, numerically, by time
-     (using the first time stamp in each entry), and each of these in
-     reverse order.  With a `C-u' prefix, sorting will be
+     (using the first time stamp in each entry), by priority, and each
+     of these in reverse order.  With a `C-u' prefix, sorting will be
      case-sensitive.  With two `C-u C-u' prefixes, duplicate entries
      will also be removed.
 
@@ -829,7 +829,9 @@ file, the archive file.
 
 `C-c C-x C-s'
      Archive the subtree starting at the cursor position to the location
-     given by `org-archive-location'.  
+     given by `org-archive-location'.  Context information that could be
+     lost like the file name, the category, inherited tags, and the todo
+     state will be store as properties in the entry.  
 
 `C-u C-c C-x C-s'
      Check if any direct children of the current headline could be
@@ -1773,6 +1775,7 @@ the following commands:
      table header.  
 
 `C-u C-u C-c *'
+`C-u C-u C-c C-c'
      Iterate the table by recomputing it until no further changes occur.
      This may be necessary if some computed fields use the value of
      other fields that are computed later in the calculation sequence.
@@ -2493,6 +2496,14 @@ The most important commands to work with TODO entries are:
      Mostly useful if more than two TODO states are possible (*note
      TODO extensions::).  
 
+`C-c C-c'
+     Use the fast tag interface to quickly and directly select a
+     specific TODO state.  For this you need to assign keys to TODO
+     state, like this:
+          #+SEQ_TODO: TODO(t) STARTED(s) WAITING(w) | DONE(d)
+     See *Note Per file keywords:: and *Note Setting tags:: for more
+     information.  
+
 `C-c C-v'
      View TODO items in a _sparse tree_ (*note Sparse trees::).  Folds
      the entire buffer, but shows all TODO items and the headings
@@ -2655,9 +2666,9 @@ file:
 
    A setup for using several sets in parallel would be:
 
-     #+SEQ_TODO: "TODO" "|" "DONE"
-     #+SEQ_TODO: "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED"
-     #+SEQ_TODO: "|" "CANCELED"
+     #+SEQ_TODO: TODO | DONE
+     #+SEQ_TODO: REPORT BUG KNOWNCAUSE | FIXED
+     #+SEQ_TODO: | CANCELED
 
 To make sure you are using the correct keyword, type `#+' into the
 buffer and then use `M-<TAB>' completion.
@@ -7281,12 +7292,12 @@ Index
                                                               (line   6)
 * action, for publishing:                Publishing action.   (line   6)
 * activation:                            Activation.          (line   6)
-* active region <1>:                     Structure editing.   (line  64)
-* active region <2>:                     HTML Export commands.
+* active region <1>:                     HTML Export commands.
                                                               (line   6)
+* active region <2>:                     ASCII export.        (line   9)
 * active region <3>:                     Built-in table editor.
                                                               (line 141)
-* active region:                         ASCII export.        (line   9)
+* active region:                         Structure editing.   (line  64)
 * agenda:                                Weekly/Daily agenda. (line   6)
 * agenda dispatcher:                     Agenda dispatcher.   (line   6)
 * agenda files:                          Agenda files.        (line   6)
@@ -7294,7 +7305,7 @@ Index
 * agenda views:                          Agenda views.        (line   6)
 * agenda views, custom:                  Custom agenda views. (line   6)
 * agenda views, exporting <1>:           Exporting Agenda Views.
-                                                              (line  12)
+                                                              (line   6)
 * agenda views, exporting:               Agenda commands.     (line 228)
 * agenda views, user-defined:            Special agenda views.
                                                               (line   6)
@@ -7307,7 +7318,7 @@ Index
 * API, for properties <1>:               Using the property API.
                                                               (line   6)
 * API, for properties:                   Property API.        (line   6)
-* archive locations:                     Moving subtrees.     (line  21)
+* archive locations:                     Moving subtrees.     (line  23)
 * archiving:                             Archiving.           (line   6)
 * ASCII export:                          ASCII export.        (line   6)
 * author:                                Feedback.            (line   6)
@@ -7325,9 +7336,9 @@ Index
                                                               (line   6)
 * calc package:                          The spreadsheet.     (line   6)
 * calc.el:                               Cooperation.         (line   6)
-* calculations, in tables <1>:           Built-in table editor.
+* calculations, in tables <1>:           The spreadsheet.     (line   6)
+* calculations, in tables:               Built-in table editor.
                                                               (line 141)
-* calculations, in tables:               The spreadsheet.     (line   6)
 * calendar commands, from agenda:        Agenda commands.     (line 191)
 * calendar integration:                  Weekly/Daily agenda. (line  24)
 * calendar, for selecting date:          The date/time prompt.
@@ -7347,12 +7358,12 @@ Index
 * completion, of file names:             Handling links.      (line  43)
 * completion, of link abbreviations:     Completion.          (line   6)
 * completion, of links:                  Handling links.      (line  25)
-* completion, of option keywords <1>:    Export options.      (line   6)
-* completion, of option keywords <2>:    Completion.          (line   6)
+* completion, of option keywords <1>:    Completion.          (line   6)
+* completion, of option keywords <2>:    Export options.      (line   6)
 * completion, of option keywords:        Per file keywords.   (line  23)
 * completion, of property keys:          Completion.          (line   6)
-* completion, of tags <1>:               Setting tags.        (line  11)
-* completion, of tags:                   Completion.          (line   6)
+* completion, of tags <1>:               Completion.          (line   6)
+* completion, of tags:                   Setting tags.        (line  11)
 * completion, of TeX symbols:            Completion.          (line   6)
 * completion, of TODO keywords <1>:      Completion.          (line   6)
 * completion, of TODO keywords:          Workflow states.     (line  15)
@@ -7431,9 +7442,9 @@ Index
 * folded, subtree visibility state:      Visibility cycling.  (line  10)
 * folding, sparse trees:                 Sparse trees.        (line   6)
 * following links:                       Handling links.      (line  58)
-* footnote.el <1>:                       Footnotes.           (line   6)
+* footnote.el <1>:                       Conflicts.           (line  35)
 * footnote.el <2>:                       Cooperation.         (line  56)
-* footnote.el:                           Conflicts.           (line  35)
+* footnote.el:                           Footnotes.           (line   6)
 * footnotes <1>:                         Export options.      (line  25)
 * footnotes:                             Footnotes.           (line   6)
 * format specifier:                      Formula syntax for Calc.
@@ -7613,10 +7624,10 @@ Index
 * references, to ranges:                 References.          (line  60)
 * region, active <1>:                    HTML Export commands.
                                                               (line   6)
-* region, active <2>:                    Structure editing.   (line  64)
+* region, active <2>:                    ASCII export.        (line   9)
 * region, active <3>:                    Built-in table editor.
                                                               (line 141)
-* region, active:                        ASCII export.        (line   9)
+* region, active:                        Structure editing.   (line  64)
 * regular expressions, with tags search: Tag searches.        (line  63)
 * remember.el <1>:                       Cooperation.         (line  33)
 * remember.el:                           Remember.            (line   6)
@@ -7644,7 +7655,7 @@ Index
                                                               (line   6)
 * sparse tree, for deadlines:            Inserting deadline/schedule.
                                                               (line  11)
-* sparse tree, for TODO:                 TODO basics.         (line  26)
+* sparse tree, for TODO:                 TODO basics.         (line  34)
 * sparse tree, tag based:                Tags.                (line   6)
 * sparse trees:                          Sparse trees.        (line   6)
 * special keywords:                      In-buffer settings.  (line   6)
@@ -7671,9 +7682,9 @@ Index
                                                               (line   6)
 * table editor, table.el:                Cooperation.         (line  37)
 * table of contents:                     Export options.      (line  25)
-* table.el:                              Cooperation.         (line  37)
-* tables <1>:                            Tables.              (line   6)
-* tables:                                Export options.      (line  25)
+* table.el:                              Cooperation.         (line  34)
+* tables <1>:                            Export options.      (line  25)
+* tables:                                Tables.              (line   6)
 * tables, export:                        Enhancing text.      (line  24)
 * tables, in other modes:                Tables in arbitrary syntax.
                                                               (line   6)
@@ -7688,8 +7699,8 @@ Index
 * tasks, breaking down:                  Breaking down tasks. (line   6)
 * templates, for remember:               Remember templates.  (line   6)
 * TeX interpretation:                    Embedded LaTeX.      (line   6)
-* TeX macros <1>:                        Math symbols.        (line   6)
-* TeX macros:                            Export options.      (line  25)
+* TeX macros <1>:                        Export options.      (line  25)
+* TeX macros:                            Math symbols.        (line   6)
 * TeX macros, export:                    Enhancing text.      (line  21)
 * TeX symbol completion:                 Completion.          (line   6)
 * TeX-like syntax for sub- and superscripts: Export options.  (line  25)
@@ -7721,12 +7732,12 @@ Index
 * TODO list, global:                     Global TODO list.    (line   6)
 * TODO types:                            TODO types.          (line   6)
 * TODO workflow:                         Workflow states.     (line   6)
-* transient-mark-mode <1>:               Structure editing.   (line  64)
-* transient-mark-mode <2>:               HTML Export commands.
+* transient-mark-mode <1>:               HTML Export commands.
                                                               (line   6)
+* transient-mark-mode <2>:               ASCII export.        (line   9)
 * transient-mark-mode <3>:               Built-in table editor.
                                                               (line 141)
-* transient-mark-mode:                   ASCII export.        (line   9)
+* transient-mark-mode:                   Structure editing.   (line  64)
 * translator function:                   Translator functions.
                                                               (line   6)
 * trees, sparse:                         Sparse trees.        (line   6)
@@ -7773,27 +7784,27 @@ Key Index
 * <:                                     Using column view.   (line  54)
 * <left>:                                Agenda commands.     (line  95)
 * <RET> <1>:                             Agenda commands.     (line  39)
-* <RET> <2>:                             Setting tags.        (line  76)
-* <RET> <3>:                             The date/time prompt.
+* <RET> <2>:                             The date/time prompt.
                                                               (line  57)
+* <RET> <3>:                             Setting tags.        (line  76)
 * <RET>:                                 Built-in table editor.
                                                               (line  62)
 * <right>:                               Agenda commands.     (line  90)
-* <SPC> <1>:                             Setting tags.        (line  73)
-* <SPC>:                                 Agenda commands.     (line  28)
-* <TAB> <1>:                             Setting tags.        (line  68)
+* <SPC> <1>:                             Agenda commands.     (line  28)
+* <SPC>:                                 Setting tags.        (line  73)
+* <TAB> <1>:                             CDLaTeX mode.        (line  23)
 * <TAB> <2>:                             Agenda commands.     (line  33)
-* <TAB> <3>:                             Visibility cycling.  (line  10)
-* <TAB> <4>:                             Built-in table editor.
-                                                              (line  55)
-* <TAB> <5>:                             Editing and debugging formulas.
+* <TAB> <3>:                             Setting tags.        (line  68)
+* <TAB> <4>:                             Editing and debugging formulas.
                                                               (line  57)
-* <TAB> <6>:                             CDLaTeX mode.        (line  23)
-* <TAB>:                                 Plain lists.         (line  41)
-* > <1>:                                 Using column view.   (line  54)
+* <TAB> <5>:                             Built-in table editor.
+                                                              (line  55)
+* <TAB> <6>:                             Plain lists.         (line  41)
+* <TAB>:                                 Visibility cycling.  (line  10)
+* > <1>:                                 Agenda commands.     (line 171)
 * > <2>:                                 The date/time prompt.
                                                               (line  33)
-* >:                                     Agenda commands.     (line 171)
+* >:                                     Using column view.   (line  54)
 * ^:                                     CDLaTeX mode.        (line  33)
 * _:                                     CDLaTeX mode.        (line  33)
 * `:                                     CDLaTeX mode.        (line  39)
@@ -7817,9 +7828,9 @@ Key Index
 * C-c +:                                 Built-in table editor.
                                                               (line 141)
 * C-c ,:                                 Priorities.          (line  18)
-* C-c - <1>:                             Plain lists.         (line  88)
-* C-c -:                                 Built-in table editor.
+* C-c - <1>:                             Built-in table editor.
                                                               (line  90)
+* C-c -:                                 Plain lists.         (line  88)
 * C-c .:                                 Creating timestamps. (line  10)
 * C-c /:                                 Sparse trees.        (line  15)
 * C-c ::                                 Enhancing text.      (line  32)
@@ -7827,18 +7838,18 @@ Key Index
 * C-c <:                                 Creating timestamps. (line  23)
 * C-c <TAB>:                             Built-in table editor.
                                                               (line 161)
-* C-c = <1>:                             Column formulas.     (line  26)
-* C-c =:                                 Editing and debugging formulas.
+* C-c = <1>:                             Editing and debugging formulas.
                                                               (line  14)
+* C-c =:                                 Column formulas.     (line  26)
 * C-c >:                                 Creating timestamps. (line  27)
 * C-c ?:                                 Editing and debugging formulas.
                                                               (line  24)
 * C-c [:                                 Agenda files.        (line  12)
 * C-c \:                                 Tag searches.        (line   9)
 * C-c ]:                                 Agenda files.        (line  15)
-* C-c ^ <1>:                             Structure editing.   (line  52)
-* C-c ^:                                 Built-in table editor.
+* C-c ^ <1>:                             Built-in table editor.
                                                               (line  94)
+* C-c ^:                                 Structure editing.   (line  52)
 * C-c `:                                 Built-in table editor.
                                                               (line 157)
 * C-c a !:                               Stuck projects.      (line  14)
@@ -7850,49 +7861,47 @@ Key Index
 * C-c a L:                               Timeline.            (line  10)
 * C-c a M:                               Matching tags and properties.
                                                               (line  15)
-* C-c a m:                               Tag searches.        (line  12)
-* C-c a M:                               Tag searches.        (line  16)
 * C-c a m:                               Matching tags and properties.
                                                               (line  10)
+* C-c a M:                               Tag searches.        (line  16)
+* C-c a m:                               Tag searches.        (line  12)
 * C-c a T:                               Global TODO list.    (line  14)
 * C-c a t <1>:                           Global TODO list.    (line   9)
-* C-c a t:                               TODO basics.         (line  36)
+* C-c a t:                               TODO basics.         (line  44)
 * C-c C-a:                               Visibility cycling.  (line  33)
 * C-c C-b:                               Motion.              (line  15)
-* C-c C-c <1>:                           The very busy C-c C-c key.
+* C-c C-c <1>:                           Cooperation.         (line  37)
+* C-c C-c <2>:                           The very busy C-c C-c key.
                                                               (line   6)
-* C-c C-c <2>:                           Setting tags.        (line  10)
-* C-c C-c <3>:                           Checkboxes.          (line  37)
-* C-c C-c <4>:                           Processing LaTeX fragments.
+* C-c C-c <3>:                           Processing LaTeX fragments.
                                                               (line  15)
-* C-c C-c <5>:                           Editing and debugging formulas.
-                                                              (line  90)
-* C-c C-c <6>:                           Built-in table editor.
-                                                              (line  54)
-* C-c C-c <7>:                           Plain lists.         (line  81)
-* C-c C-c <8>:                           Cooperation.         (line  37)
-* C-c C-c <9>:                           Editing and debugging formulas.
+* C-c C-c <4>:                           Property syntax.     (line  54)
+* C-c C-c <5>:                           Setting tags.        (line  10)
+* C-c C-c <6>:                           Checkboxes.          (line  37)
+* C-c C-c <7>:                           TODO basics.         (line  26)
+* C-c C-c <8>:                           Editing and debugging formulas.
                                                               (line  46)
-* C-c C-c <10>:                          Cooperation.         (line  46)
-* C-c C-c:                               Property syntax.     (line  54)
-* C-c C-d <1>:                           Inserting deadline/schedule.
+* C-c C-c <9>:                           Built-in table editor.
+                                                              (line  54)
+* C-c C-c:                               Plain lists.         (line  81)
+* C-c C-d <1>:                           Agenda commands.     (line 156)
+* C-c C-d:                               Inserting deadline/schedule.
                                                               (line   9)
-* C-c C-d:                               Agenda commands.     (line 156)
 * C-c C-e:                               Exporting.           (line  20)
 * C-c C-e a:                             ASCII export.        (line   9)
 * C-c C-e b:                             HTML Export commands.
                                                               (line  13)
 * C-c C-e c:                             iCalendar export.    (line  21)
-* C-c C-e h:                             HTML Export commands.
-                                                              (line   6)
 * C-c C-e H:                             HTML Export commands.
                                                               (line  16)
-* C-c C-e i:                             iCalendar export.    (line  14)
-* C-c C-e I:                             iCalendar export.    (line  16)
-* C-c C-e l:                             LaTeX export commands.
+* C-c C-e h:                             HTML Export commands.
                                                               (line   6)
+* C-c C-e I:                             iCalendar export.    (line  16)
+* C-c C-e i:                             iCalendar export.    (line  14)
 * C-c C-e L:                             LaTeX export commands.
                                                               (line   7)
+* C-c C-e l:                             LaTeX export commands.
+                                                              (line   6)
 * C-c C-e R:                             HTML Export commands.
                                                               (line  19)
 * C-c C-e t:                             Export options.      (line  13)
@@ -7901,10 +7910,10 @@ Key Index
 * C-c C-e v a:                           ASCII export.        (line  16)
 * C-c C-e v b:                           HTML Export commands.
                                                               (line  24)
-* C-c C-e v h:                           HTML Export commands.
-                                                              (line  24)
 * C-c C-e v H:                           HTML Export commands.
                                                               (line  24)
+* C-c C-e v h:                           HTML Export commands.
+                                                              (line  24)
 * C-c C-e v L:                           LaTeX export commands.
                                                               (line  10)
 * C-c C-e v l:                           LaTeX export commands.
@@ -7919,27 +7928,27 @@ Key Index
 * C-c C-o <1>:                           Creating timestamps. (line  31)
 * C-c C-o:                               Handling links.      (line  58)
 * C-c C-p:                               Motion.              (line   9)
-* C-c C-q <1>:                           Built-in table editor.
-                                                              (line 125)
-* C-c C-q:                               Editing and debugging formulas.
+* C-c C-q <1>:                           Editing and debugging formulas.
                                                               (line  50)
+* C-c C-q:                               Built-in table editor.
+                                                              (line 125)
 * C-c C-r <1>:                           Editing and debugging formulas.
                                                               (line  53)
 * C-c C-r:                               Visibility cycling.  (line  34)
-* C-c C-s <1>:                           Inserting deadline/schedule.
+* C-c C-s <1>:                           Agenda commands.     (line 153)
+* C-c C-s:                               Inserting deadline/schedule.
                                                               (line  18)
-* C-c C-s:                               Agenda commands.     (line 153)
 * C-c C-t <1>:                           Clocking work time.  (line  27)
 * C-c C-t:                               TODO basics.         (line  13)
 * C-c C-u:                               Motion.              (line  18)
-* C-c C-v:                               TODO basics.         (line  26)
+* C-c C-v:                               TODO basics.         (line  34)
 * C-c C-w:                               Inserting deadline/schedule.
                                                               (line  11)
 * C-c C-x b:                             Visibility cycling.  (line  41)
 * C-c C-x C-a:                           ARCHIVE tag.         (line  28)
 * C-c C-x C-b:                           Checkboxes.          (line  39)
-* C-c C-x C-c <1>:                       Using column view.   (line   9)
-* C-c C-x C-c:                           Agenda commands.     (line 218)
+* C-c C-x C-c <1>:                       Agenda commands.     (line 218)
+* C-c C-x C-c:                           Using column view.   (line   9)
 * C-c C-x C-d:                           Clocking work time.  (line  35)
 * C-c C-x C-i:                           Clocking work time.  (line  12)
 * C-c C-x C-k:                           Structure editing.   (line  39)
@@ -7959,15 +7968,15 @@ Key Index
 * C-c C-x C-y <1>:                       Built-in table editor.
                                                               (line 118)
 * C-c C-x C-y:                           Structure editing.   (line  46)
-* C-c C-x M-w <1>:                       Structure editing.   (line  43)
-* C-c C-x M-w:                           Built-in table editor.
+* C-c C-x M-w <1>:                       Built-in table editor.
                                                               (line 111)
-* C-c C-y <1>:                           Creating timestamps. (line  48)
-* C-c C-y:                               Clocking work time.  (line  22)
+* C-c C-x M-w:                           Structure editing.   (line  43)
+* C-c C-y <1>:                           Clocking work time.  (line  22)
+* C-c C-y:                               Creating timestamps. (line  48)
 * C-c l:                                 Handling links.      (line   9)
-* C-c { <1>:                             Editing and debugging formulas.
+* C-c { <1>:                             CDLaTeX mode.        (line  21)
+* C-c {:                                 Editing and debugging formulas.
                                                               (line  33)
-* C-c {:                                 CDLaTeX mode.        (line  21)
 * C-c |:                                 Built-in table editor.
                                                               (line  40)
 * C-c }:                                 Editing and debugging formulas.
@@ -7987,12 +7996,13 @@ Key Index
 * C-u C-c C-c:                           Updating the table.  (line  19)
 * C-u C-c C-l:                           Handling links.      (line  43)
 * C-u C-c C-x C-a:                       ARCHIVE tag.         (line  31)
-* C-u C-c C-x C-s:                       Moving subtrees.     (line  12)
-* C-u C-c C-x C-u <1>:                   Clocking work time.  (line  70)
-* C-u C-c C-x C-u:                       Dynamic blocks.      (line  22)
+* C-u C-c C-x C-s:                       Moving subtrees.     (line  14)
+* C-u C-c C-x C-u <1>:                   Dynamic blocks.      (line  22)
+* C-u C-c C-x C-u:                       Clocking work time.  (line  70)
 * C-u C-u C-c *:                         Updating the table.  (line  22)
 * C-u C-u C-c =:                         Editing and debugging formulas.
                                                               (line  18)
+* C-u C-u C-c C-c:                       Updating the table.  (line  22)
 * C-x C-s:                               Editing and debugging formulas.
                                                               (line  46)
 * C-x C-w <1>:                           Exporting Agenda Views.
@@ -8004,8 +8014,8 @@ Key Index
 * f:                                     Agenda commands.     (line  42)
 * g:                                     Agenda commands.     (line  76)
 * H:                                     Agenda commands.     (line 215)
-* I:                                     Agenda commands.     (line 176)
 * i:                                     Agenda commands.     (line 196)
+* I:                                     Agenda commands.     (line 176)
 * l:                                     Agenda commands.     (line  55)
 * L:                                     Agenda commands.     (line  30)
 * M:                                     Agenda commands.     (line 202)
@@ -8019,115 +8029,115 @@ Key Index
 * M-<left>:                              Structure editing.   (line  21)
 * M-<RET> <1>:                           Plain lists.         (line  49)
 * M-<RET>:                               Structure editing.   (line   6)
-* M-<right> <1>:                         Structure editing.   (line  24)
-* M-<right>:                             Built-in table editor.
+* M-<right> <1>:                         Built-in table editor.
                                                               (line  72)
-* M-<TAB> <1>:                           Per file keywords.   (line  23)
+* M-<right>:                             Structure editing.   (line  24)
+* M-<TAB> <1>:                           Completion.          (line  10)
 * M-<TAB> <2>:                           Property syntax.     (line  46)
-* M-<TAB> <3>:                           Editing and debugging formulas.
+* M-<TAB> <3>:                           Setting tags.        (line   6)
+* M-<TAB> <4>:                           Per file keywords.   (line  23)
+* M-<TAB>:                               Editing and debugging formulas.
                                                               (line  64)
-* M-<TAB> <4>:                           Setting tags.        (line   6)
-* M-<TAB>:                               Completion.          (line  10)
 * M-<up> <1>:                            Editing and debugging formulas.
                                                               (line  76)
 * M-<up>:                                Built-in table editor.
                                                               (line  80)
-* M-S-<down> <1>:                        Structure editing.   (line  36)
-* M-S-<down> <2>:                        Editing and debugging formulas.
+* M-S-<down> <1>:                        Editing and debugging formulas.
                                                               (line  72)
-* M-S-<down> <3>:                        Built-in table editor.
+* M-S-<down> <2>:                        Built-in table editor.
                                                               (line  87)
-* M-S-<down>:                            Plain lists.         (line  66)
-* M-S-<left> <1>:                        Structure editing.   (line  27)
+* M-S-<down> <3>:                        Plain lists.         (line  66)
+* M-S-<down>:                            Structure editing.   (line  36)
+* M-S-<left> <1>:                        The date/time prompt.
+                                                              (line  54)
 * M-S-<left> <2>:                        Built-in table editor.
                                                               (line  74)
 * M-S-<left> <3>:                        Plain lists.         (line  72)
-* M-S-<left>:                            The date/time prompt.
-                                                              (line  54)
+* M-S-<left>:                            Structure editing.   (line  27)
 * M-S-<RET> <1>:                         Checkboxes.          (line  54)
-* M-S-<RET> <2>:                         Structure editing.   (line  18)
-* M-S-<RET>:                             Plain lists.         (line  59)
+* M-S-<RET> <2>:                         Plain lists.         (line  59)
+* M-S-<RET>:                             Structure editing.   (line  18)
 * M-S-<right> <1>:                       The date/time prompt.
                                                               (line  51)
-* M-S-<right> <2>:                       Plain lists.         (line  72)
-* M-S-<right> <3>:                       Built-in table editor.
+* M-S-<right> <2>:                       Built-in table editor.
                                                               (line  77)
+* M-S-<right> <3>:                       Plain lists.         (line  72)
 * M-S-<right>:                           Structure editing.   (line  30)
 * M-S-<up> <1>:                          Editing and debugging formulas.
                                                               (line  72)
-* M-S-<up> <2>:                          Plain lists.         (line  66)
-* M-S-<up> <3>:                          Structure editing.   (line  33)
-* M-S-<up>:                              Built-in table editor.
+* M-S-<up> <2>:                          Built-in table editor.
                                                               (line  84)
-* mouse-1 <1>:                           Handling links.      (line  72)
+* M-S-<up> <3>:                          Plain lists.         (line  66)
+* M-S-<up>:                              Structure editing.   (line  33)
+* mouse-1 <1>:                           Agenda commands.     (line  33)
 * mouse-1 <2>:                           The date/time prompt.
                                                               (line  36)
-* mouse-1:                               Agenda commands.     (line  33)
+* mouse-1:                               Handling links.      (line  72)
 * mouse-2 <1>:                           Agenda commands.     (line  33)
 * mouse-2:                               Handling links.      (line  72)
-* mouse-3 <1>:                           Handling links.      (line  77)
-* mouse-3:                               Agenda commands.     (line  28)
-* n <1>:                                 Using column view.   (line  30)
-* n:                                     Agenda commands.     (line  19)
+* mouse-3 <1>:                           Agenda commands.     (line  28)
+* mouse-3:                               Handling links.      (line  77)
+* n <1>:                                 Agenda commands.     (line  19)
+* n:                                     Using column view.   (line  30)
 * O:                                     Agenda commands.     (line 180)
 * o:                                     Agenda commands.     (line  65)
+* P:                                     Agenda commands.     (line 140)
 * p <1>:                                 Agenda commands.     (line  20)
 * p:                                     Using column view.   (line  30)
-* P:                                     Agenda commands.     (line 140)
-* q <1>:                                 Using column view.   (line  17)
-* q:                                     Agenda commands.     (line 238)
-* r <1>:                                 Global TODO list.    (line  22)
-* r:                                     Agenda commands.     (line  80)
+* q <1>:                                 Agenda commands.     (line 238)
+* q:                                     Using column view.   (line  17)
+* r <1>:                                 Agenda commands.     (line  80)
+* r:                                     Global TODO list.    (line  22)
 * S:                                     Agenda commands.     (line 206)
 * s:                                     Agenda commands.     (line  87)
-* S-<down> <1>:                          Priorities.          (line  23)
+* S-<down> <1>:                          Agenda commands.     (line 149)
 * S-<down> <2>:                          The date/time prompt.
                                                               (line  45)
 * S-<down> <3>:                          Creating timestamps. (line  40)
-* S-<down> <4>:                          Plain lists.         (line  62)
+* S-<down> <4>:                          Priorities.          (line  23)
 * S-<down> <5>:                          Editing and debugging formulas.
                                                               (line  67)
-* S-<down>:                              Agenda commands.     (line 149)
-* S-<left> <1>:                          Editing and debugging formulas.
-                                                              (line  67)
-* S-<left> <2>:                          Using column view.   (line  26)
-* S-<left> <3>:                          Property syntax.     (line  62)
-* S-<left> <4>:                          Creating timestamps. (line  35)
-* S-<left> <5>:                          Agenda commands.     (line 167)
+* S-<down>:                              Plain lists.         (line  62)
+* S-<left> <1>:                          Agenda commands.     (line 167)
+* S-<left> <2>:                          The date/time prompt.
+                                                              (line  42)
+* S-<left> <3>:                          Creating timestamps. (line  35)
+* S-<left> <4>:                          Using column view.   (line  26)
+* S-<left> <5>:                          Property syntax.     (line  62)
 * S-<left> <6>:                          Multiple sets in one file.
                                                               (line  29)
 * S-<left> <7>:                          TODO basics.         (line  20)
-* S-<left>:                              The date/time prompt.
-                                                              (line  42)
+* S-<left>:                              Editing and debugging formulas.
+                                                              (line  67)
 * S-<RET>:                               Built-in table editor.
                                                               (line 144)
-* S-<right> <1>:                         Property syntax.     (line  62)
-* S-<right> <2>:                         Editing and debugging formulas.
-                                                              (line  67)
-* S-<right> <3>:                         The date/time prompt.
+* S-<right> <1>:                         Agenda commands.     (line 159)
+* S-<right> <2>:                         The date/time prompt.
                                                               (line  39)
-* S-<right> <4>:                         Creating timestamps. (line  35)
-* S-<right> <5>:                         TODO basics.         (line  20)
+* S-<right> <3>:                         Creating timestamps. (line  35)
+* S-<right> <4>:                         Using column view.   (line  26)
+* S-<right> <5>:                         Property syntax.     (line  62)
 * S-<right> <6>:                         Multiple sets in one file.
                                                               (line  29)
-* S-<right> <7>:                         Agenda commands.     (line 159)
-* S-<right>:                             Using column view.   (line  26)
-* S-<TAB> <1>:                           Visibility cycling.  (line  22)
-* S-<TAB>:                               Built-in table editor.
-                                                              (line  59)
-* S-<up> <1>:                            Plain lists.         (line  62)
-* S-<up> <2>:                            Editing and debugging formulas.
+* S-<right> <7>:                         TODO basics.         (line  20)
+* S-<right>:                             Editing and debugging formulas.
                                                               (line  67)
-* S-<up> <3>:                            Agenda commands.     (line 143)
-* S-<up> <4>:                            Priorities.          (line  23)
-* S-<up> <5>:                            The date/time prompt.
+* S-<TAB> <1>:                           Built-in table editor.
+                                                              (line  59)
+* S-<TAB>:                               Visibility cycling.  (line  22)
+* S-<up> <1>:                            Agenda commands.     (line 143)
+* S-<up> <2>:                            The date/time prompt.
                                                               (line  48)
-* S-<up>:                                Creating timestamps. (line  40)
+* S-<up> <3>:                            Creating timestamps. (line  40)
+* S-<up> <4>:                            Priorities.          (line  23)
+* S-<up> <5>:                            Editing and debugging formulas.
+                                                              (line  67)
+* S-<up>:                                Plain lists.         (line  62)
 * S-M-<left>:                            Using column view.   (line  58)
-* S-M-<RET>:                             TODO basics.         (line  44)
+* S-M-<RET>:                             TODO basics.         (line  52)
 * S-M-<right>:                           Using column view.   (line  55)
-* t:                                     Agenda commands.     (line 111)
 * T:                                     Agenda commands.     (line 124)
+* t:                                     Agenda commands.     (line 111)
 * v:                                     Using column view.   (line  39)
 * w:                                     Agenda commands.     (line  66)
 * x:                                     Agenda commands.     (line 239)
@@ -8153,198 +8163,198 @@ Ref: Visibility cycling-Footnote-226164
 Ref: Visibility cycling-Footnote-326214
 Node: Motion26484
 Node: Structure editing27438
-Node: Archiving30264
-Node: ARCHIVE tag30822
-Node: Moving subtrees32615
-Node: Sparse trees33926
-Ref: Sparse trees-Footnote-136061
-Ref: Sparse trees-Footnote-236243
-Node: Plain lists36358
-Ref: Plain lists-Footnote-140555
-Ref: Plain lists-Footnote-240913
-Node: Drawers41094
-Node: orgstruct-mode41932
-Node: Tables42832
-Node: Built-in table editor43413
-Node: Narrow columns50658
-Ref: Narrow columns-Footnote-152593
-Node: Column groups52639
-Node: orgtbl-mode54172
-Node: The spreadsheet54975
-Node: References56062
-Ref: References-Footnote-160526
-Node: Formula syntax for Calc60815
-Node: Formula syntax for Lisp63272
-Node: Field formulas64990
-Node: Column formulas66298
-Node: Editing and debugging formulas67897
-Node: Updating the table72050
-Node: Advanced features73085
-Node: Hyperlinks77610
-Node: Link format78448
-Node: Internal links79741
-Ref: Internal links-Footnote-181666
-Node: Radio targets81801
-Node: External links82501
-Node: Handling links84905
-Ref: Handling links-Footnote-190202
-Ref: Handling links-Footnote-290439
-Node: Using links outside Org-mode90513
-Node: Link abbreviations91023
-Node: Search options92716
-Ref: Search options-Footnote-194496
-Node: Custom searches94577
-Node: Remember95625
-Node: Setting up remember96612
-Node: Remember templates97194
-Ref: Remember templates-Footnote-1100640
-Node: Storing notes100738
-Node: TODO items102625
-Node: TODO basics103602
-Node: TODO extensions105366
-Node: Workflow states106185
-Ref: Workflow states-Footnote-1107360
-Node: TODO types107453
-Ref: TODO types-Footnote-1109036
-Node: Multiple sets in one file109118
-Node: Per file keywords110729
-Ref: Per file keywords-Footnote-1112018
-Node: Priorities112219
-Node: Breaking down tasks113829
-Ref: Breaking down tasks-Footnote-1114349
-Node: Checkboxes114445
-Node: Tags117294
-Node: Tag inheritance118066
-Node: Setting tags119003
-Ref: Setting tags-Footnote-1123526
-Ref: Setting tags-Footnote-2123638
-Node: Tag searches123721
-Node: Properties and columns126438
-Node: Property syntax127543
-Node: Special properties129964
-Node: Property searches130880
-Node: Column view131535
-Node: Defining columns132702
-Node: Scope of column definitions133100
-Node: Column attributes134022
-Node: Using column view136270
-Node: Property API138257
-Node: Timestamps138611
-Node: Time stamps139072
-Ref: Time stamps-Footnote-1141500
-Node: Creating timestamps141616
-Node: The date/time prompt143690
-Ref: The date/time prompt-Footnote-1145678
-Node: Custom time format145784
-Node: Deadlines and scheduling147476
-Ref: Deadlines and scheduling-Footnote-1149096
-Node: Inserting deadline/schedule149251
-Node: Repeated tasks150189
-Node: Progress logging151828
-Node: Closing items152483
-Ref: Closing items-Footnote-1153417
-Ref: Closing items-Footnote-2153486
-Node: Tracking TODO state changes153559
-Node: Clocking work time154415
-Ref: Clocking work time-Footnote-1158061
-Ref: Clocking work time-Footnote-2158139
-Node: Agenda views158265
-Node: Agenda files160216
-Ref: Agenda files-Footnote-1161182
-Ref: Agenda files-Footnote-2161331
-Node: Agenda dispatcher161524
-Node: Built-in agenda views163221
-Node: Weekly/Daily agenda163801
-Node: Global TODO list166743
-Node: Matching tags and properties169021
-Node: Timeline170110
-Node: Stuck projects170782
-Node: Presentation and sorting172633
-Node: Categories173424
-Node: Time-of-day specifications174088
-Node: Sorting of agenda items176059
-Node: Agenda commands177341
-Node: Custom agenda views184622
-Node: Storing searches185341
-Node: Block agenda187253
-Node: Setting Options188483
-Node: Exporting Agenda Views191222
-Ref: Exporting Agenda Views-Footnote-1195506
-Ref: Exporting Agenda Views-Footnote-2195563
-Node: Extracting Agenda Information for other programs195749
-Node: Embedded LaTeX199875
-Ref: Embedded LaTeX-Footnote-1200969
-Node: Math symbols201159
-Node: Subscripts and Superscripts201926
-Node: LaTeX fragments202772
-Ref: LaTeX fragments-Footnote-1205005
-Ref: LaTeX fragments-Footnote-2205266
-Node: Processing LaTeX fragments205400
-Node: CDLaTeX mode206348
-Ref: CDLaTeX mode-Footnote-1208834
-Node: Exporting208982
-Node: ASCII export210449
-Node: HTML export211950
-Node: HTML Export commands212576
-Node: Quoting HTML tags214363
-Node: Links214998
-Node: Images215695
-Ref: Images-Footnote-1216566
-Node: CSS support216627
-Ref: CSS support-Footnote-1217946
-Node: LaTeX export218059
-Node: LaTeX export commands218383
-Node: Quoting LaTeX code219545
-Node: XOXO export220050
-Node: iCalendar export220490
-Node: Text interpretation221709
-Node: Comment lines222300
-Node: Initial text222695
-Node: Footnotes224364
-Node: Enhancing text225179
-Ref: Enhancing text-Footnote-1227048
-Node: Export options227138
-Node: Publishing229414
-Ref: Publishing-Footnote-1230375
-Ref: Publishing-Footnote-2230519
-Node: Configuration230670
-Node: Project alist231388
-Node: Sources and destinations232454
-Node: Selecting files233184
-Node: Publishing action233932
-Node: Publishing options235266
-Node: Publishing links237641
-Node: Project page index239154
-Node: Sample configuration239932
-Node: Simple example240424
-Node: Complex example241097
-Node: Triggering publication243173
-Node: Miscellaneous243858
-Node: Completion244492
-Node: Customization246162
-Node: In-buffer settings246745
-Node: The very busy C-c C-c key252272
-Node: Clean view254033
-Node: TTY keys256610
-Node: Interaction258220
-Node: Cooperation258617
-Node: Conflicts261493
-Node: Bugs263496
-Node: Extensions and Hacking264992
-Node: Extensions265717
-Node: Adding hyperlink types267660
-Node: Tables in arbitrary syntax271322
-Node: Radio tables272411
-Node: A LaTeX example274914
-Ref: A LaTeX example-Footnote-1278560
-Ref: A LaTeX example-Footnote-2278708
-Node: Translator functions279143
-Ref: Translator functions-Footnote-1282252
-Node: Dynamic blocks282340
-Node: Special agenda views284312
-Node: Using the property API287490
-Node: History and Acknowledgments288971
-Node: Index295547
-Node: Key Index330039
+Node: Archiving30277
+Node: ARCHIVE tag30835
+Node: Moving subtrees32628
+Node: Sparse trees34100
+Ref: Sparse trees-Footnote-136235
+Ref: Sparse trees-Footnote-236417
+Node: Plain lists36532
+Ref: Plain lists-Footnote-140729
+Ref: Plain lists-Footnote-241087
+Node: Drawers41268
+Node: orgstruct-mode42106
+Node: Tables43006
+Node: Built-in table editor43587
+Node: Narrow columns50832
+Ref: Narrow columns-Footnote-152767
+Node: Column groups52813
+Node: orgtbl-mode54346
+Node: The spreadsheet55149
+Node: References56236
+Ref: References-Footnote-160700
+Node: Formula syntax for Calc60989
+Node: Formula syntax for Lisp63446
+Node: Field formulas65164
+Node: Column formulas66472
+Node: Editing and debugging formulas68071
+Node: Updating the table72224
+Node: Advanced features73277
+Node: Hyperlinks77802
+Node: Link format78640
+Node: Internal links79933
+Ref: Internal links-Footnote-181858
+Node: Radio targets81993
+Node: External links82693
+Node: Handling links85097
+Ref: Handling links-Footnote-190394
+Ref: Handling links-Footnote-290631
+Node: Using links outside Org-mode90705
+Node: Link abbreviations91215
+Node: Search options92908
+Ref: Search options-Footnote-194688
+Node: Custom searches94769
+Node: Remember95817
+Node: Setting up remember96804
+Node: Remember templates97386
+Ref: Remember templates-Footnote-1100832
+Node: Storing notes100930
+Node: TODO items102817
+Node: TODO basics103794
+Node: TODO extensions105876
+Node: Workflow states106695
+Ref: Workflow states-Footnote-1107870
+Node: TODO types107963
+Ref: TODO types-Footnote-1109546
+Node: Multiple sets in one file109628
+Node: Per file keywords111239
+Ref: Per file keywords-Footnote-1112508
+Node: Priorities112709
+Node: Breaking down tasks114319
+Ref: Breaking down tasks-Footnote-1114839
+Node: Checkboxes114935
+Node: Tags117784
+Node: Tag inheritance118556
+Node: Setting tags119493
+Ref: Setting tags-Footnote-1124016
+Ref: Setting tags-Footnote-2124128
+Node: Tag searches124211
+Node: Properties and columns126928
+Node: Property syntax128033
+Node: Special properties130454
+Node: Property searches131370
+Node: Column view132025
+Node: Defining columns133192
+Node: Scope of column definitions133590
+Node: Column attributes134512
+Node: Using column view136760
+Node: Property API138747
+Node: Timestamps139101
+Node: Time stamps139562
+Ref: Time stamps-Footnote-1141990
+Node: Creating timestamps142106
+Node: The date/time prompt144180
+Ref: The date/time prompt-Footnote-1146168
+Node: Custom time format146274
+Node: Deadlines and scheduling147966
+Ref: Deadlines and scheduling-Footnote-1149586
+Node: Inserting deadline/schedule149741
+Node: Repeated tasks150679
+Node: Progress logging152318
+Node: Closing items152973
+Ref: Closing items-Footnote-1153907
+Ref: Closing items-Footnote-2153976
+Node: Tracking TODO state changes154049
+Node: Clocking work time154905
+Ref: Clocking work time-Footnote-1158551
+Ref: Clocking work time-Footnote-2158629
+Node: Agenda views158755
+Node: Agenda files160706
+Ref: Agenda files-Footnote-1161672
+Ref: Agenda files-Footnote-2161821
+Node: Agenda dispatcher162014
+Node: Built-in agenda views163711
+Node: Weekly/Daily agenda164291
+Node: Global TODO list167233
+Node: Matching tags and properties169511
+Node: Timeline170600
+Node: Stuck projects171272
+Node: Presentation and sorting173123
+Node: Categories173914
+Node: Time-of-day specifications174578
+Node: Sorting of agenda items176549
+Node: Agenda commands177831
+Node: Custom agenda views185112
+Node: Storing searches185831
+Node: Block agenda187743
+Node: Setting Options188973
+Node: Exporting Agenda Views191712
+Ref: Exporting Agenda Views-Footnote-1195996
+Ref: Exporting Agenda Views-Footnote-2196053
+Node: Extracting Agenda Information for other programs196239
+Node: Embedded LaTeX200365
+Ref: Embedded LaTeX-Footnote-1201459
+Node: Math symbols201649
+Node: Subscripts and Superscripts202416
+Node: LaTeX fragments203262
+Ref: LaTeX fragments-Footnote-1205495
+Ref: LaTeX fragments-Footnote-2205756
+Node: Processing LaTeX fragments205890
+Node: CDLaTeX mode206838
+Ref: CDLaTeX mode-Footnote-1209324
+Node: Exporting209472
+Node: ASCII export210939
+Node: HTML export212440
+Node: HTML Export commands213066
+Node: Quoting HTML tags214853
+Node: Links215488
+Node: Images216185
+Ref: Images-Footnote-1217056
+Node: CSS support217117
+Ref: CSS support-Footnote-1218436
+Node: LaTeX export218549
+Node: LaTeX export commands218873
+Node: Quoting LaTeX code220035
+Node: XOXO export220540
+Node: iCalendar export220980
+Node: Text interpretation222199
+Node: Comment lines222790
+Node: Initial text223185
+Node: Footnotes224854
+Node: Enhancing text225669
+Ref: Enhancing text-Footnote-1227538
+Node: Export options227628
+Node: Publishing229904
+Ref: Publishing-Footnote-1230865
+Ref: Publishing-Footnote-2231009
+Node: Configuration231160
+Node: Project alist231878
+Node: Sources and destinations232944
+Node: Selecting files233674
+Node: Publishing action234422
+Node: Publishing options235756
+Node: Publishing links238131
+Node: Project page index239644
+Node: Sample configuration240422
+Node: Simple example240914
+Node: Complex example241587
+Node: Triggering publication243663
+Node: Miscellaneous244348
+Node: Completion244982
+Node: Customization246652
+Node: In-buffer settings247235
+Node: The very busy C-c C-c key252762
+Node: Clean view254523
+Node: TTY keys257100
+Node: Interaction258710
+Node: Cooperation259107
+Node: Conflicts261983
+Node: Bugs263986
+Node: Extensions and Hacking265482
+Node: Extensions266207
+Node: Adding hyperlink types268150
+Node: Tables in arbitrary syntax271812
+Node: Radio tables272901
+Node: A LaTeX example275404
+Ref: A LaTeX example-Footnote-1279050
+Ref: A LaTeX example-Footnote-2279198
+Node: Translator functions279633
+Ref: Translator functions-Footnote-1282742
+Node: Dynamic blocks282830
+Node: Special agenda views284802
+Node: Using the property API287980
+Node: History and Acknowledgments289461
+Node: Index296037
+Node: Key Index330529
 
 End Tag Table

+ 44 - 54
org-export-latex.el

@@ -2,30 +2,30 @@
 ;; Copyright (C) 2007 Free Software Foundation, Inc.
 ;;
 ;; Author: Bastien Guerry <bzg AT altern DOT org>
-;; Maintainer: Bastien Guerry <bzg AT altern DOT org>
-;; Version: $Id: org-export-latex.el,v 0.26b 2007/08/21 14:46:58 guerry Exp guerry $
 ;; Keywords: org organizer latex export convert
+;; Version: $Id: org-export-latex.el,v 0.27b 2007/08/25 14:26:06 guerry Exp guerry $
 ;; X-URL: <http://www.cognition.ens.fr/~guerry/u/org-export-latex.el>
 ;;
 ;; This file is part of GNU Emacs.
 ;;
-;; This program is free software; you can redistribute it and/or modify
+;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
 ;; the Free Software Foundation; either version 2, or (at your option)
 ;; any later version.
 ;;
-;; This program is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 ;; GNU General Public License for more details.
-;;
+;; 
 ;; You should have received a copy of the GNU General Public License
-;; along with this program; if not, write to the Free Software
-;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
+;;
 ;;; Commentary:
-
-;; This library is a LaTeX exporter for org-mode.
+;;
+;; This library implements a LaTeX exporter for org-mode.
 ;; 
 ;; Put this file into your load-path and the following into your ~/.emacs:
 ;;   (require 'org-export-latex)
@@ -37,17 +37,14 @@
 ;; M-x `org-export-as-latex-to-buffer'
 ;; M-x `org-export-region-as-latex'
 ;; M-x `org-replace-region-by-latex'
-
-;;; History:
-;; 
-;; I started this piece of code in may 2007. Special thanks to Carsten
-;; Dominik for helping me on this.
-;; 
-
+;;
 ;;; Code:
 
+(eval-when-compile
+  (require 'cl)
+  (require 'footnote))
+
 (require 'org)
-(require 'footnote)
 
 (defvar org-latex-options-plist nil)
 (defvar org-latex-todo-keywords-1 nil)
@@ -511,7 +508,7 @@ and its content."
 	     (cond ((stringp subcontent) (insert subcontent))
 		   ((listp subcontent) (org-export-latex-sub subcontent)))))))))
 
-(defun org-export-latex-special-keywords-maybe (remove-list)
+(defun org-export-latex-keywords-maybe (remove-list)
   "Maybe remove keywords depending on rules in REMOVE-LIST."
   (goto-char (point-min))
   (let ((re-todo (mapconcat 'identity org-latex-todo-keywords-1 "\\|")))
@@ -527,7 +524,8 @@ and its content."
 	(replace-match (format "\\texttt{%s}" (match-string 0)) t t)))
     ;; convert tags
     (when (re-search-forward "\\(:[a-zA-Z0-9]+\\)+:" nil t)
-      (if (plist-get remove-list :tags)
+      (if (or (not org-export-with-tags)
+	      (plist-get remove-list :tags))
 	  (replace-match "")
 	(replace-match (format "\\texttt{%s}" (match-string 0)) t t)))))
 
@@ -542,7 +540,7 @@ and its content."
      (plist-get org-latex-options-plist :sub-superscript))
     (when (plist-get org-latex-options-plist :emphasize)
       (org-export-latex-fontify))
-    (org-export-latex-special-keywords-maybe
+    (org-export-latex-keywords-maybe
      org-export-latex-remove-from-headines)
     (org-export-latex-links)
     (org-trim (buffer-substring-no-properties (point-min) (point-max)))))
@@ -557,7 +555,7 @@ and its content."
    (when (plist-get org-latex-options-plist :emphasize)
      (org-export-latex-fontify))
    (org-export-latex-links)
-   (org-export-latex-special-keywords)
+   (org-export-latex-keywords)
    (org-export-latex-itemize)
    (org-export-latex-enumerate)
    (org-export-latex-tables
@@ -631,16 +629,12 @@ See the `org-export-latex.el' code for a complete conversion table."
 		      (replace-match (concat (match-string 1) "\\"
 					     (match-string 2)) t t)))
 		   ((equal (match-string 2) "~")
-		    ;; FIXME protect ~ in links
-;;		    (unless (get-text-property 0 'org-protected (match-string 2))
-;;		    (unless (eq 'org-link (get-text-property 0 'face (match-string 2)))
 		      (cond ((equal (match-string 1) "\\") nil)
 			    ((eq 'org-link (get-text-property 0 'face (match-string 2)))
 			     (replace-match (concat (match-string 1) "\\~") t t))
-			    (t 
-			     (replace-match 
-			      (org-latex-protect
-			       (concat (match-string 1) "\\textasciitilde{}")) t t))))
+			    (t (replace-match 
+				(org-latex-protect
+				 (concat (match-string 1) "\\~{}")) t t))))
 		   ((member (match-string 2) '("{" "}"))
 		    (unless (save-match-data (org-inside-LaTeX-fragment-p))
 		      (if (equal (match-string 1) "\\")
@@ -681,7 +675,6 @@ Convert CHAR depending on STRING-BEFORE and STRING-AFTER."
 	((and (string-match "\\S-+" string-before)
 	      (string-match "\\S-+" string-after))
 	 (cond ((eq 'org-link (get-text-property 0 'face char))
-;;	 (cond ((get-text-property 0 'org-protected char)
 		(concat string-before "\\" char string-after))
 	       ((save-match-data (org-inside-LaTeX-fragment-p))
 		(if subsup
@@ -695,8 +688,8 @@ Convert CHAR depending on STRING-BEFORE and STRING-AFTER."
 		     (string-match "[({]?\\([^)}]+\\)[)}]?" string-after))
 		(format "$%s%s{%s}$" string-before char
 			(match-string 1 string-after)))
-	  (subsup (concat "$" string-before char string-after "$"))
-	  (t (concat string-before char string-after))))
+	       (subsup (concat "$" string-before char string-after "$"))
+	       (t (concat string-before "\\" char string-after))))
 	(t (concat string-before "\\" char string-after))))
 
 (defun org-export-latex-treat-backslash-char (string-before string-after)
@@ -708,7 +701,7 @@ The conversion is made depending of STRING-BEFORE and STRING-AFTER."
 		 (or (cdar (member (list string-after) org-html-entities))
 		     string-after) "$"))
 	((and (not (string-match "^[ \n\t]" string-after))
-	      (not (string-match "[ \n\t]\\'" string-before)))
+	      (not (string-match "[ \t]\\'" string-before)))
 	 ;; backslash is inside a word
 	 (concat string-before "$\\backslash$" string-after))
 	((not (or (equal string-after "")
@@ -740,6 +733,7 @@ The conversion is made depending of STRING-BEFORE and STRING-AFTER."
 				      (match-string 2)) t t)
 	       (forward-line))))))
 
+;; FIXME Use org-export-highlight-first-table-line ?
 (defun org-export-latex-tables (opt)
   "When OPT is non-nil convert tables to LaTeX."
   (goto-char (point-min))
@@ -763,7 +757,7 @@ The conversion is made depending of STRING-BEFORE and STRING-AFTER."
       (when opt (insert (orgtbl-to-latex (nreverse tbl-list) 
 					 nil) "\n\n")))))
 
-(defun org-export-latex-special-keywords ()
+(defun org-export-latex-keywords ()
   "Convert special keywords to LaTeX.
 Regexps are those from `org-latex-special-string-regexps'."
   (let ((rg org-latex-special-string-regexps) r)
@@ -1041,7 +1035,6 @@ Regexps are those from `org-latex-special-string-regexps'."
 			   ":" (match-string 3) "]]")))
 	   ;; added 'org-protected property to links
 	   (put-text-property 0 (length s) 'face 'org-link s)
-;;	   (add-text-properties 0 (length s) '(org-protected t) s)
 	   (replace-match s t t))))
       (goto-char (point-min))
       (while (re-search-forward re-angle-link nil t)
@@ -1050,7 +1043,6 @@ Regexps are those from `org-latex-special-string-regexps'."
 	 (let* ((s (concat (match-string 1) "[[" (match-string 2)
 			   ":" (match-string 3) "]]")))
 	   (put-text-property 0 (length s) 'face 'org-link s)
-;;	   (add-text-properties 0 (length s) '(org-protected t) s)
 	   (replace-match s t t))))
       (goto-char (point-min))
       (while (re-search-forward org-bracket-link-regexp nil t)
@@ -1063,7 +1055,6 @@ Regexps are those from `org-latex-special-string-regexps'."
 			     (concat "[" xx "]"))
 			   "]")))
 	   (put-text-property 0 (length s) 'face 'org-link s)
-;;	   (add-text-properties 0 (length s) '(org-protected t) s)
 	   (replace-match s t t))))
 
       ;; Find multiline emphasis and put them into single line
@@ -1083,26 +1074,25 @@ Regexps are those from `org-latex-special-string-regexps'."
     rtn))
 
 (defsubst org-latex-protect (string)
-  (add-text-properties 0 (length string) '(org-protected t) string)
-  string)
+  (add-text-properties 0 (length string) '(org-protected t) string) string)
 
 (defun org-export-latex-cleaned-string ()
   "Clean stuff in the LaTeX export."
 
-  ;; preserve line breaks
+  ;; Preserve line breaks
   (goto-char (point-min))
   (while (re-search-forward "\\\\\\\\" nil t)
     (add-text-properties (match-beginning 0) (match-end 0)
 			 '(org-protected t)))
 
-  ;; convert LaTeX to @LaTeX{}
+  ;; Convert LaTeX to @LaTeX{}
   (goto-char (point-min))
   (let ((case-fold-search nil) rpl)
     (while (re-search-forward "\\([^+_]\\)LaTeX" nil t)
     (replace-match (org-latex-protect 
 		    (concat (match-string 1) "\\LaTeX{}")) t t)))
 
-  ;; convert horizontal rules
+  ;; Convert horizontal rules
   (goto-char (point-min))
   (while (re-search-forward "^----+.$" nil t)
     (replace-match (org-latex-protect "\\hrule") t t))
@@ -1115,10 +1105,10 @@ Regexps are those from `org-latex-special-string-regexps'."
 	  nil t)
     (beginning-of-line)
     (org-cut-subtree))
-  
-  ;; protect LaTeX \commands{...}
+
+  ;; Protect LaTeX \commands{...}
   (goto-char (point-min))
-  (while (re-search-forward "\\\\[a-z]+{.+}" nil t)
+  (while (re-search-forward "\\\\[a-z]+\\(?:\\[.*\\]\\)?\\(?:{.*}\\)?" nil t)
     (add-text-properties (match-beginning 0) (match-end 0)
 			 '(org-protected t)))
   
@@ -1129,17 +1119,18 @@ Regexps are those from `org-latex-special-string-regexps'."
       (replace-match 
        (org-latex-protect (format "\\label{%s}" (match-string 1))) t t)))
   
-  ;; delete @<br /> cookies
+  ;; Delete @<...> constructs
   (goto-char (point-min))
-  (while (re-search-forward "@<[^<>\n]*>" nil t)
+  ;; Thanks to Daniel Clemente for this regexp
+  (while (re-search-forward "@<\\(?:[^\"\n]\\|\".*\"\\)*?>" nil t)
     (replace-match ""))
   
-  ;; add #+BEGIN_LaTeX before any \begin{...}
+  ;; Add #+BEGIN_LaTeX before any \begin{...}
   (goto-char (point-min))
   (while (re-search-forward "^ *\\\\begin{" nil t)
     (replace-match "#+BEGIN_LaTeX:\n\\&" t))
   
-  ;; add #+END_LaTeX after any \end{...}
+  ;; Add #+END_LaTeX after any \end{...}
   (goto-char (point-min))
   (while (re-search-forward "^ *\\\\end{.+}.*$" nil t)
     (replace-match "\\&\n#+END_LaTeX" t))
@@ -1171,10 +1162,7 @@ Regexps are those from `org-latex-special-string-regexps'."
 	  (goto-char foot-beg)
 	  (delete-region foot-beg foot-end)
 	  (setq footnote-rpl (format "\\footnote{%s}" footnote))
-	  ;; FIXME Remove
-	  ;;	  (add-text-properties 0 1 '(org-protected t) footnote-rpl)
 	  (add-text-properties 0 10 '(org-protected t) footnote-rpl)
-	  ;; FIXME: why protecting the content of a footnote?
 	  (add-text-properties (1- (length footnote-rpl))
 			       (length footnote-rpl)
 			       '(org-protected t) footnote-rpl)
@@ -1188,7 +1176,6 @@ Regexps are those from `org-latex-special-string-regexps'."
   
   ;; Protect stuff from LaTeX processing. 
   ;; We will get rid on this once org.el integrate org-export-latex.el
-  ;; FIXME: #+LaTeX should be aware of the preceeding indentation in lists
   (goto-char (point-min))
   (let ((formatters `((,latexp "LaTeX" "BEGIN_LaTeX" "END_LaTeX"))) fmt)
     (while (re-search-forward "^[ \t]*:.*\\(\n[ \t]*:.*\\)*" nil t)
@@ -1199,7 +1186,10 @@ Regexps are those from `org-latex-special-string-regexps'."
       (when (car fmt)
 	(goto-char (point-min))
 	(while (re-search-forward (concat "^#\\+" (cadr fmt) 
-					  ":[ \t]*\\(.*\\)") nil t)
+					  ;; ":[ \t]*\\(.*\\)") nil t)
+					  ;; FIXME: authorize spaces after #+LaTeX: 
+					  ;; to get list correctly exported
+					  ":\\(.*\\)") nil t)
 	  (replace-match "\\1" t)
 	  (add-text-properties
 	   (point-at-bol) (min (1+ (point-at-eol)) (point-max))

+ 273 - 116
org.el

@@ -5,13 +5,13 @@
 ;; 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: 5.06e
+;; Version: 5.07
 ;;
 ;; This file is part of GNU Emacs.
 ;;
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
+;; the Free Software Foundation; either version 3, or (at your option)
 ;; any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
@@ -83,7 +83,7 @@
 
 ;;; Version
 
-(defconst org-version "5.06e"
+(defconst org-version "5.07"
   "The version number of the file org.el.")
 (defun org-version ()
   (interactive)
@@ -236,11 +236,13 @@ Or return the original if not disputed."
 (defcustom org-ellipsis nil
   "The ellipsis to use in the Org-mode outline.
 When nil, just use the standard three dots.  When a string, use that instead,
-and just in Org-mode (which will then use its own display table).
+When a face, use the standart 3 dots, but with the specified face.
+The change affects only Org-mode (which will then use its own display table).
 Changing this requires executing `M-x org-mode' in a buffer to become
 effective."
   :group 'org-startup
   :type '(choice (const :tag "Default" nil)
+		 (face :tag "Face" :value org-warning)
 		 (string :tag "String" :value "...#")))
 
 (defvar org-display-table nil
@@ -274,11 +276,6 @@ Changes become only effective after restarting Emacs."
   :group 'org-keywords
   :type 'string)
 
-(defcustom org-archived-string "ARCHIVED:"
-  "String used as the prefix for timestamps logging archiving a TODO entry."
-  :group 'org-keywords
-  :type 'string)
-
 (defcustom org-clock-string "CLOCK:"
   "String used as prefix for timestamps clocking work hours on an item."
   :group 'org-keywords
@@ -719,6 +716,32 @@ use the first keyword in its list that means done."
   :group 'org-archive
   :type 'boolean)
 
+(defcustom org-archive-save-context-info '(time file category todo itags)
+  "Parts of context info that should be stored as properties when archiving.
+When a subtree is moved to an archive file, it looses information given by
+context, like inherited tags, the category, and possibly also the TODO
+state (depending on the variable `org-archive-mark-done').
+This variable can be a list of any of the following symbols:
+
+time       The time of archiving.
+file       The file where the entry originates.
+itags      The local tags, in the headline of the subtree.
+ltags      The tags the subtree inherits from further up the hierarchy.
+todo       The pre-archive TODO state.
+category   The category, taken from file name or #+CATEGORY lines.
+
+For each symbol present in the list, a property will be created in
+the archived entry, with a prefix \"PRE_ARCHIVE_\", to remember this
+information."
+  :group 'org-archive
+  :type '(set
+	  (const :tag "File" file)
+	  (const :tag "Category" category)
+	  (const :tag "TODO state" todo)
+	  (const :tag "TODO state" priority)
+	  (const :tag "Inherited tags" itags)
+	  (const :tag "Local tags" ltags)))
+
 (defgroup org-table nil
   "Options concerning tables in Org-mode."
   :tag "Org Table"
@@ -1485,6 +1508,8 @@ taken from the (otherwise obsolete) variable `org-todo-interpretation'."
 
 (defvar org-todo-keywords-1 nil)
 (make-variable-buffer-local 'org-todo-keywords-1)
+(defvar org-todo-tag-alist nil)
+(make-variable-buffer-local 'org-todo-tag-alist)
 (defvar org-todo-keywords-for-agenda nil)
 (defvar org-done-keywords-for-agenda nil)
 (defvar org-not-done-keywords nil)
@@ -1868,6 +1893,11 @@ agenda file per line."
 	  (repeat :tag "List of files" file)
 	  (file :tag "Store list in a file\n" :value "~/.agenda_files")))
 
+(defcustom org-agenda-skip-unavailable-files nil
+  "t means to just skip non-reachable files in `org-agenda-files'.
+Nil means to remove them, after a query, from the list."
+  :group 'org-agenda
+  :type 'boolean)
 
 (defcustom org-agenda-confirm-kill 1
   "When set, remote killing from the agenda buffer needs confirmation.
@@ -2553,16 +2583,17 @@ This is a property list with the following properties:
 This path may be relative to the directory where the Org-mode file lives.
 The default is to put them into the same directory as the Org-mode file.
 The variable may also be an alist with export types `:html', `:ascii',
-`:ical', or `:xoxo' and the corresponding directories.  If a directory path
-is relative, it is interpreted relative to the directory where the exported
-Org-mode files lives."
+`:ical', `:LaTeX', or `:xoxo' and the corresponding directories.
+If a directory path is relative, it is interpreted relative to the
+directory where the exported Org-mode files lives."
   :group 'org-export-general
   :type '(choice
 	  (directory)
 	  (repeat
 	   (cons
 	    (choice :tag "Type"
-		    (const :html) (const :ascii) (const :ical) (const :xoxo))
+		    (const :html) (const :LaTeX) 
+		    (const :ascii) (const :ical) (const :xoxo))
 	    (directory)))))
 
 (defcustom org-export-language-setup
@@ -3427,6 +3458,18 @@ This face is only used if `org-fontify-done-headline' is set.  If applies
 to the part of the headline after the DONE keyword."
   :group 'org-faces)
 
+(defcustom org-todo-keyword-faces nil
+  "Faces for specific TODO keywords.
+This is a list of cons cells, with TODO keywords in the car
+and faces in the cdr.  The face can be a symbol, or a property
+list of attributes, like (:foreground \"blue\" :weight bold :underline t)."
+  :group 'org-faces
+  :group 'org-todo
+  :type '(repeat
+	  (cons
+	   (string :tag "keyword")
+	   (sexp :tag "face"))))
+
 (defface org-table ;; font-lock-function-name-face
   (org-compatible-face
    '((((class color) (min-colors 88) (background light)) (:foreground "Blue1"))
@@ -3451,13 +3494,13 @@ to the part of the headline after the DONE keyword."
 (defface org-code
   (org-compatible-face
    '((((class color grayscale) (min-colors 88) (background light))
-      :foreground "grey50")
+      (:foreground "grey50"))
      (((class color grayscale) (min-colors 88) (background dark))
-      :foreground "grey70")
+      (:foreground "grey70"))
      (((class color) (min-colors 8) (background light))
-      :foreground "green")
+      (:foreground "green"))
      (((class color) (min-colors 8) (background dark))
-      :foreground "yellow")))
+      (:foreground "yellow"))))
    "Face for fixed-with text like code snippets."
    :group 'org-faces
    :version "22.1")
@@ -3688,6 +3731,7 @@ means to push this value onto the list in the variable.")
   (when (org-mode-p)
     (org-set-local 'org-todo-kwd-alist nil)
     (org-set-local 'org-todo-keywords-1 nil)
+    (org-set-local 'org-todo-tag-alist nil)
     (org-set-local 'org-done-keywords nil)
     (org-set-local 'org-todo-heads nil)
     (org-set-local 'org-todo-sets nil)
@@ -3696,8 +3740,8 @@ means to push this value onto the list in the variable.")
 		 "STARTUP" "ARCHIVE" "TAGS" "LINK" "PRIORITIES"
 		 "CONSTANTS" "PROPERTY")))
 	  (splitre "[ \t]+")
-	  kwds key value cat arch tags const links hw dws tail sep kws1 prio
-	  props)
+	  kwds kws0 kwsa key value cat arch tags const links hw dws
+	  tail sep kws1 prio props)
       (save-excursion
 	(save-restriction
 	  (widen)
@@ -3770,13 +3814,25 @@ means to push this value onto the list in the variable.")
       (let (inter kws)
 	(while (setq kws (pop kwds))
 	  (setq inter (pop kws) sep (member "|" kws)
-		kws1 (delete "|" (copy-sequence kws))
+		kws0 (delete "|" (copy-sequence kws))
+		kwsa nil
+		kws1 (mapcar (lambda (x)
+			       (if (string-match "\\(.*\\)(\\(.\\))" x)
+				   (progn
+				     (push (cons (match-string 1 x)
+						 (string-to-char
+						  (match-string 2 x))) kwsa)
+				     (match-string 1 x))
+				 x))
+			     kws0)
+		kwsa (if kwsa (append '((:startgroup)) kwsa '((:endgroup))))
 		hw (car kws1)
 		dws (if sep (cdr sep) (last kws1))
 		tail (list inter hw (car dws) (org-last dws)))
 	  (add-to-list 'org-todo-heads hw 'append)
 	  (push kws1 org-todo-sets)
 	  (setq org-done-keywords (append org-done-keywords dws nil))
+	  (setq org-todo-tag-alist (append org-todo-tag-alist kwsa))
 	  (mapc (lambda (x) (push (cons x tail) org-todo-kwd-alist)) kws1)
 	  (setq org-todo-keywords-1 (append org-todo-keywords-1 kws1 nil)))
 	(setq org-todo-sets (nreverse org-todo-sets)
@@ -3857,28 +3913,25 @@ means to push this value onto the list in the variable.")
 	  (concat "\\<\\(" org-scheduled-string
 		  "\\|" org-deadline-string
 		  "\\|" org-closed-string
-		  "\\|" org-archived-string
 		  "\\|" org-clock-string "\\)"
 		  " *[[<]\\([^]>]+\\)[]>]")
 	  org-keyword-time-not-clock-regexp
 	  (concat "\\<\\(" org-scheduled-string
 		  "\\|" org-deadline-string
 		  "\\|" org-closed-string
-		  "\\|" org-archived-string
 		  "\\)"
 		  " *[[<]\\([^]>]+\\)[]>]")
 	  org-maybe-keyword-time-regexp
 	  (concat "\\(\\<\\(" org-scheduled-string
 		  "\\|" org-deadline-string
 		  "\\|" org-closed-string
-		  "\\|" org-archived-string
 		  "\\|" org-clock-string "\\)\\)?"
 		  " *\\([[<][0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} [^]\r\n>]*?[]>]\\|<%%([^\r\n>]*>\\)")
 	  org-planning-or-clock-line-re
 	  (concat "\\(?:^[ \t]*\\(" org-scheduled-string
 		  "\\|" org-deadline-string
 		  "\\|" org-closed-string "\\|" org-clock-string
-		  "\\|" org-archived-string "\\)\\>\\)")
+		  "\\)\\>\\)")
 	  )
 
     (org-set-font-lock-defaults)))
@@ -4133,12 +4186,17 @@ The following commands are available:
     (org-set-local 'line-move-ignore-invisible t))
   (org-set-local 'outline-regexp "\\*+ ")
   (setq outline-level 'org-outline-level)
-  (when (and org-ellipsis (stringp org-ellipsis)
-             (fboundp 'set-display-table-slot) (boundp 'buffer-display-table))
+  (when (and org-ellipsis
+             (fboundp 'set-display-table-slot) (boundp 'buffer-display-table)
+	     (fboundp 'make-glyph-code))
     (unless org-display-table
       (setq org-display-table (make-display-table)))
-    (set-display-table-slot org-display-table
-			    4 (string-to-vector org-ellipsis))
+    (set-display-table-slot
+     org-display-table 4
+     (vconcat (mapcar
+	       (lambda (c) (make-glyph-code c (and (not (stringp org-ellipsis))
+						   org-ellipsis)))
+	       (if (stringp org-ellipsis) org-ellipsis "..."))))
     (setq buffer-display-table org-display-table))
   (org-set-regexps-and-options)
   ;; Calc embedded
@@ -4585,10 +4643,11 @@ between words."
   (let* ((em org-fontify-emphasized-text)
 	 (lk org-activate-links)
 	 (org-font-lock-extra-keywords
-	  ;; Headlines
 	  (list
+	   ;; Headlines
 	   '("^\\(\\**\\)\\(\\* \\)\\(.*\\)" (1 (org-get-level-face 1))
 	     (2 (org-get-level-face 2)) (3 (org-get-level-face 3)))
+	   ;; Table lines
 	   '("^[ \t]*\\(\\(|\\|\\+-[-+]\\).*\\S-\\)"
 	     (1 'org-table))
 	   ;; Links
@@ -4601,15 +4660,21 @@ between words."
 	   '("^&?%%(.*\\|<%%([^>\n]*?>" (0 'org-sexp-date t))
 	   '(org-hide-wide-columns (0 nil append))
 	   ;; TODO lines
-	   (list (concat "^\\*+[ \t]+" org-not-done-regexp)
-		 '(1 'org-todo t))
+	   (list (concat "^\\*+[ \t]+" org-todo-regexp)
+		 '(1 (org-get-todo-face 1) t))
+	   ;; DONE
+	   (if org-fontify-done-headline
+	       (list (concat "^[*]+ +\\<\\("
+			     (mapconcat 'regexp-quote org-done-keywords "\\|")
+			     "\\)\\(.*\\)")
+		     '(2 'org-headline-done t))
+	     nil)
 	   ;; Priorities
 	   (list (concat "\\[#[A-Z0-9]\\]") '(0 'org-special-keyword t))
 	   ;; Special keywords
 	   (list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t))
 	   (list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t))
 	   (list (concat "\\<" org-closed-string) '(0 'org-special-keyword t))
-	   (list (concat "\\<" org-archived-string) '(0 'org-special-keyword t))
 	   (list (concat "\\<" org-clock-string) '(0 'org-special-keyword t))
 	   ;; Emphasis
 	   (if em
@@ -4627,19 +4692,9 @@ between words."
 			 "\\|" org-quote-string "\\)\\>")
 		 '(1 'org-special-keyword t))
 	   '("^#.*" (0 'font-lock-comment-face t))
-	   ;; DONE
-	   (if org-fontify-done-headline
-	       (list (concat "^[*]+ +\\<\\("
-			     (mapconcat 'regexp-quote org-done-keywords "\\|")
-			     "\\)\\(.*\\)")
-		     '(1 'org-done t) '(2 'org-headline-done t))
-	     (list (concat "^[*]+ +\\<\\("
-			   (mapconcat 'regexp-quote org-done-keywords "\\|")
-			   "\\)\\>")
-		   '(1 'org-done t)))
 	   ;; Code
 	   '("^[ \t]*\\(:.*\\)" (1 'org-code t))
-	   ;; Table
+	   ;; Table internals
 	   '("| *\\(:?=[^|\n]*\\)" (1 'org-formula t))
 	   '("^[ \t]*| *\\([#*]\\) *|" (1 'org-formula t))
 	   '("^[ \t]*|\\( *\\([$!_^/]\\) *|.*\\)|" (1 'org-formula t))
@@ -4674,6 +4729,15 @@ between words."
    ((eq n 2) org-f)
    (t (if org-level-color-stars-only nil org-f))))
 
+
+(defun org-get-todo-face (kwd)
+  "Get the right face for a TODO keyword KWD.
+If KWD is a number, get the corresponding match group."
+  (if (numberp kwd) (setq kwd (match-string kwd)))
+  (or (cdr (assoc kwd org-todo-keyword-faces))
+      (and (member kwd org-done-keywords) 'org-done)
+      'org-todo))
+
 (defun org-unfontify-region (beg end &optional maybe_loudly)
   "Remove fontification and activation overlays from links."
   (font-lock-default-unfontify-region beg end)
@@ -4722,7 +4786,8 @@ between words."
   `org-cycle-emulate-tab' for details.
 
 - Special case: if point is at the beginning of the buffer and there is
-  no headline in line 1, this function will act as if called with prefix arg."
+  no headline in line 1, this function will act as if called with prefix arg.
+  But only if also the variable `org-cycle-global-at-bob' is t."
   (interactive "P")
   (let* ((outline-regexp
 	  (if (and (org-mode-p) org-cycle-include-plain-lists)
@@ -5775,6 +5840,8 @@ WITH-CASE, the sorting considers case as well.  With two prefix arguments
 	     nentries
 	     (if unique (format ", %d duplicates removed" nremoved) ""))))
 
+(defvar org-priority-regexp) ; defined later in the file
+
 (defun org-do-sort (table what &optional with-case sorting-type)
   "Sort TABLE of WHAT according to SORTING-TYPE.
 The user will be prompted for the SORTING-TYPE if the call to this
@@ -5784,7 +5851,7 @@ the car of the elements of the table.
 If WITH-CASE is non-nil, the sorting will be case-sensitive."
   (unless sorting-type
     (message
-     "Sort %s: [a]lphabetically [n]umerically [t]ime. A/N/T means reversed:"
+     "Sort %s: [a]lphabetic. [n]umeric. [t]ime  [p]riority.  A/N/T/P means reversed:"
      what)
     (setq sorting-type (read-char-exclusive)))
   (let ((dcst (downcase sorting-type))
@@ -5808,6 +5875,13 @@ If WITH-CASE is non-nil, the sorting will be case-sensitive."
 		   (org-time-string-to-time (match-string 0 x)))
 		0))
 	    comparefun (if (= dcst sorting-type) '< '>)))
+     ((= dcst ?p)
+      (setq extractfun
+	    (lambda (x)
+	      (if (string-match org-priority-regexp x)
+		  (string-to-char (match-string 2 x))
+		org-default-priority))
+	    comparefun (if (= dcst sorting-type) '< '>)))		  
      (t (error "Invalid sorting type `%c'" sorting-type)))
 
     (sort (mapcar (lambda (x) (cons (funcall extractfun (car x)) (cdr x)))
@@ -6613,7 +6687,12 @@ this heading."
 	  (this-buffer (current-buffer))
 	  (org-archive-location org-archive-location)
 	  (re "^#\\+ARCHIVE:[ \t]+\\(\\S-.*\\S-\\)[ \t]*$")
-	  file heading buffer level newfile-p)
+	  (file (abbreviate-file-name (buffer-file-name)))
+	  (time (format-time-string
+		 (substring (cdr org-time-stamp-formats) 1 -1)
+		 (current-time)))
+	  afile heading buffer level newfile-p
+	  category todo priority ltags itags)
 
       ;; Try to find a local archive location
       (save-excursion
@@ -6624,21 +6703,31 @@ this heading."
 
       (if (string-match "\\(.*\\)::\\(.*\\)" org-archive-location)
 	  (progn
-	    (setq file (format (match-string 1 org-archive-location)
+	    (setq afile (format (match-string 1 org-archive-location)
 			       (file-name-nondirectory buffer-file-name))
 		  heading (match-string 2 org-archive-location)))
 	(error "Invalid `org-archive-location'"))
-      (if (> (length file) 0)
-	  (setq newfile-p (not (file-exists-p file))
-		buffer (find-file-noselect file))
+      (if (> (length afile) 0)
+	  (setq newfile-p (not (file-exists-p afile))
+		buffer (find-file-noselect afile))
 	(setq buffer (current-buffer)))
       (unless buffer
-	(error "Cannot access file \"%s\"" file))
+	(error "Cannot access file \"%s\"" afile))
       (if (and (> (length heading) 0)
 	       (string-match "^\\*+" heading))
 	  (setq level (match-end 0))
 	(setq heading nil level 0))
       (save-excursion
+	(org-back-to-heading t)
+	;; Get context information that will be lost by moving the tree
+	(setq category (org-get-category)
+	      todo (and (looking-at org-todo-line-regexp)
+			    (match-string 2))
+	      priority (org-get-priority (if (match-end 3) (match-string 3) ""))
+	      ltags (org-split-string (org-get-tags) ":")
+	      itags (org-delete-all ltags (org-get-tags-at)))
+	(setq ltags (mapconcat 'identity ltags " ")
+	      itags (mapconcat 'identity itags " "))
 	;; We first only copy, in case something goes wrong
 	;; we need to protect this-command, to avoid kill-region sets it,
 	;; which would lead to duplication of subtrees
@@ -6699,9 +6788,15 @@ this heading."
 	       (car (or (member org-archive-mark-done org-done-keywords)
 			org-done-keywords)))))
 
-	  ;; Move cursor to right after the TODO keyword
-	  (when org-archive-stamp-time
-	    (org-add-planning-info 'archived (org-current-time)))
+	  ;; Add the context info
+	  (when org-archive-save-context-info
+	    (let ((l org-archive-save-context-info) e n v)
+	      (while (setq e (pop l))
+		(when (and (setq v (symbol-value e))
+			   (stringp v) (string-match "\\S-" v))
+		  (setq n (concat "ARCHIVE_" (upcase (symbol-name e))))
+		  (org-entry-put (point) n v)))))
+
 	  ;; Save the buffer, if it is not the same buffer.
 	  (if (not (eq this-buffer buffer)) (save-buffer))))
       ;; Here we are back in the original buffer.  Everything seems to have
@@ -6711,7 +6806,7 @@ this heading."
       (message "Subtree archived %s"
 	       (if (eq this-buffer buffer)
 		   (concat "under heading: " heading)
-		 (concat "in file: " (abbreviate-file-name file)))))))
+		 (concat "in file: " (abbreviate-file-name afile)))))))
 
 (defun org-archive-all-done (&optional tag)
   "Archive sublevels of the current tree without open TODO items.
@@ -8151,7 +8246,7 @@ it can be edited in place."
 	  (field (org-table-get-field))
 	  (cw (current-window-configuration))
 	  p)
-      (switch-to-buffer-other-window "*Org tmp*")
+      (org-switch-to-buffer-other-window "*Org tmp*")
       (erase-buffer)
       (insert "#\n# Edit field and finish with C-c C-c\n#\n")
       (let ((org-inhibit-startup t)) (org-mode))
@@ -9247,7 +9342,7 @@ Parameters get priority."
 		  (field . "# Field Formulas\n")
 		  (named . "# Named Field Formulas\n")))
 	entry s type title)
-    (switch-to-buffer-other-window "*Edit Formulas*")
+    (org-switch-to-buffer-other-window "*Edit Formulas*")
     (erase-buffer)
     ;; Keep global-font-lock-mode from turning on font-lock-mode
     (let ((font-lock-global-modes '(not fundamental-mode)))
@@ -9602,7 +9697,7 @@ With prefix ARG, apply the new formulas to the table."
       (if (and (markerp pos) (marker-buffer pos))
 	  (if (get-buffer-window (marker-buffer pos))
 	      (select-window (get-buffer-window (marker-buffer pos)))
-	    (switch-to-buffer-other-window (get-buffer-window
+	    (org-switch-to-buffer-other-window (get-buffer-window
 					    (marker-buffer pos)))))
       (goto-char pos)
       (org-table-force-dataline)
@@ -10823,7 +10918,7 @@ For file links, arg negates `org-context-in-file-links'."
 	  (setq org-stored-links
 		(cons (list cpltxt link desc) org-stored-links))
 	  (message "Stored: %s" (or cpltxt link)))
-      (org-make-link-string link desc))))
+      (and link (org-make-link-string link desc)))))
 
 (defun org-store-link-props (&rest plist)
   "Store link properties, extract names and addresses."
@@ -10914,14 +11009,22 @@ according to FMT (default from `org-email-link-description-format')."
 	  "]"))
 
 (defconst org-link-escape-chars 
-  '((" " . "%20")    ("\340" . "%E0")
-    ("\342" . "%E2") ("\347" . "%E7")
-    ("\350" . "%E8") ("\351" . "%E9")
-    ("\352" . "%EA") ("\356" . "%EE")
-    ("\364" . "%F4") ("\371" . "%F9")
-    ("\373" . "%FB") (";" . "%3B")
-    ("?" . "%3F")    ("=" . "%3D")
-    ("+" . "%2B"))
+  '((" " . "%20")
+    ("\340" . "%E0")  ; `a
+    ("\342" . "%E2")  ; ^a  
+    ("\347" . "%E7")  ; ,c
+    ("\350" . "%E8")  ; `e
+    ("\351" . "%E9")  ; 'e
+    ("\352" . "%EA")  ; ^e
+    ("\356" . "%EE")  ; ^i
+    ("\364" . "%F4")  ; ^o
+    ("\371" . "%F9")  ; `u
+    ("\373" . "%FB")  ; ^u
+    (";" . "%3B")
+    ("?" . "%3F")
+    ("=" . "%3D")
+    ("+" . "%2B")
+    )
   "Association list of escapes for some characters problematic in links.")
 
 (defun org-link-escape (text)
@@ -11799,12 +11902,13 @@ sequences, it will now work."
                (string= mh-index-folder (substring folder 0 end-index)))
           (if (equal major-mode 'mh-show-mode)
               (save-window-excursion
-                (when (buffer-live-p (get-buffer folder))
-                  (progn
-                    (pop-to-buffer folder)
-                    (org-mhe-get-message-folder-from-index)
-                    )
-                  ))
+		(let (pop-up-frames)
+		  (when (buffer-live-p (get-buffer folder))
+		    (progn
+		      (pop-to-buffer folder)
+		      (org-mhe-get-message-folder-from-index)
+		      )
+		    )))
             (org-mhe-get-message-folder-from-index)
             )
         folder
@@ -12090,9 +12194,11 @@ to be run from that hook to fucntion properly."
 	(erase-buffer)
 	(insert (substitute-command-keys
 		 (format
-		  "## `C-c C-c' to file interactively, `C-u C-c C-c' to file directly.
+		  "## `%sC-c C-c' to file directly, `%sC-c C-c' to file interactively.
 ## Target file \"%s\", headline \"%s\"
 ## To switch templates, use `\\[org-remember]'.\n\n"
+		  (if org-remember-store-without-prompt "" "C-u ")
+		  (if org-remember-store-without-prompt "C-u " "")
 		  (abbreviate-file-name (or file org-default-notes-file))
 		  (or headline ""))))
 	(insert tpl) (goto-char (point-min))
@@ -12569,6 +12675,8 @@ At all other locations, this simply calls `ispell-complete-word'."
 If the last change removed the TODO tag or switched to DONE, then
 this is nil.")
 
+(defvar org-setting-tags nil) ; dynamically skiped
+
 (defun org-todo (&optional arg)
   "Change the TODO state of an item.
 The state of an item is given by a keyword at the start of the heading,
@@ -12683,11 +12791,13 @@ For calling through lisp, arg is also interpreted in the following way:
 	  (org-add-log-maybe 'state state 'findpos))
 	 ((member state org-done-keywords)
 	  ;; Planning info calls the note-setting command.
-	  (org-add-planning-info 'closed (org-current-time)
-				 (if (org-get-repeat) nil 'scheduled))
+	  ;; FIXME: We used to remove scheduling info....
+;	  (org-add-planning-info 'closed (org-current-time)
+;				 (if (org-get-repeat) nil 'scheduled))
+	  (org-add-planning-info 'closed (org-current-time))
 	  (org-add-log-maybe 'done state 'findpos))))
       ;; Fixup tag positioning
-      (and org-auto-align-tags (org-set-tags nil t))
+      (and org-auto-align-tags (not org-setting-tags) (org-set-tags nil t))
       (run-hooks 'org-after-todo-state-change-hook)
       (and (member state org-done-keywords) (org-auto-repeat-maybe))
       (if (and arg (not (member state org-done-keywords)))
@@ -12869,8 +12979,7 @@ be removed."
 	     (if (not (equal (char-before) ?\ )) " " "")
 	     (cond ((eq what 'scheduled) org-scheduled-string)
 		   ((eq what 'deadline) org-deadline-string)
-		   ((eq what 'closed) org-closed-string)
-		   ((eq what 'archived) org-archived-string))
+		   ((eq what 'closed) org-closed-string))
 	     " ")
 	    (org-insert-time-stamp
 	     time
@@ -12906,17 +13015,22 @@ The auto-repeater uses this.")
 			    "[^\r\n]*\\)?"))
 	(goto-char (match-end 0))
 	(unless org-log-states-order-reversed
-	  (if (looking-at "\n[ \t]*- State") (forward-char 1))
-	  (while (looking-at "[ \t]*- State")
-	    (condition-case nil
-		(org-next-item)
-	      (error (org-end-of-item))))
+	  (and (= (char-after) ?\n) (forward-char 1))
+	  (org-skip-over-state-notes)
 	  (skip-chars-backward " \t\n\r")))
       (move-marker org-log-note-marker (point))
       (setq org-log-note-purpose purpose)
       (setq org-log-note-state state)
       (add-hook 'post-command-hook 'org-add-log-note 'append))))
 
+(defun org-skip-over-state-notes ()
+  "Skip past the list of State notes in an entry."
+  (if (looking-at "\n[ \t]*- State") (forward-char 1))
+  (while (looking-at "[ \t]*- State")
+    (condition-case nil
+	(org-next-item)
+      (error (org-end-of-item)))))
+
 (defun org-add-log-note (&optional purpose)
   "Pop up a window for taking a note, and add this note later at point."
   (remove-hook 'post-command-hook 'org-add-log-note)
@@ -12925,7 +13039,7 @@ The auto-repeater uses this.")
   (move-marker org-log-note-return-to (point))
   (switch-to-buffer (marker-buffer org-log-note-marker))
   (goto-char org-log-note-marker)
-  (switch-to-buffer-other-window "*Org Note*")
+  (org-switch-to-buffer-other-window "*Org Note*")
   (erase-buffer)
   (let ((org-inhibit-startup t)) (org-mode))
   (insert (format "# Insert note for %s, finish with C-c C-c.\n\n"
@@ -13407,6 +13521,8 @@ With prefix ARG, realign all tags in headings in the current buffer."
   (interactive "P")
   (let* ((re (concat "^" outline-regexp))
 	 (current (org-get-tags))
+	 (col (current-column))
+	 (org-setting-tags t)
 	 table current-tags inherited-tags ; computed below when needed
 	 tags p0 c0 c1 rpl)
     (if arg
@@ -13431,7 +13547,8 @@ With prefix ARG, realign all tags in headings in the current buffer."
 		(if (or (eq t org-use-fast-tag-selection)
 			(and org-use-fast-tag-selection
 			     (delq nil (mapcar 'cdr table))))
-		    (org-fast-tag-selection current-tags inherited-tags table)
+		    (org-fast-tag-selection current-tags inherited-tags
+					    table org-todo-tag-alist)
 		  (let ((org-add-colon-after-tag-completion t))
 		    (org-trim
 		     (completing-read "Tags: " 'org-tags-completion-function
@@ -13463,7 +13580,8 @@ With prefix ARG, realign all tags in headings in the current buffer."
 	(replace-match rpl t t)
 	(and (not (featurep 'xemacs)) c0 (tabify p0 (point)))
 	tags)
-       (t (error "Tags alignment failed"))))))
+       (t (error "Tags alignment failed")))
+      (move-to-column col))))
 
 (defun org-change-tag-in-region (beg end tag off)
   "Add or remove TAG for each entry in the region.
@@ -13555,17 +13673,19 @@ This works in the agenda, and also in an org-mode buffer."
       (put-text-property 0 (length s) 'face '(secondary-selection org-tag) s)
       (org-overlay-display org-tags-overlay (concat prefix s)))))
 
-(defun org-fast-tag-selection (current inherited table)
+(defun org-fast-tag-selection (current inherited table &optional todo-table)
   "Fast tag selection with single keys.
 CURRENT is the current list of tags in the headline, INHERITED is the
 list of inherited tags, and TABLE is an alist of tags and corresponding keys,
-possibly with grouping information.
+possibly with grouping information.  TODO-TABLE is a similar table with
+TODO keywords, should these have keys assigned to them.
 If the keys are nil, a-z are automatically assigned.
 Returns the new tags string, or nil to not change the current settings."
-  (let* ((maxlen (apply 'max (mapcar
+  (let* ((fulltable (append table todo-table))
+	 (maxlen (apply 'max (mapcar
 			      (lambda (x)
 				(if (stringp (car x)) (string-width (car x)) 0))
-			      table)))
+			      fulltable)))
 	 (buf (current-buffer))
 	 (expert (eq org-fast-tag-selection-single-key 'expert))
 	 (buffer-tags nil)
@@ -13599,13 +13719,13 @@ Returns the new tags string, or nil to not change the current settings."
 	  (set-buffer (get-buffer-create " *Org tags*"))
 	(delete-other-windows)
 	(split-window-vertically)
-	(switch-to-buffer-other-window (get-buffer-create " *Org tags*")))
+	(org-switch-to-buffer-other-window (get-buffer-create " *Org tags*")))
       (erase-buffer)
       (org-fast-tag-insert "Inherited" inherited i-face "\n")
       (org-fast-tag-insert "Current" current c-face "\n\n")
       (org-fast-tag-show-exit exit-after-next)
       (org-set-current-tags-overlay current ov-prefix)
-      (setq tbl table char ?a cnt 0)
+      (setq tbl fulltable char ?a cnt 0)
       (while (setq e (pop tbl))
 	(cond
 	 ((equal e '(:startgroup))
@@ -13669,7 +13789,7 @@ Returns the new tags string, or nil to not change the current settings."
 		    (setq expert nil)
 		    (delete-other-windows)
 		    (split-window-vertically)
-		    (switch-to-buffer-other-window " *Org tags*")
+		    (org-switch-to-buffer-other-window " *Org tags*")
 		    (and (fboundp 'fit-window-to-buffer)
 			 (fit-window-to-buffer))))
 		 ((or (= c ?\C-g)
@@ -13693,6 +13813,10 @@ Returns the new tags string, or nil to not change the current settings."
 			(setq current (delete tg current))
 		      (push tg current)))
 		  (if exit-after-next (setq exit-after-next 'now)))
+		 ((setq e (rassoc c todo-table) tg (car e))
+		  (with-current-buffer buf
+		    (save-excursion (org-todo tg)))
+		  (if exit-after-next (setq exit-after-next 'now)))
 		 ((setq e (rassoc c ntable) tg (car e))
 		  (if (member tg current)
 		      (setq current (delete tg current))
@@ -14034,6 +14158,9 @@ If the property is not present at all, nil is returned."
     (while (re-search-forward re end t))
     (setq hiddenp (org-invisible-p))
     (end-of-line 1)
+    (and (= (char-after) ?\n) (forward-char 1))
+    (org-skip-over-state-notes)
+    (end-of-line 0)
     (insert "\n:PROPERTIES:\n:END:")
     (beginning-of-line 0)
     (org-indent-line-function)
@@ -16535,7 +16662,7 @@ next use of \\[org-agenda]) restricted to the current file."
       (setq org-agenda-last-dispatch-buffer (current-buffer))
       (save-window-excursion
 	(delete-other-windows)
-	(switch-to-buffer-other-window " *Agenda Commands*")
+	(org-switch-to-buffer-other-window " *Agenda Commands*")
 	(erase-buffer)
 	(insert (eval-when-compile
 		  (let ((header
@@ -16837,6 +16964,7 @@ agenda-day   The day in the agenda where this is listed"
 (defmacro org-batch-store-agenda-views (&rest parameters)
   "Run all custom agenda commands that have a file argument."
   (let ((cmds org-agenda-custom-commands)
+	(pop-up-frames nil)
 	(dir default-directory)
 	pars cmd thiscmdkey files opts)
     (while parameters
@@ -16927,11 +17055,19 @@ higher priority settings."
   "Get the list of agenda files.
 Optional UNRESTRICTED means return the full list even if a restriction
 is currently in place."
-  (cond
-   ((and (not unrestricted) (get 'org-agenda-files 'org-restrict)))
-   ((stringp org-agenda-files) (org-read-agenda-file-list))
-   ((listp org-agenda-files) org-agenda-files)
-   (t (error "Invalid value of `org-agenda-files'"))))
+  (let ((files
+	 (cond
+	  ((and (not unrestricted) (get 'org-agenda-files 'org-restrict)))
+	  ((stringp org-agenda-files) (org-read-agenda-file-list))
+	  ((listp org-agenda-files) org-agenda-files)
+	  (t (error "Invalid value of `org-agenda-files'")))))
+    (if org-agenda-skip-unavailable-files
+	(delq nil
+	      (mapcar (function
+		       (lambda (file)
+			 (and (file-readable-p file) file)))
+		      files))
+      files))) ; `org-check-agenda-file' will remove them from the list
 
 (defun org-edit-agenda-file-list ()
   "Edit the list of agenda files.
@@ -17001,7 +17137,8 @@ If the file is not present in the list, it is added to the front.  If it is
 present, it is moved there.  With optional argument TO-END, add/move to the
 end of the list."
   (interactive "P")
-  (let ((file-alist (mapcar (lambda (x)
+  (let ((org-agenda-skip-unavailable-files nil)
+	(file-alist (mapcar (lambda (x)
 			      (cons (file-truename x) x))
 			    (org-agenda-files t)))
 	(ctf (file-truename buffer-file-name))
@@ -17022,7 +17159,8 @@ end of the list."
 These are the files which are being checked for agenda entries.
 Optional argument FILE means, use this file instead of the current."
   (interactive)
-  (let* ((file (or file buffer-file-name))
+  (let* ((org-agenda-skip-unavailable-files nil)
+	 (file (or file buffer-file-name))
 	 (true-file (file-truename file))
 	 (afile (abbreviate-file-name file))
 	 (files (delq nil (mapcar
@@ -17084,12 +17222,12 @@ Optional argument FILE means, use this file instead of the current."
        ((equal org-agenda-window-setup 'current-window)
 	(switch-to-buffer abuf))
        ((equal org-agenda-window-setup 'other-window)
-	(switch-to-buffer-other-window abuf))
+	(org-switch-to-buffer-other-window abuf))
        ((equal org-agenda-window-setup 'other-frame)
 	(switch-to-buffer-other-frame abuf))
        ((equal org-agenda-window-setup 'reorganize-frame)
 	(delete-other-windows)
-	(switch-to-buffer-other-window abuf))))
+	(org-switch-to-buffer-other-window abuf))))
     (setq buffer-read-only nil)
     (erase-buffer)
     (org-agenda-mode)
@@ -17297,7 +17435,7 @@ dates."
 	 s e rtn d emptyp)
     (setq org-agenda-redo-command
 	  (list 'progn
-		(list 'switch-to-buffer-other-window (current-buffer))
+		(list 'org-switch-to-buffer-other-window (current-buffer))
 		(list 'org-timeline (list 'quote include-all))))
     (if (not dopast)
 	;; Remove past dates from the list of dates.
@@ -17812,6 +17950,7 @@ MATCH is being ignored."
   "Get the (Emacs Calendar) diary entries for DATE."
   (let* ((fancy-diary-buffer "*temporary-fancy-diary-buffer*")
 	 (diary-display-hook '(fancy-diary-display))
+	 (pop-up-frames nil)
 	 (list-diary-entries-hook
 	  (cons 'org-diary-default-entry list-diary-entries-hook))
 	 (diary-file-name-prefix-function nil) ; turn this feature off
@@ -18082,7 +18221,7 @@ the documentation of `org-diary'."
 		    (and org-agenda-todo-ignore-deadlines (goto-char beg)
 			 (re-search-forward org-deadline-time-regexp end t)
 			 (org-deadline-close (match-string 1))))
-	    (goto-char beg)
+	    (goto-char (1+ beg))
 	    (or org-agenda-todo-list-sublevels (org-end-of-subtree 'invisible))
 	    (throw :skip nil)))
 	(goto-char beg)
@@ -18323,7 +18462,7 @@ the documentation of `org-diary'."
 		    (if (string-match " \\([012]?[0-9]:[0-9][0-9]\\)" s)
 			(setq timestr
 			      (concat (substring s (match-beginning 1)) " "))
-		      (setq timestr nil))
+		      (setq timestr 'time))
 		    (if (and donep
 			     (or org-agenda-skip-deadline-if-done
 				 (not (= diff 0))))
@@ -18399,7 +18538,7 @@ FRACTION is what fraction of the head-warning time has passed."
 		    (if (string-match " \\([012]?[0-9]:[0-9][0-9]\\)" s)
 			(setq timestr
 			      (concat (substring s (match-beginning 1)) " "))
-		      (setq timestr nil))
+		      (setq timestr 'time))
 		    (if (and donep
 			     (or org-agenda-skip-scheduled-if-done
 				 (not (= diff 0))))
@@ -18724,16 +18863,18 @@ HH:MM."
     (if (eq x 'line)
 	(save-excursion
 	  (beginning-of-line 1)
-	  (setq re (get-text-property (point) 'org-not-done-regexp))
+	  (setq re (get-text-property (point) 'org-todo-regexp))
 	  (goto-char (+ (point) (or (get-text-property (point) 'prefix-length) 0)))
 	  (and (looking-at (concat "[ \t]*\\.*" re))
 	       (add-text-properties (match-beginning 0) (match-end 0)
-				    '(face org-todo))))
-      (setq re (concat (get-text-property 0 'org-not-done-regexp x))
+				    (list 'face (org-get-todo-face 0)))))
+      (setq re (concat (get-text-property 0 'org-todo-regexp x))
 	    pl (get-text-property 0 'prefix-length x))
       (and re (equal (string-match (concat "\\(\\.*\\)" re) x (or pl 0)) pl)
-	   (add-text-properties (or (match-end 1) (match-end 0)) (match-end 0)
-				'(face org-todo) x))
+	   (add-text-properties
+	    (or (match-end 1) (match-end 0)) (match-end 0)
+	    (list 'face (org-get-todo-face (match-string 2 x)))
+	    x))
       x)))
 
 (defsubst org-cmp-priority (a b)
@@ -19420,7 +19561,7 @@ POS defaults to point.  If tags are inherited, the list contains
 the targets in the same sequence as the headlines appear, i.e.
 the tags of the current headline come last."
   (interactive)
-  (let (tags)
+  (let (tags lastpos)
     (save-excursion
       (save-restriction
 	(widen)
@@ -19428,7 +19569,8 @@ the tags of the current headline come last."
 	(save-match-data
 	  (org-back-to-heading t)
 	  (condition-case nil
-	      (while t
+	      (while (not (equal lastpos (point)))
+		(setq lastpos (point))
 		(if (looking-at (org-re "[^\r\n]+?:\\([[:alnum:]_@:]+\\):[ \t]*$"))
 		    (setq tags (append (org-split-string
 					(org-match-string-no-properties 1) ":")
@@ -19761,6 +19903,7 @@ This is a command that has to be installed in `calendar-mode-map'."
 	     "Hebrew:     " (calendar-hebrew-date-string date) " (until sunset)\n"
 	     "Islamic:    " (calendar-islamic-date-string date) " (until sunset)\n"
 	     "French:     " (calendar-french-date-string date) "\n"
+	     "Bahai:      " (calendar-bahai-date-string date) " (until sunset)\n"
 	     "Mayan:      " (calendar-mayan-date-string date) "\n"
 	     "Coptic:     " (calendar-coptic-date-string date) "\n"
 	     "Ethiopic:   " (calendar-ethiopic-date-string date) "\n"
@@ -21201,6 +21344,12 @@ command."
 	 (file buffer-file-name)
 	 (buffer (get-buffer-create "*Org Export Visible*"))
 	 s e)
+    ;; Need to hack the drawers here.
+    (save-excursion
+      (goto-char (point-min))
+      (while (re-search-forward org-drawer-regexp nil t)
+	(goto-char (match-beginning 1))
+	(or (org-invisible-p) (org-flag-drawer nil))))
     (with-current-buffer buffer (erase-buffer))
     (save-excursion
       (setq s (goto-char (point-min)))
@@ -21208,6 +21357,7 @@ command."
 	(goto-char (org-find-invisible))
 	(append-to-buffer buffer s (point))
 	(setq s (goto-char (org-find-visible))))
+      (org-cycle-hide-drawers 'all)
       (goto-char (point-min))
       (unless keepp
 	;; Copy all comment lines to the end, to make sure #+ settings are
@@ -21384,7 +21534,7 @@ This can be used in any buffer.  For example, you could write an
 itemized list in org-mode syntax in an HTML buffer and then use this
 command to convert it."
   (interactive "r")
-  (let (reg html buf)
+  (let (reg html buf pop-up-frames)
     (save-window-excursion
       (if (org-mode-p)
 	  (setq html (org-export-region-as-html
@@ -23884,6 +24034,13 @@ return nil."
 	   (list context (match-beginning group) (match-end group))
 	 t)))
 
+(defun org-switch-to-buffer-other-window (&rest args)
+  "Switch to buffer in a second window on the current frame.
+In particular, do not allow pop-up frames."
+  (let (pop-up-frames special-display-buffer-names special-display-regexps
+		      special-display-function)
+    (apply 'switch-to-buffer-other-window args)))
+
 (defun org-combine-plists (&rest plists)
   "Create a single property list from all plists in PLISTS.
 The process starts by copying the first list, and then setting properties

BIN
org.pdf


+ 28 - 18
org.texi

@@ -3,7 +3,7 @@
 @setfilename ../info/org
 @settitle Org Mode Manual
 
-@set VERSION 5.06
+@set VERSION 5.07
 @set DATE August 2007
 
 @dircategory Emacs
@@ -498,8 +498,8 @@ define @emph{global} keys for the commands @command{org-store-link} and
 @lisp
 ;; The following lines are always needed.  Choose your own keys.
 (add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode))
-(define-key global-map "\C-cl" 'org-store-link)
-(define-key global-map "\C-ca" 'org-agenda)
+(global-set-key "\C-cl" 'org-store-link)
+(global-set-key "\C-ca" 'org-agenda)
 @end lisp
 
 Furthermore, you must activate @code{font-lock-mode} in org-mode
@@ -848,9 +848,9 @@ Sort same-level entries.  When there is an active region, all entries in
 the region will be sorted.  Otherwise the children of the current
 headline are sorted.  The command prompts for the sorting method, which
 can be alphabetically, numerically, by time (using the first time stamp
-in each entry), and each of these in reverse order.  With a @kbd{C-u}
-prefix, sorting will be case-sensitive.  With two @kbd{C-u C-u}
-prefixes, duplicate entries will also be removed.
+in each entry), by priority, and each of these in reverse order.  With a
+@kbd{C-u} prefix, sorting will be case-sensitive.  With two @kbd{C-u
+C-u} prefixes, duplicate entries will also be removed.
 @end table
 
 @cindex region, active
@@ -938,7 +938,9 @@ file, the archive file.
 @kindex C-c C-x C-s
 @item C-c C-x C-s
 Archive the subtree starting at the cursor position to the location
-given by @code{org-archive-location}.
+given by @code{org-archive-location}.  Context information that could be
+lost like the file name, the category, inherited tags, and the todo
+state will be store as properties in the entry.
 @kindex C-u C-c C-x C-s
 @item C-u C-c C-x C-s
 Check if any direct children of the current headline could be moved to
@@ -994,9 +996,9 @@ match is in the body of an entry, headline and body are made visible.
 In order to provide minimal context, also the full hierarchy of
 headlines above the match is shown, as well as the headline following
 the match.  Each match is also highlighted; the highlights disappear
-when the buffer is changed an editing command, or by pressing @kbd{C-c
-C-c}.  When called with a @kbd{C-u} prefix argument, previous highlights
-are kept, so several calls to this command can be stacked.
+when the buffer is changed by an editing command, or by pressing
+@kbd{C-c C-c}.  When called with a @kbd{C-u} prefix argument, previous
+highlights are kept, so several calls to this command can be stacked.
 @end table
 @noindent
 For frequently used sparse trees of specific search strings, you can
@@ -1969,7 +1971,9 @@ Recompute the entire table, line by line.  Any lines before the first
 hline are left alone, assuming that these are part of the table header.
 @c
 @kindex C-u C-u C-c *
+@kindex C-u C-u C-c C-c
 @item C-u C-u C-c *
+@itemx C-u C-u C-c C-c
 Iterate the table by recomputing it until no further changes occur.
 This may be necessary if some computed fields use the value of other
 fields that are computed @i{later} in the calculation sequence.
@@ -2757,7 +2761,17 @@ agenda buffers with the @kbd{t} command key (@pxref{Agenda commands}).
 @item S-@key{right}
 @itemx S-@key{left}
 Select the following/preceding TODO state, similar to cycling.  Mostly
-useful if more than two TODO states are possible (@pxref{TODO extensions}).
+useful if more than two TODO states are possible (@pxref{TODO
+extensions}).
+@kindex C-c C-c
+@item C-c C-c
+Use the fast tag interface to quickly and directly select a specific
+TODO state.  For this you need to assign keys to TODO state, like this:
+@example
+#+SEQ_TODO: TODO(t) STARTED(s) WAITING(w) | DONE(d)
+@end example
+@noindent See @ref{Per file keywords} and @ref{Setting tags} for more
+information.
 @kindex C-c C-v
 @cindex sparse tree, for TODO
 @item C-c C-v
@@ -2775,9 +2789,6 @@ agenda files (@pxref{Agenda views}) into a single buffer.  The buffer is in
 @code{agenda-mode}, so there are commands to examine and manipulate
 the TODO entries directly from that buffer (@pxref{Agenda commands}).
 @xref{Global TODO list}, for more information.
-@c @item @code{org-agenda-include-all-todo}
-@c If you would like to have all your TODO items listed as part of your
-@c agenda, customize the variable @code{org-agenda-include-all-todo}.
 @kindex S-M-@key{RET}
 @item S-M-@key{RET}
 Insert a new TODO entry below the current one.
@@ -2930,12 +2941,11 @@ or
 A setup for using several sets in parallel would be:
 
 @example
-#+SEQ_TODO: "TODO" "|" "DONE"
-#+SEQ_TODO: "REPORT" "BUG" "KNOWNCAUSE" "|" "FIXED"
-#+SEQ_TODO: "|" "CANCELED"
+#+SEQ_TODO: TODO | DONE
+#+SEQ_TODO: REPORT BUG KNOWNCAUSE | FIXED
+#+SEQ_TODO: | CANCELED
 @end example
 
-
 @cindex completion, of option keywords
 @kindex M-@key{TAB}
 @noindent To make sure you are using the correct keyword, type

BIN
orgcard.pdf


+ 2 - 2
orgcard.tex

@@ -1,5 +1,5 @@
 % Reference Card for Org Mode
-\def\orgversionnumber{5.05}
+\def\orgversionnumber{5.07}
 \def\versionyear{2007}          % latest update
 \def\year{2007}                 % latest copyright year
 
@@ -652,7 +652,7 @@ To set categories, add lines like$^2$:
 \key{kill item and source}{C-k}
 \key{archive the subtree}{\$}
 \key{show tags of current headline}{T}
-\key{set tags for current headline}{:}
+\key{set tags for current headline/region}{:}
 \key{toggle ARCHIVE tag}{a}
 \key{set priority of current item}{p}
 \key{raise/lower priority of current item}{S-UP/DOWN$^3$}