Carsten Dominik 17 лет назад
Родитель
Сommit
fcf5c84bc8
6 измененных файлов с 470 добавлено и 277 удалено
  1. 192 139
      org
  2. 201 105
      org.el
  3. BIN
      org.pdf
  4. 75 29
      org.texi
  5. BIN
      orgcard.pdf
  6. 2 4
      orgcard.tex

+ 192 - 139
org

@@ -5,7 +5,7 @@ START-INFO-DIR-ENTRY
 * Org Mode: (org).	outline-based notes management and organizer
 * Org Mode: (org).	outline-based notes management and organizer
 END-INFO-DIR-ENTRY
 END-INFO-DIR-ENTRY
 
 
-   This manual is for Org-mode (version 4.28).
+   This manual is for Org-mode (version 4.29).
 
 
    Copyright (C) 2004, 2005, 2006 Free Software Foundation
    Copyright (C) 2004, 2005, 2006 Free Software Foundation
 
 
@@ -27,7 +27,7 @@ File: org,  Node: Top,  Next: Introduction,  Prev: (dir),  Up: (dir)
 Org Mode Manual
 Org Mode Manual
 ***************
 ***************
 
 
-This manual is for Org-mode (version 4.28).
+This manual is for Org-mode (version 4.29).
 
 
    Copyright (C) 2004, 2005, 2006 Free Software Foundation
    Copyright (C) 2004, 2005, 2006 Free Software Foundation
 
 
@@ -88,6 +88,7 @@ Tables
 Calculations in tables
 Calculations in tables
 
 
 * Formula syntax::              How to write a formula
 * Formula syntax::              How to write a formula
+* Lisp formulas::               An alternative way to write formulas
 * Column formulas::             Formulas valid for all fields in a column
 * Column formulas::             Formulas valid for all fields in a column
 * Advanced features::           Field names, parameters and automatic recalc
 * Advanced features::           Field names, parameters and automatic recalc
 * Named-field formulas::        Formulas valid in single fields
 * Named-field formulas::        Formulas valid in single fields
@@ -540,9 +541,8 @@ C-v' creates a sparse TODO tree (*note TODO basics::).
 
 
    To print a sparse tree, you can use the Emacs command
    To print a sparse tree, you can use the Emacs command
 `ps-print-buffer-with-faces' which does not print invisible parts of
 `ps-print-buffer-with-faces' which does not print invisible parts of
-the document (2).  Or you can use the command `C-c C-x v' to copy the
-visible part of the document to another file (extension `.txt') which
-can then be printed in any desired way.
+the document (2).  Or you can use the command `C-c C-x v' to export
+only the visible part of the document and print the resulting file.
 
 
    ---------- Footnotes ----------
    ---------- Footnotes ----------
 
 
@@ -916,7 +916,8 @@ File: org,  Node: Table calculations,  Next: orgtbl-mode,  Prev: Narrow columns,
 ==========================
 ==========================
 
 
 The table editor makes use of the Emacs `calc' package to implement
 The table editor makes use of the Emacs `calc' package to implement
-spreadsheet-like capabilities.  Org-mode has two levels of complexity
+spreadsheet-like capabilities.  It can also evaluate Emacs Lisp forms to
+derive fields from other fields.  Org-mode has two levels of complexity
 for table calculations.  On the basic level, tables do only horizontal
 for table calculations.  On the basic level, tables do only horizontal
 computations, so a field can be computed from other fields _in the same
 computations, so a field can be computed from other fields _in the same
 row_, and Org-mode assumes that there is only one formula for each
 row_, and Org-mode assumes that there is only one formula for each
@@ -928,6 +929,7 @@ own formula associated with them, and recalculation can be automated.
 * Menu:
 * Menu:
 
 
 * Formula syntax::              How to write a formula
 * Formula syntax::              How to write a formula
+* Lisp formulas::               An alternative way to write formulas
 * Column formulas::             Formulas valid for all fields in a column
 * Column formulas::             Formulas valid for all fields in a column
 * Advanced features::           Field names, parameters and automatic recalc
 * Advanced features::           Field names, parameters and automatic recalc
 * Named-field formulas::        Formulas valid in single fields
 * Named-field formulas::        Formulas valid in single fields
@@ -935,7 +937,7 @@ own formula associated with them, and recalculation can be automated.
 * Appetizer::                   Taste the power of calc
 * Appetizer::                   Taste the power of calc
 
 
 
 
-File: org,  Node: Formula syntax,  Next: Column formulas,  Prev: Table calculations,  Up: Table calculations
+File: org,  Node: Formula syntax,  Next: Lisp formulas,  Prev: Table calculations,  Up: Table calculations
 
 
 3.3.1 Formula syntax
 3.3.1 Formula syntax
 --------------------
 --------------------
@@ -977,17 +979,17 @@ turn on degrees, radians, fraction and symbolic modes, respectively.
 In addition, you may provide a `printf' format specifier to reformat
 In addition, you may provide a `printf' format specifier to reformat
 the final result.  A few examples:
 the final result.  A few examples:
 
 
-       $1+$2                Sum of first and second field
-       $1+$2;%.2f           Same, format result to two decimals
-       exp($2)+exp($1)      Math functions can be used
-       $;%.1f               Reformat current cell to 1 decimal
-       ($3-32)*5/9          Degrees F -> C conversion
-       $c/$1/$cm            Hz -> cm conversion, using `constants.el'
-       tan($1);Dp3s1        Compute in degrees, precision 3, display SCI 1
-       sin($1);Dp3%.1e      Same, but use printf specifier for display
-       vmean($2..$7)        Compute column range mean, using vector function
-       vsum(&III)           Sum numbers from 3rd hline above, up to here
-       taylor($3,x=7,2)     taylor series of $3, at x=7, second degree
+     $1+$2                Sum of first and second field
+     $1+$2;%.2f           Same, format result to two decimals
+     exp($2)+exp($1)      Math functions can be used
+     $;%.1f               Reformat current cell to 1 decimal
+     ($3-32)*5/9          Degrees F -> C conversion
+     $c/$1/$cm            Hz -> cm conversion, using `constants.el'
+     tan($1);Dp3s1        Compute in degrees, precision 3, display SCI 1
+     sin($1);Dp3%.1e      Same, but use printf specifier for display
+     vmean($2..$7)        Compute column range mean, using vector function
+     vsum(&III)           Sum numbers from 3rd hline above, up to here
+     taylor($3,x=7,2)     taylor series of $3, at x=7, second degree
 
 
    ---------- Footnotes ----------
    ---------- Footnotes ----------
 
 
@@ -998,9 +1000,27 @@ The default settings can be configured using the variable
 `org-calc-default-modes'.
 `org-calc-default-modes'.
 
 
 
 
-File: org,  Node: Column formulas,  Next: Advanced features,  Prev: Formula syntax,  Up: Table calculations
+File: org,  Node: Lisp formulas,  Next: Column formulas,  Prev: Formula syntax,  Up: Table calculations
 
 
-3.3.2 Column formulas
+3.3.2 Emacs Lisp forms as formulas
+----------------------------------
+
+It is also possible to write a formula in Emacs lisp, this can be useful
+for string manipulation and control structures.  If a formula starts
+with a single quote followed by an opening parenthesis, then it is
+evaluated as a lisp form.  The evaluation should return either a string
+or a number.  Just like with `calc' formulas, you can provide a format
+specifier after a semicolon.  A few examples:
+
+     swap the first two characters of the content of column 1
+     '(concat (substring "$1" 1 2) (substring "$1" 0 1) (substring "$1" 2))
+     Add columns 1 and 2, equivalent to the calc's `$1+$2'
+     '(+ $1 $2)
+
+
+File: org,  Node: Column formulas,  Next: Advanced features,  Prev: Lisp formulas,  Up: Table calculations
+
+3.3.3 Column formulas
 ---------------------
 ---------------------
 
 
 To apply a formula to a field, type it directly into the field,
 To apply a formula to a field, type it directly into the field,
@@ -1035,7 +1055,7 @@ separator line, assuming that this is the table header.
 
 
 File: org,  Node: Advanced features,  Next: Named-field formulas,  Prev: Column formulas,  Up: Table calculations
 File: org,  Node: Advanced features,  Next: Named-field formulas,  Prev: Column formulas,  Up: Table calculations
 
 
-3.3.3 Advanced features
+3.3.4 Advanced features
 -----------------------
 -----------------------
 
 
 If you want the recalculation of fields to happen automatically, or if
 If you want the recalculation of fields to happen automatically, or if
@@ -1108,7 +1128,7 @@ with empty first field.
 
 
 File: org,  Node: Named-field formulas,  Next: Editing/debugging formulas,  Prev: Advanced features,  Up: Table calculations
 File: org,  Node: Named-field formulas,  Next: Editing/debugging formulas,  Prev: Advanced features,  Up: Table calculations
 
 
-3.3.4 Named-field formulas
+3.3.5 Named-field formulas
 --------------------------
 --------------------------
 
 
 A named field can have its own formula associated with it.  In the
 A named field can have its own formula associated with it.  In the
@@ -1122,7 +1142,7 @@ line) will also update all named field formulas.
 
 
 File: org,  Node: Editing/debugging formulas,  Next: Appetizer,  Prev: Named-field formulas,  Up: Table calculations
 File: org,  Node: Editing/debugging formulas,  Next: Appetizer,  Prev: Named-field formulas,  Up: Table calculations
 
 
-3.3.5 Editing and debugging formulas
+3.3.6 Editing and debugging formulas
 ------------------------------------
 ------------------------------------
 
 
 To edit a column or field formula, use the commands `C-c =' and `C-u
 To edit a column or field formula, use the commands `C-c =' and `C-u
@@ -1158,7 +1178,7 @@ will be displayed.
 
 
 File: org,  Node: Appetizer,  Prev: Editing/debugging formulas,  Up: Table calculations
 File: org,  Node: Appetizer,  Prev: Editing/debugging formulas,  Up: Table calculations
 
 
-3.3.6 Appetizer
+3.3.7 Appetizer
 ---------------
 ---------------
 
 
 Finally, just to wet your appetite on what can be done with the
 Finally, just to wet your appetite on what can be done with the
@@ -2597,6 +2617,12 @@ Remote editing
 `S-<down>'
 `S-<down>'
      Decrease the priority of the current item.
      Decrease the priority of the current item.
 
 
+`C-c C-s'
+     Schedule this item
+
+`C-c C-d'
+     Set a deadline for this item.
+
 `S-<right>'
 `S-<right>'
      Change the time stamp associated with the current line by one day
      Change the time stamp associated with the current line by one day
      into the future.  With prefix argument, change it by that many
      into the future.  With prefix argument, change it by that many
@@ -2702,7 +2728,10 @@ file.
      Export as ASCII file.  If there is an active region, only the
      Export as ASCII file.  If there is an active region, only the
      region will be exported.  For an org file `myfile.org', the ASCII
      region will be exported.  For an org file `myfile.org', the ASCII
      file will be `myfile.txt'.  The file will be overwritten without
      file will be `myfile.txt'.  The file will be overwritten without
-     warning.
+     warning.  
+
+`C-c C-x v a'
+     Export only the visible part of the document.
 
 
    In the exported version, the first 3 outline levels will become
    In the exported version, the first 3 outline levels will become
 headlines, defining a general document structure.  Additional levels
 headlines, defining a general document structure.  Additional levels
@@ -2728,7 +2757,12 @@ support for tables.
      Export as HTML file `myfile.html'.  
      Export as HTML file `myfile.html'.  
 
 
 `C-c C-x b'
 `C-c C-x b'
-     Export as HTML file and open it with a browser.
+     Export as HTML file and open it with a browser.  
+
+`C-c C-x v h'
+
+`C-c C-x v b'
+     Export only the visible part of the document.
 
 
    In the exported version, the first 3 outline levels will become
    In the exported version, the first 3 outline levels will become
 headlines, defining a general document structure.  Additional levels
 headlines, defining a general document structure.  Additional levels
@@ -2775,7 +2809,10 @@ Currently, this exporter only handles the general outline structure and
 does not interpret any additional Org-mode features.
 does not interpret any additional Org-mode features.
 
 
 `C-c C-x C-x'
 `C-c C-x C-x'
-     Export as XML file `myfile.xml'.
+     Export as XML file `myfile.xml'.  
+
+`C-c C-x v x'
+     Export only the visible part of the document.
 
 
 
 
 File: org,  Node: iCalendar export,  Next: Text interpretation,  Prev: XML export,  Up: Exporting
 File: org,  Node: iCalendar export,  Next: Text interpretation,  Prev: XML export,  Up: Exporting
@@ -3495,6 +3532,9 @@ Org-mode would not be what it is without your input.
    * Pavel Chalmoviansky influenced the agenda treatment of items with
    * Pavel Chalmoviansky influenced the agenda treatment of items with
      specified time.
      specified time.
 
 
+   * Gregory Chenov patched support for lisp forms into table
+     calculations and improved XEmacs compatibility.
+
    * Sacha Chua suggested to copy some linking code from Planner.
    * Sacha Chua suggested to copy some linking code from Planner.
 
 
    * Kees Dullemond inspired the use of narrowed tabled columns.
    * Kees Dullemond inspired the use of narrowed tabled columns.
@@ -3503,7 +3543,7 @@ Org-mode would not be what it is without your input.
      patched CSS formatting into the HTML exporter, and inspired the
      patched CSS formatting into the HTML exporter, and inspired the
      agenda.
      agenda.
 
 
-   * Nic Ferrier contributed mailcap and XML support.
+   * Nic Ferrier contributed mailcap and XOXO support.
 
 
    * Kai Grossjohann pointed out key-binding conflicts caused by
    * Kai Grossjohann pointed out key-binding conflicts caused by
      Org-mode.
      Org-mode.
@@ -3521,6 +3561,8 @@ Org-mode would not be what it is without your input.
 
 
    * Pete Phillips helped the development of the TAGS feature.
    * Pete Phillips helped the development of the TAGS feature.
 
 
+   * T.V. Raman reported bugs and suggested improvements.
+
    * Matthias Rempe (Oelde) provided ideas, Windows support, and quality
    * Matthias Rempe (Oelde) provided ideas, Windows support, and quality
      control.
      control.
 
 
@@ -3538,6 +3580,9 @@ Org-mode would not be what it is without your input.
    * Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
    * Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
      `organizer-mode.el'.
      `organizer-mode.el'.
 
 
+   * David O'Toole wrote `org-publish.el' and came up with lots is ideas
+     for small changes.
+
    * Ju"rgen Vollmer contributed code generating the table of contents
    * Ju"rgen Vollmer contributed code generating the table of contents
      in HTML output.
      in HTML output.
 
 
@@ -3581,7 +3626,7 @@ File: org,  Node: Index,  Next: Key Index,  Prev: Miscellaneous,  Up: Top
 * agenda:                                Weekly/Daily agenda. (line   6)
 * agenda:                                Weekly/Daily agenda. (line   6)
 * agenda commands, custom:               Agenda dispatcher.   (line   6)
 * agenda commands, custom:               Agenda dispatcher.   (line   6)
 * agenda dispatcher:                     Agenda dispatcher.   (line   6)
 * agenda dispatcher:                     Agenda dispatcher.   (line   6)
-* agenda files, removing buffers:        Agenda commands.     (line 189)
+* agenda files, removing buffers:        Agenda commands.     (line 195)
 * agenda views:                          Agenda views.        (line   6)
 * agenda views:                          Agenda views.        (line   6)
 * agenda, for single file:               Timeline.            (line   6)
 * agenda, for single file:               Timeline.            (line   6)
 * allout.el, conflict with:              FAQ.                 (line   6)
 * allout.el, conflict with:              FAQ.                 (line   6)
@@ -3646,7 +3691,7 @@ File: org,  Node: Index,  Next: Key Index,  Prev: Miscellaneous,  Up: Top
 * DEADLINE keyword:                      Time stamps.         (line  43)
 * DEADLINE keyword:                      Time stamps.         (line  43)
 * deadlines:                             Time stamps.         (line   6)
 * deadlines:                             Time stamps.         (line   6)
 * demotion, of subtrees:                 Structure editing.   (line   6)
 * demotion, of subtrees:                 Structure editing.   (line   6)
-* diary entries, creating from agenda:   Agenda commands.     (line 147)
+* diary entries, creating from agenda:   Agenda commands.     (line 153)
 * diary integration:                     Calendar/Diary integration.
 * diary integration:                     Calendar/Diary integration.
                                                               (line   6)
                                                               (line   6)
 * dictionary word completion:            Completion.          (line   6)
 * dictionary word completion:            Completion.          (line   6)
@@ -3693,8 +3738,8 @@ File: org,  Node: Index,  Next: Key Index,  Prev: Miscellaneous,  Up: Top
 * GNUS links:                            External links.      (line   6)
 * GNUS links:                            External links.      (line   6)
 * hand-formatted lists:                  Enhancing text.      (line  11)
 * hand-formatted lists:                  Enhancing text.      (line  11)
 * headline levels:                       Export options.      (line  25)
 * headline levels:                       Export options.      (line  25)
-* headline levels, for exporting <1>:    HTML export.         (line  16)
-* headline levels, for exporting:        ASCII export.        (line  15)
+* headline levels, for exporting <1>:    HTML export.         (line  21)
+* headline levels, for exporting:        ASCII export.        (line  18)
 * headline navigation:                   Motion.              (line   6)
 * headline navigation:                   Motion.              (line   6)
 * headline tagging:                      Tags.                (line   6)
 * headline tagging:                      Tags.                (line   6)
 * headline, promotion and demotion:      Structure editing.   (line   6)
 * headline, promotion and demotion:      Structure editing.   (line   6)
@@ -3726,6 +3771,7 @@ File: org,  Node: Index,  Next: Key Index,  Prev: Miscellaneous,  Up: Top
 * links, external:                       External links.      (line   6)
 * links, external:                       External links.      (line   6)
 * links, internal:                       Internal links.      (line   6)
 * links, internal:                       Internal links.      (line   6)
 * links, returning to:                   Handling links.      (line  81)
 * links, returning to:                   Handling links.      (line  81)
+* Lisp forms, as table fomulas:          Lisp formulas.       (line   6)
 * lists, hand-formatted:                 Enhancing text.      (line  11)
 * lists, hand-formatted:                 Enhancing text.      (line  11)
 * lists, ordered:                        Plain lists.         (line   6)
 * lists, ordered:                        Plain lists.         (line   6)
 * lists, plain:                          Plain lists.         (line   6)
 * lists, plain:                          Plain lists.         (line   6)
@@ -3893,10 +3939,10 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
                                                               (line  57)
                                                               (line  57)
 * <TAB> <3>:                             Plain lists.         (line  38)
 * <TAB> <3>:                             Plain lists.         (line  38)
 * <TAB>:                                 Visibility cycling.  (line  10)
 * <TAB>:                                 Visibility cycling.  (line  10)
-* > <1>:                                 Agenda commands.     (line 142)
+* > <1>:                                 Agenda commands.     (line 148)
 * >:                                     Creating timestamps. (line  76)
 * >:                                     Creating timestamps. (line  76)
-* C:                                     Agenda commands.     (line 172)
-* c:                                     Agenda commands.     (line 156)
+* C:                                     Agenda commands.     (line 178)
+* c:                                     Agenda commands.     (line 162)
 * C-#:                                   Built-in table editor.
 * C-#:                                   Built-in table editor.
                                                               (line 155)
                                                               (line 155)
 * C-,:                                   Agenda files.        (line  18)
 * C-,:                                   Agenda files.        (line  18)
@@ -3958,6 +4004,7 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * C-c C-c <5>:                           Built-in table editor.
 * C-c C-c <5>:                           Built-in table editor.
                                                               (line  54)
                                                               (line  54)
 * C-c C-c:                               Plain lists.         (line  68)
 * C-c C-c:                               Plain lists.         (line  68)
+* C-c C-d <1>:                           Agenda commands.     (line 133)
 * C-c C-d:                               Creating timestamps. (line  37)
 * C-c C-d:                               Creating timestamps. (line  37)
 * C-c C-f:                               Motion.              (line  12)
 * C-c C-f:                               Motion.              (line  12)
 * C-c C-j:                               Motion.              (line  21)
 * C-c C-j:                               Motion.              (line  21)
@@ -3971,6 +4018,7 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * C-c C-q:                               Built-in table editor.
 * C-c C-q:                               Built-in table editor.
                                                               (line 119)
                                                               (line 119)
 * C-c C-r:                               Timeline.            (line  13)
 * C-c C-r:                               Timeline.            (line  13)
+* C-c C-s <1>:                           Agenda commands.     (line 130)
 * C-c C-s:                               Creating timestamps. (line  47)
 * C-c C-s:                               Creating timestamps. (line  47)
 * C-c C-t:                               TODO basics.         (line  13)
 * C-c C-t:                               TODO basics.         (line  13)
 * C-c C-u:                               Motion.              (line  18)
 * C-c C-u:                               Motion.              (line  18)
@@ -3979,7 +4027,7 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * C-c C-x a:                             ASCII export.        (line   9)
 * C-c C-x a:                             ASCII export.        (line   9)
 * C-c C-x b:                             HTML export.         (line  11)
 * C-c C-x b:                             HTML export.         (line  11)
 * C-c C-x c:                             iCalendar export.    (line  20)
 * C-c C-x c:                             iCalendar export.    (line  20)
-* C-c C-x C-c:                           Agenda commands.     (line 179)
+* C-c C-x C-c:                           Agenda commands.     (line 185)
 * C-c C-x C-i:                           iCalendar export.    (line  15)
 * C-c C-x C-i:                           iCalendar export.    (line  15)
 * C-c C-x C-k:                           Structure editing.   (line  36)
 * C-c C-x C-k:                           Structure editing.   (line  36)
 * C-c C-x C-w <1>:                       Built-in table editor.
 * C-c C-x C-w <1>:                       Built-in table editor.
@@ -3995,7 +4043,11 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
                                                               (line 105)
                                                               (line 105)
 * C-c C-x M-w:                           Structure editing.   (line  40)
 * C-c C-x M-w:                           Structure editing.   (line  40)
 * C-c C-x t:                             Export options.      (line  13)
 * C-c C-x t:                             Export options.      (line  13)
+* C-c C-x v <1>:                         XML export.          (line  11)
 * C-c C-x v:                             Sparse trees.        (line  39)
 * C-c C-x v:                             Sparse trees.        (line  39)
+* C-c C-x v a:                           ASCII export.        (line  13)
+* C-c C-x v b:                           HTML export.         (line  14)
+* C-c C-x v h:                           HTML export.         (line  14)
 * C-c C-y:                               Creating timestamps. (line  63)
 * C-c C-y:                               Creating timestamps. (line  63)
 * C-c l:                                 Handling links.      (line   9)
 * C-c l:                                 Handling links.      (line   9)
 * C-c |:                                 Built-in table editor.
 * C-c |:                                 Built-in table editor.
@@ -4009,11 +4061,11 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * d:                                     Agenda commands.     (line  65)
 * d:                                     Agenda commands.     (line  65)
 * f:                                     Agenda commands.     (line  44)
 * f:                                     Agenda commands.     (line  44)
 * g:                                     Agenda commands.     (line  72)
 * g:                                     Agenda commands.     (line  72)
-* H:                                     Agenda commands.     (line 176)
-* i:                                     Agenda commands.     (line 147)
+* H:                                     Agenda commands.     (line 182)
+* i:                                     Agenda commands.     (line 153)
 * l:                                     Agenda commands.     (line  51)
 * l:                                     Agenda commands.     (line  51)
 * L:                                     Agenda commands.     (line  32)
 * L:                                     Agenda commands.     (line  32)
-* M:                                     Agenda commands.     (line 163)
+* M:                                     Agenda commands.     (line 169)
 * M-<down>:                              Built-in table editor.
 * M-<down>:                              Built-in table editor.
                                                               (line  82)
                                                               (line  82)
 * M-<left> <1>:                          Built-in table editor.
 * M-<left> <1>:                          Built-in table editor.
@@ -4059,18 +4111,18 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * o:                                     Agenda commands.     (line  59)
 * o:                                     Agenda commands.     (line  59)
 * P:                                     Agenda commands.     (line 117)
 * P:                                     Agenda commands.     (line 117)
 * p:                                     Agenda commands.     (line  20)
 * p:                                     Agenda commands.     (line  20)
-* q:                                     Agenda commands.     (line 186)
+* q:                                     Agenda commands.     (line 192)
 * r <1>:                                 Agenda commands.     (line  76)
 * r <1>:                                 Agenda commands.     (line  76)
 * r:                                     Global TODO list.    (line  21)
 * r:                                     Global TODO list.    (line  21)
-* S:                                     Agenda commands.     (line 167)
+* S:                                     Agenda commands.     (line 173)
 * S-<down> <1>:                          Agenda commands.     (line 126)
 * S-<down> <1>:                          Agenda commands.     (line 126)
 * S-<down> <2>:                          Creating timestamps. (line  55)
 * S-<down> <2>:                          Creating timestamps. (line  55)
 * S-<down>:                              Priorities.          (line  25)
 * S-<down>:                              Priorities.          (line  25)
-* S-<left> <1>:                          Agenda commands.     (line 138)
+* S-<left> <1>:                          Agenda commands.     (line 144)
 * S-<left>:                              Creating timestamps. (line  50)
 * S-<left>:                              Creating timestamps. (line  50)
 * S-<RET>:                               Built-in table editor.
 * S-<RET>:                               Built-in table editor.
                                                               (line 170)
                                                               (line 170)
-* S-<right> <1>:                         Agenda commands.     (line 130)
+* S-<right> <1>:                         Agenda commands.     (line 136)
 * S-<right>:                             Creating timestamps. (line  50)
 * S-<right>:                             Creating timestamps. (line  50)
 * S-<TAB> <1>:                           Built-in table editor.
 * S-<TAB> <1>:                           Built-in table editor.
                                                               (line  61)
                                                               (line  61)
@@ -4081,106 +4133,107 @@ File: org,  Node: Key Index,  Prev: Index,  Up: Top
 * T:                                     Agenda commands.     (line 104)
 * T:                                     Agenda commands.     (line 104)
 * t:                                     Agenda commands.     (line 100)
 * t:                                     Agenda commands.     (line 100)
 * w:                                     Agenda commands.     (line  62)
 * w:                                     Agenda commands.     (line  62)
-* x:                                     Agenda commands.     (line 189)
+* x:                                     Agenda commands.     (line 195)
 
 
 
 
 
 
 Tag Table:
 Tag Table:
 Node: Top959
 Node: Top959
-Node: Introduction7514
-Node: Summary7828
-Node: Installation and activation9936
-Node: Feedback11605
-Node: Document structure12391
-Node: Outlines13157
-Node: Headlines13817
-Node: Visibility cycling14440
-Node: Motion15636
-Node: Structure editing16420
-Node: Archiving18529
-Node: Sparse trees19389
-Ref: Sparse trees-Footnote-121418
-Ref: Sparse trees-Footnote-221510
-Node: Plain lists21625
-Ref: Plain lists-Footnote-124919
-Node: Tables25276
-Node: Built-in table editor25824
-Node: Narrow columns33437
-Ref: Narrow columns-Footnote-135376
-Node: Table calculations35422
-Node: Formula syntax36598
-Ref: Formula syntax-Footnote-139527
-Node: Column formulas39826
-Node: Advanced features41588
-Node: Named-field formulas44843
-Node: Editing/debugging formulas45483
-Node: Appetizer47241
-Node: orgtbl-mode48343
-Node: table.el48834
-Node: Hyperlinks49811
-Node: Link format50515
-Node: Internal links51812
-Node: Radio targets53762
-Node: CamelCase links54477
-Node: External links54975
-Node: Handling links56900
-Node: Search options61232
-Ref: Search options-Footnote-163008
-Node: Custom searches63089
-Node: Remember64137
-Ref: Remember-Footnote-168004
-Node: TODO items68128
-Node: TODO basics69051
-Node: Progress logging70392
-Node: TODO extensions71178
-Node: Workflow states71978
-Node: TODO types72846
-Ref: TODO types-Footnote-174504
-Node: Per file keywords74586
-Ref: Per file keywords-Footnote-176039
-Node: Priorities76267
-Node: Timestamps77476
-Node: Time stamps77797
-Node: Creating timestamps80225
-Node: Tags83354
-Node: Tag inheritance84089
-Node: Setting tags85026
-Node: Tag searches85988
-Node: Agenda views87197
-Node: Agenda files88736
-Ref: Agenda files-Footnote-189696
-Ref: Agenda files-Footnote-289845
-Node: Agenda dispatcher90037
-Node: Weekly/Daily agenda92167
-Node: Categories93302
-Node: Time-of-day specifications93950
-Node: Calendar/Diary integration95926
-Node: Sorting of agenda items97303
-Node: Global TODO list98135
-Node: Matching headline tags99550
-Node: Timeline100493
-Node: Agenda commands101366
-Node: Exporting106755
-Node: ASCII export107885
-Node: HTML export108707
-Node: XML export110455
-Node: iCalendar export110822
-Node: Text interpretation112644
-Node: Comment lines113121
-Node: Enhancing text113590
-Node: Export options115421
-Node: Miscellaneous117023
-Node: Completion117781
-Node: Customization118777
-Node: Summary of in-buffer settings119384
-Node: The very busy C-c C-c key122145
-Node: Clean view123550
-Node: TTY keys126127
-Node: FAQ127728
-Node: Interaction134630
-Node: Bugs137664
-Node: Acknowledgments139618
-Node: Index142713
-Node: Key Index164083
+Node: Introduction7583
+Node: Summary7897
+Node: Installation and activation10005
+Node: Feedback11674
+Node: Document structure12460
+Node: Outlines13226
+Node: Headlines13886
+Node: Visibility cycling14509
+Node: Motion15705
+Node: Structure editing16489
+Node: Archiving18598
+Node: Sparse trees19458
+Ref: Sparse trees-Footnote-121443
+Ref: Sparse trees-Footnote-221535
+Node: Plain lists21650
+Ref: Plain lists-Footnote-124944
+Node: Tables25301
+Node: Built-in table editor25849
+Node: Narrow columns33462
+Ref: Narrow columns-Footnote-135401
+Node: Table calculations35447
+Node: Formula syntax36767
+Ref: Formula syntax-Footnote-139672
+Node: Lisp formulas39971
+Node: Column formulas40762
+Node: Advanced features42523
+Node: Named-field formulas45778
+Node: Editing/debugging formulas46418
+Node: Appetizer48176
+Node: orgtbl-mode49278
+Node: table.el49769
+Node: Hyperlinks50746
+Node: Link format51450
+Node: Internal links52747
+Node: Radio targets54697
+Node: CamelCase links55412
+Node: External links55910
+Node: Handling links57835
+Node: Search options62167
+Ref: Search options-Footnote-163943
+Node: Custom searches64024
+Node: Remember65072
+Ref: Remember-Footnote-168939
+Node: TODO items69063
+Node: TODO basics69986
+Node: Progress logging71327
+Node: TODO extensions72113
+Node: Workflow states72913
+Node: TODO types73781
+Ref: TODO types-Footnote-175439
+Node: Per file keywords75521
+Ref: Per file keywords-Footnote-176974
+Node: Priorities77202
+Node: Timestamps78411
+Node: Time stamps78732
+Node: Creating timestamps81160
+Node: Tags84289
+Node: Tag inheritance85024
+Node: Setting tags85961
+Node: Tag searches86923
+Node: Agenda views88132
+Node: Agenda files89671
+Ref: Agenda files-Footnote-190631
+Ref: Agenda files-Footnote-290780
+Node: Agenda dispatcher90972
+Node: Weekly/Daily agenda93102
+Node: Categories94237
+Node: Time-of-day specifications94885
+Node: Calendar/Diary integration96861
+Node: Sorting of agenda items98238
+Node: Global TODO list99070
+Node: Matching headline tags100485
+Node: Timeline101428
+Node: Agenda commands102301
+Node: Exporting107771
+Node: ASCII export108901
+Node: HTML export109791
+Node: XML export111622
+Node: iCalendar export112057
+Node: Text interpretation113879
+Node: Comment lines114356
+Node: Enhancing text114825
+Node: Export options116656
+Node: Miscellaneous118258
+Node: Completion119016
+Node: Customization120012
+Node: Summary of in-buffer settings120619
+Node: The very busy C-c C-c key123380
+Node: Clean view124785
+Node: TTY keys127362
+Node: FAQ128963
+Node: Interaction135865
+Node: Bugs138899
+Node: Acknowledgments140853
+Node: Index144222
+Node: Key Index165665
 
 
 End Tag Table
 End Tag Table

+ 201 - 105
org.el

@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
 ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
-;; Version: 4.28
+;; Version: 4.29
 ;;
 ;;
 ;; This file is part of GNU Emacs.
 ;; This file is part of GNU Emacs.
 ;;
 ;;
@@ -81,6 +81,17 @@
 ;;
 ;;
 ;; Changes since version 4.10:
 ;; Changes since version 4.10:
 ;; ---------------------------
 ;; ---------------------------
+;; Version 4.29
+;;    - Inlining images in HTML export now depends on wheather the link
+;;      contains a description or not.
+;;    - TODO items can be scheduled from the global TODO list using C-c C-s.
+;;    - TODO items already scheduled can be made to disappear from the global
+;;      todo list, see `org-agenda-todo-ignore-scheduled'.
+;;    - In Tables, formulas may also be Lisp forms.
+;;    - Exporting the visible part of an outline with `C-c C-x v' works now
+;;      for all available exporters.
+;;    - Bug fixes, lots of them :-(
+;;
 ;; Version 4.28
 ;; Version 4.28
 ;;    - Bug fixes.
 ;;    - Bug fixes.
 ;;
 ;;
@@ -149,7 +160,7 @@
 
 
 ;;; Customization variables
 ;;; Customization variables
 
 
-(defvar org-version "4.28"
+(defvar org-version "4.29"
   "The version number of the file org.el.")
   "The version number of the file org.el.")
 (defun org-version ()
 (defun org-version ()
   (interactive)
   (interactive)
@@ -1282,6 +1293,14 @@ potentially much shorter TODO lists."
   :group 'org-todo
   :group 'org-todo
   :type 'boolean)
   :type 'boolean)
 
 
+(defcustom org-agenda-todo-ignore-scheduled nil
+  "Non-nil means, don't show scheduled entries in the global todo list.
+The idea behind this is that by scheduling it, you have already taken care
+of this item."
+  :group 'org-agenda
+  :group 'org-todo
+  :type 'boolean)
+
 (defcustom org-agenda-include-all-todo nil
 (defcustom org-agenda-include-all-todo nil
   "Non-nil means, the agenda will always contain all TODO entries.
   "Non-nil means, the agenda will always contain all TODO entries.
 When nil, date-less entries will only be shown if `org-agenda' is called
 When nil, date-less entries will only be shown if `org-agenda' is called
@@ -1316,7 +1335,7 @@ Needs to be set before org.el is loaded."
   :group 'org-agenda-setup
   :group 'org-agenda-setup
   :type 'boolean)
   :type 'boolean)
 
 
-(defcustom org-agenda-start-with-follow-mode t
+(defcustom org-agenda-start-with-follow-mode nil
   "The initial value of follwo-mode in a newly created agenda window."
   "The initial value of follwo-mode in a newly created agenda window."
   :group 'org-agenda-setup
   :group 'org-agenda-setup
   :type 'boolean)
   :type 'boolean)
@@ -1848,13 +1867,16 @@ When nil, the links still point to the plain `.org' file."
   :group 'org-export-html
   :group 'org-export-html
   :type 'boolean)
   :type 'boolean)
 
 
-(defcustom org-export-html-inline-images t
+(defcustom org-export-html-inline-images 'maybe
   "Non-nil means, inline images into exported HTML pages.
   "Non-nil means, inline images into exported HTML pages.
-The link will still be to the original location of the image file.
-So if you are moving the page, lets say to your public HTML site,
-you will have to move the image and maybe change the link."
+This is done using an <img> tag.  When nil, an anchor with href is used to
+link to the image.  If this option is `maybe', then images in links with
+an empty description will be inlined, while images with a description will
+be linked only."
   :group 'org-export-html
   :group 'org-export-html
-  :type 'boolean)
+  :type '(choice (const :tag "Never" nil)
+		 (const :tag "Always" t)
+		 (const :tag "When there is no description" maybe)))
 
 
 (defcustom org-export-html-expand t
 (defcustom org-export-html-expand t
   "Non-nil means, for HTML export, treat @<...> as HTML tag.
   "Non-nil means, for HTML export, treat @<...> as HTML tag.
@@ -2434,11 +2456,31 @@ can be exported as a structured ASCII or HTML file.
 The following commands are available:
 The following commands are available:
 
 
 \\{org-mode-map}"
 \\{org-mode-map}"
+
+  ;; Get rid of Outline menus, they are not needed
+  ;; Need to do this here because define-derived-mode sets up
+  ;; the keymap so late.
+  (if (featurep 'xemacs)
+      (if org-noutline-p
+	  (progn
+	    (easy-menu-remove outline-mode-menu-heading)
+	    (easy-menu-remove outline-mode-menu-show)
+	    (easy-menu-remove outline-mode-menu-hide))
+	(delete-menu-item '("Headings"))
+	(delete-menu-item '("Show"))
+	(delete-menu-item '("Hide"))
+	(set-menubar-dirty-flag))
+    (define-key org-mode-map [menu-bar headings] 'undefined)
+    (define-key org-mode-map [menu-bar hide] 'undefined)
+    (define-key org-mode-map [menu-bar show] 'undefined))
+
   (easy-menu-add org-org-menu)
   (easy-menu-add org-org-menu)
   (easy-menu-add org-tbl-menu)
   (easy-menu-add org-tbl-menu)
   (org-install-agenda-files-menu)
   (org-install-agenda-files-menu)
   (if org-descriptive-links (org-add-to-invisibility-spec '(org-link)))
   (if org-descriptive-links (org-add-to-invisibility-spec '(org-link)))
   (org-add-to-invisibility-spec '(org-cwidth))
   (org-add-to-invisibility-spec '(org-cwidth))
+  (when (featurep 'xemacs)
+    (set (make-local-variable 'line-move-ignore-invisible) t))
   (setq outline-regexp "\\*+")
   (setq outline-regexp "\\*+")
   ;;(setq outline-regexp "\\(?:\\*+\\|[ \t]*\\(?:[-+*]\\|[0-9]+[.)]\\) \\)")
   ;;(setq outline-regexp "\\(?:\\*+\\|[ \t]*\\(?:[-+*]\\|[0-9]+[.)]\\) \\)")
   (setq outline-level 'org-outline-level)
   (setq outline-level 'org-outline-level)
@@ -2467,19 +2509,6 @@ The following commands are available:
 	   (= (point-min) (point-max)))
 	   (= (point-min) (point-max)))
       (insert "    -*- mode: org -*-\n\n"))
       (insert "    -*- mode: org -*-\n\n"))
 
 
-  ;; Get rid of Outline menus, they are not needed
-  ;; Need to do this here because define-derived-mode sets up
-  ;; the keymap so late.
-  (if (featurep 'xemacs)
-      (progn
-	(delete-menu-item '("Headings"))
-	(delete-menu-item '("Show"))
-	(delete-menu-item '("Hide"))
-	(set-menubar-dirty-flag))
-    (define-key org-mode-map [menu-bar headings] 'undefined)
-    (define-key org-mode-map [menu-bar hide] 'undefined)
-    (define-key org-mode-map [menu-bar show] 'undefined))
-
   (unless org-inhibit-startup
   (unless org-inhibit-startup
     (if org-startup-align-all-tables
     (if org-startup-align-all-tables
 	(org-table-map-tables 'org-table-align))
 	(org-table-map-tables 'org-table-align))
@@ -3175,8 +3204,14 @@ or nil."
 (defvar org-ignore-region nil
 (defvar org-ignore-region nil
   "To temporarily disable the active region.")
   "To temporarily disable the active region.")
 
 
+;; FIXME: Fix behavior if point is on the stars but not at bol.
 (defun org-insert-heading (&optional force-heading)
 (defun org-insert-heading (&optional force-heading)
-  "Insert a new heading or item with same depth at point."
+  "Insert a new heading or item with same depth at point.
+If point is in a plain list and FORCE-HEADING is nil, create a new list item.
+If point is at the beginning of a headline, insert a sibling before the
+current headline.  If point is in the middle of a headline, split the headline
+at that position and make the rest of the headline part of the sibling below
+the current headline."
   (interactive "P")
   (interactive "P")
   (if (= (buffer-size) 0)
   (if (= (buffer-size) 0)
       (insert "\n* ")
       (insert "\n* ")
@@ -3186,15 +3221,18 @@ or nil."
 			 (org-back-to-heading)
 			 (org-back-to-heading)
 		       (error (outline-next-heading)))
 		       (error (outline-next-heading)))
 		     (prog1 (match-string 0)
 		     (prog1 (match-string 0)
-		       (funcall outline-level)))))
+		       (funcall outline-level))))
+	     pos)
 	(cond 
 	(cond 
 	 ((and (org-on-heading-p) (bolp) 
 	 ((and (org-on-heading-p) (bolp) 
 	       (save-excursion (backward-char 1) (not (org-invisible-p))))
 	       (save-excursion (backward-char 1) (not (org-invisible-p))))
 	  (open-line 1))
 	  (open-line 1))
 	 ((bolp) nil)
 	 ((bolp) nil)
 	 (t (newline)))
 	 (t (newline)))
-	(insert head)
-	(just-one-space)
+	(insert head) (just-one-space)
+	(setq pos (point))
+	(end-of-line 1)
+	(unless (= (point) pos) (just-one-space) (backward-delete-char 1))
 	(run-hooks 'org-insert-heading-hook)))))
 	(run-hooks 'org-insert-heading-hook)))))
 
 
 (defun org-insert-item ()
 (defun org-insert-item ()
@@ -3210,7 +3248,8 @@ Return t when things worked, nil when we are not in an item."
     (let* ((bul (match-string 0))
     (let* ((bul (match-string 0))
 	   (eow (save-excursion (beginning-of-line 1) (looking-at "[ \t]*")
 	   (eow (save-excursion (beginning-of-line 1) (looking-at "[ \t]*")
 				(match-end 0)))
 				(match-end 0)))
-	   (eowcol (save-excursion (goto-char eow) (current-column))))
+	   (eowcol (save-excursion (goto-char eow) (current-column)))
+	   pos)
       (cond
       (cond
        ((and (org-at-item-p) (<= (point) eow))
        ((and (org-at-item-p) (<= (point) eow))
 	;; before the bullet
 	;; before the bullet
@@ -3220,7 +3259,10 @@ Return t when things worked, nil when we are not in an item."
 	(beginning-of-line 1))
 	(beginning-of-line 1))
        (t (newline)))
        (t (newline)))
       (insert bul)
       (insert bul)
-      (just-one-space))
+      (just-one-space)
+      (setq pos (point))
+      (end-of-line 1)
+      (unless (= (point) pos) (just-one-space) (backward-delete-char 1)))
     (org-maybe-renumber-ordered-list)
     (org-maybe-renumber-ordered-list)
     t))
     t))
 
 
@@ -3232,7 +3274,9 @@ state (TODO by default).  Also with prefix arg, force first state."
   (org-insert-heading)
   (org-insert-heading)
   (save-excursion
   (save-excursion
     (org-back-to-heading)
     (org-back-to-heading)
-    (outline-previous-heading)
+    (if org-noutline-p
+	(outline-previous-heading)
+      (outline-previous-visible-heading t))
     (looking-at org-todo-line-regexp))
     (looking-at org-todo-line-regexp))
   (if (or arg
   (if (or arg
 	  (not (match-beginning 2))
 	  (not (match-beginning 2))
@@ -4059,9 +4103,9 @@ prefix arg, switch to that state."
 	    (not (equal state org-done-string)))
 	    (not (equal state org-done-string)))
       (when org-log-done
       (when org-log-done
 	(if (equal state org-done-string)
 	(if (equal state org-done-string)
-	    (org-log-done)
+	    (org-add-planning-info 'closed (current-time) 'scheduled)
 	  (if (not this)
 	  (if (not this)
-	      (org-log-done t))))
+	      (org-add-planning-info nil nil 'closed))))
       ;; Fixup tag positioning
       ;; Fixup tag positioning
       (and org-auto-align-tags (org-set-tags nil t))
       (and org-auto-align-tags (org-set-tags nil t))
       (run-hooks 'org-after-todo-state-change-hook)))
       (run-hooks 'org-after-todo-state-change-hook)))
@@ -4131,24 +4175,14 @@ of `org-todo-keywords'."
 A timestamp is also inserted - use \\[org-timestamp-up] and \\[org-timestamp-down]
 A timestamp is also inserted - use \\[org-timestamp-up] and \\[org-timestamp-down]
 to modify it to the correct date."
 to modify it to the correct date."
   (interactive)
   (interactive)
-  (insert
-   org-deadline-string " "
-   (format-time-string (car org-time-stamp-formats)
-		       (org-read-date nil 'to-time)))
-  (message "%s" (substitute-command-keys
-		 "Use \\[org-timestamp-up-day] and \\[org-timestamp-down-day] to change the date.")))
+  (org-add-planning-info 'deadline nil nil)) ;; FIXME: remove closed?
 
 
 (defun org-schedule ()
 (defun org-schedule ()
   "Insert the SCHEDULED: string to schedule a TODO item.
   "Insert the SCHEDULED: string to schedule a TODO item.
 A timestamp is also inserted - use \\[org-timestamp-up] and \\[org-timestamp-down]
 A timestamp is also inserted - use \\[org-timestamp-up] and \\[org-timestamp-down]
 to modify it to the correct date."
 to modify it to the correct date."
   (interactive)
   (interactive)
-  (insert
-   org-scheduled-string " "
-   (format-time-string (car org-time-stamp-formats)
-		       (org-read-date nil 'to-time)))
-  (message "%s" (substitute-command-keys
-		 "Use \\[org-timestamp-up-day] and \\[org-timestamp-down-day] to change the date.")))
+  (org-add-planning-info 'scheduled nil 'closed))
 
 
 (defun org-add-planning-info (what &optional time &rest remove)
 (defun org-add-planning-info (what &optional time &rest remove)
   "Insert new timestamp with keyword in the line directly after the headline.
   "Insert new timestamp with keyword in the line directly after the headline.
@@ -4158,8 +4192,7 @@ REMOVE indicates what kind of entries to remove.  An old WHAT entry will also
 be removed."
 be removed."
   (interactive)
   (interactive)
   (save-excursion
   (save-excursion
-    (let (beg end col list elt)
-      (org-show-entry)   ; Avoid this.
+    (let (beg end col list elt (buffer-invisibility-spec nil) ts)
       (org-back-to-heading t)
       (org-back-to-heading t)
       (setq beg (point))
       (setq beg (point))
       (looking-at (concat outline-regexp "\\( *\\)[^\r\n]*"))
       (looking-at (concat outline-regexp "\\( *\\)[^\r\n]*"))
@@ -4196,15 +4229,17 @@ be removed."
 	       ((eq what 'closed) org-closed-string))
 	       ((eq what 'closed) org-closed-string))
 	 " ")
 	 " ")
 	(insert
 	(insert
-	 (format-time-string 
-	  (if (eq what 'closed)
-	      (concat "[" (substring (cdr org-time-stamp-formats) 1 -1) "]")
-	    (car org-time-stamp-formats))
-	  (or time (org-read-date nil 'to-time)))))
+	 (setq ts
+	       (format-time-string 
+		(if (eq what 'closed)
+		    (concat "[" (substring (cdr org-time-stamp-formats) 1 -1) "]")
+		  (car org-time-stamp-formats))
+		(or time (org-read-date nil 'to-time))))))
       (goto-char (point-min))
       (goto-char (point-min))
       (widen)
       (widen)
       (if (looking-at "[ \t]+\r?\n")
       (if (looking-at "[ \t]+\r?\n")
-	  (replace-match "")))))
+	  (replace-match ""))
+      ts)))
 
 
 (defun org-occur (regexp &optional callback)
 (defun org-occur (regexp &optional callback)
   "Make a compact tree which shows all matches of REGEXP.
   "Make a compact tree which shows all matches of REGEXP.
@@ -4468,6 +4503,7 @@ used to insert the time stamp into the buffer to include the time."
 	     ct))
 	     ct))
 	 (calendar-move-hook nil)
 	 (calendar-move-hook nil)
 	 (view-diary-entries-initially nil)
 	 (view-diary-entries-initially nil)
+	 (view-calendar-holidays-initially nil)
 	 (timestr (format-time-string
 	 (timestr (format-time-string
 		   (if with-time "%Y-%m-%d %H:%M" "%Y-%m-%d") default-time))
 		   (if with-time "%Y-%m-%d %H:%M" "%Y-%m-%d") default-time))
 	 (prompt (format "YYYY-MM-DD [%s]: " timestr))
 	 (prompt (format "YYYY-MM-DD [%s]: " timestr))
@@ -4843,6 +4879,7 @@ A prefix ARG can be used to force the current date."
   (interactive "P")
   (interactive "P")
   (let ((tsr org-ts-regexp) diff
   (let ((tsr org-ts-regexp) diff
 	(calendar-move-hook nil)
 	(calendar-move-hook nil)
+	(view-calendar-holidays-initially nil)
 	(view-diary-entries-initially nil))
 	(view-diary-entries-initially nil))
     (if (or (org-at-timestamp-p)
     (if (or (org-at-timestamp-p)
 	    (save-excursion
 	    (save-excursion
@@ -4932,6 +4969,8 @@ The following commands are available:
 (define-key org-agenda-mode-map [?\C-c ?\C-x (left)] 'org-agenda-date-earlier)
 (define-key org-agenda-mode-map [?\C-c ?\C-x (left)] 'org-agenda-date-earlier)
 
 
 (define-key org-agenda-mode-map ">" 'org-agenda-date-prompt)
 (define-key org-agenda-mode-map ">" 'org-agenda-date-prompt)
+(define-key org-agenda-mode-map "\C-c\C-s" 'org-agenda-schedule)
+(define-key org-agenda-mode-map "\C-c\C-d" 'org-agenda-deadline)
 (let ((l '(1 2 3 4 5 6 7 8 9 0)))
 (let ((l '(1 2 3 4 5 6 7 8 9 0)))
   (while l (define-key org-agenda-mode-map
   (while l (define-key org-agenda-mode-map
 	     (int-to-string (pop l)) 'digit-argument)))
 	     (int-to-string (pop l)) 'digit-argument)))
@@ -4995,10 +5034,12 @@ The following commands are available:
     ("Tags"
     ("Tags"
      ["Show all Tags" org-agenda-show-tags t]
      ["Show all Tags" org-agenda-show-tags t]
      ["Set Tags" org-agenda-set-tags t])
      ["Set Tags" org-agenda-set-tags t])
-    ("Reschedule"
+    ("Schedule"
+     ["Schedule" org-agenda-schedule t]
+     ["Set Deadline" org-agenda-deadline t]
+     "--"
      ["Reschedule +1 day" org-agenda-date-later (org-agenda-check-type nil 'agenda 'timeline)]
      ["Reschedule +1 day" org-agenda-date-later (org-agenda-check-type nil 'agenda 'timeline)]
      ["Reschedule -1 day" org-agenda-date-earlier (org-agenda-check-type nil 'agenda 'timeline)]
      ["Reschedule -1 day" org-agenda-date-earlier (org-agenda-check-type nil 'agenda 'timeline)]
-     "--"
      ["Reschedule to ..." org-agenda-date-prompt (org-agenda-check-type nil 'agenda 'timeline)])
      ["Reschedule to ..." org-agenda-date-prompt (org-agenda-check-type nil 'agenda 'timeline)])
     ("Priority"
     ("Priority"
      ["Set Priority" org-agenda-priority t]
      ["Set Priority" org-agenda-priority t]
@@ -6096,10 +6137,13 @@ the documentation of `org-diary'."
 				     "\\)\\>")
 				     "\\)\\>")
 			   org-not-done-regexp)
 			   org-not-done-regexp)
 			 "[^\n\r]*\\)"))
 			 "[^\n\r]*\\)"))
+	 (sched-re (concat ".*\n.*?" org-scheduled-time-regexp))
 	 marker priority category tags
 	 marker priority category tags
 	 ee txt)
 	 ee txt)
     (goto-char (point-min))
     (goto-char (point-min))
     (while (re-search-forward regexp nil t)
     (while (re-search-forward regexp nil t)
+      (when (not (and org-agenda-todo-ignore-scheduled
+		      (save-match-data (looking-at sched-re))))
       (goto-char (match-beginning 1))
       (goto-char (match-beginning 1))
       (setq marker (org-agenda-new-marker (1+ (match-beginning 0)))
       (setq marker (org-agenda-new-marker (1+ (match-beginning 0)))
 	    category (org-get-category)
 	    category (org-get-category)
@@ -6116,9 +6160,9 @@ the documentation of `org-diary'."
 	'org-marker marker 'org-hd-marker marker
 	'org-marker marker 'org-hd-marker marker
 	'priority priority 'category category)
 	'priority priority 'category category)
       (push txt ee)
       (push txt ee)
-      (if org-agenda-todo-list-sublevels
+      (if org-agenda-todo-list-sublevels  ; FIXME???? Change needed?
 	  (goto-char (match-end 1))
 	  (goto-char (match-end 1))
-	(org-end-of-subtree 'invisible)))
+	(org-end-of-subtree 'invisible))))
     (nreverse ee)))
     (nreverse ee)))
 
 
 (defconst org-agenda-no-heading-message
 (defconst org-agenda-no-heading-message
@@ -6929,6 +6973,38 @@ be used to request time specification in the time stamp."
       (org-time-stamp arg)
       (org-time-stamp arg)
       (message "Time stamp changed to %s" org-last-changed-timestamp))))
       (message "Time stamp changed to %s" org-last-changed-timestamp))))
 
 
+(defun org-agenda-schedule (arg)
+  "Schedule the item at point."
+  (interactive "P")
+  (org-agenda-check-type t 'agenda 'timeline 'todo 'tags)
+  (org-agenda-check-no-diary)
+  (let* ((marker (or (get-text-property (point) 'org-marker)
+		     (org-agenda-error)))
+	 (buffer (marker-buffer marker))
+	 (pos (marker-position marker))
+	 ts)
+    (with-current-buffer buffer
+      (widen)
+      (goto-char pos)
+      (setq ts (org-schedule))
+      (message "Item scheduled for %s" ts))))
+
+(defun org-agenda-deadline (arg)
+  "Schedule the item at point."
+  (interactive "P")
+  (org-agenda-check-type t 'agenda 'timeline 'todo 'tags)
+  (org-agenda-check-no-diary)
+  (let* ((marker (or (get-text-property (point) 'org-marker)
+		     (org-agenda-error)))
+	 (buffer (marker-buffer marker))
+	 (pos (marker-position marker))
+	 ts)
+    (with-current-buffer buffer
+      (widen)
+      (goto-char pos)
+      (setq ts (org-deadline))
+      (message "Deadline for this item set to %s" ts))))
+
 (defun org-get-heading ()
 (defun org-get-heading ()
   "Return the heading of the current entry, without the stars."
   "Return the heading of the current entry, without the stars."
   (save-excursion
   (save-excursion
@@ -7033,6 +7109,7 @@ argument, latitude and longitude will be prompted for."
 		  (error "Don't know which date to open in calendar")))
 		  (error "Don't know which date to open in calendar")))
 	 (date (calendar-gregorian-from-absolute day))
 	 (date (calendar-gregorian-from-absolute day))
 	 (calendar-move-hook nil)
 	 (calendar-move-hook nil)
+	 (view-calendar-holidays-initially nil)
 	 (view-diary-entries-initially nil))
 	 (view-diary-entries-initially nil))
     (calendar)
     (calendar)
     (calendar-goto-date date)))
     (calendar-goto-date date)))
@@ -8572,6 +8649,7 @@ RET on headline   -> Store as sublevel entry to current headline
 This function should be placed into `remember-mode-hook' and in fact requires
 This function should be placed into `remember-mode-hook' and in fact requires
 to be run from that hook to fucntion properly."
 to be run from that hook to fucntion properly."
   (if org-remember-templates
   (if org-remember-templates
+
       (let* ((entry (if (= (length org-remember-templates) 1)
       (let* ((entry (if (= (length org-remember-templates) 1)
 			(cdar org-remember-templates)
 			(cdar org-remember-templates)
 		      (message "Select template: %s"
 		      (message "Select template: %s"
@@ -8579,8 +8657,8 @@ to be run from that hook to fucntion properly."
 				(lambda (x) (char-to-string (car x)))
 				(lambda (x) (char-to-string (car x)))
 				org-remember-templates " "))
 				org-remember-templates " "))
 		      (cdr (assoc (read-char-exclusive) org-remember-templates))))
 		      (cdr (assoc (read-char-exclusive) org-remember-templates))))
-	     (tpl (if (consp (cdr entry)) (cadr entry) (cdr entry)))
-	     (file (if (consp (cdr entry)) (nth 2 entry)))
+	     (tpl (car entry))
+	     (file (if (consp (cdr entry)) (nth 1 entry)))
 	     (v-t (format-time-string (car org-time-stamp-formats) (org-current-time)))
 	     (v-t (format-time-string (car org-time-stamp-formats) (org-current-time)))
 	     (v-T (format-time-string (cdr org-time-stamp-formats) (org-current-time)))
 	     (v-T (format-time-string (cdr org-time-stamp-formats) (org-current-time)))
 	     (v-u (concat "[" (substring v-t 1 -1) "]"))
 	     (v-u (concat "[" (substring v-t 1 -1) "]"))
@@ -10464,7 +10542,7 @@ not overwrite the stored one."
 		    (org-table-get-formula equation (equal arg '(4)))))
 		    (org-table-get-formula equation (equal arg '(4)))))
 	 (n0 (org-table-current-column))
 	 (n0 (org-table-current-column))
 	 (modes (copy-sequence org-calc-default-modes))
 	 (modes (copy-sequence org-calc-default-modes))
-	 n form fmt x ev orig c)
+	 n form fmt x ev orig c lispp)
     ;; Parse the format string.  Since we have a lot of modes, this is
     ;; Parse the format string.  Since we have a lot of modes, this is
     ;; a lot of work.  However, I think calc still uses most of the time.
     ;; a lot of work.  However, I think calc still uses most of the time.
     (if (string-match ";" formula)
     (if (string-match ";" formula)
@@ -10499,7 +10577,8 @@ not overwrite the stored one."
 			(lambda (x) (number-to-string (string-to-number x)))
 			(lambda (x) (number-to-string (string-to-number x)))
 			fields)))
 			fields)))
       (setq ndown (1- ndown))
       (setq ndown (1- ndown))
-      (setq form (copy-sequence formula))
+      (setq form (copy-sequence formula)
+	    lispp (equal (substring form 0 2) "'("))
       ;; Insert the references to fields in same row
       ;; Insert the references to fields in same row
       (while (string-match "\\$\\([0-9]+\\)?" form)
       (while (string-match "\\$\\([0-9]+\\)?" form)
 	(setq n (if (match-beginning 1)
 	(setq n (if (match-beginning 1)
@@ -10509,7 +10588,9 @@ not overwrite the stored one."
 	(unless x (error "Invalid field specifier \"%s\""
 	(unless x (error "Invalid field specifier \"%s\""
 			 (match-string 0 form)))
 			 (match-string 0 form)))
 	(if (equal x "") (setq x "0"))
 	(if (equal x "") (setq x "0"))
-	(setq form (replace-match (concat "(" x ")") t t form)))
+	(setq form (replace-match
+		    (if lispp x (concat "(" x ")"))
+		    t t form)))
       ;; Insert ranges in current column
       ;; Insert ranges in current column
       (while (string-match "\\&[-I0-9]+" form)
       (while (string-match "\\&[-I0-9]+" form)
 	(setq form (replace-match
 	(setq form (replace-match
@@ -10517,8 +10598,14 @@ not overwrite the stored one."
 		       (org-table-get-vertical-vector (match-string 0 form)
 		       (org-table-get-vertical-vector (match-string 0 form)
 						      nil n0))
 						      nil n0))
 		     t t form)))
 		     t t form)))
-      (setq ev (calc-eval (cons form modes)
-			  (if org-table-formula-numbers-only 'num)))
+;;      (setq ev (calc-eval (cons form modes)
+;; FIXME  (if org-table-formula-numbers-only 'num)))
+
+      (if lispp
+	  (setq ev (eval (eval (read form)))
+		ev (if (numberp ev) (number-to-string ev) ev))
+	(setq ev (calc-eval (cons form modes)
+			    (if org-table-formula-numbers-only 'num))))
 
 
       (when org-table-formula-debug
       (when org-table-formula-debug
 	(with-output-to-temp-buffer "*Help*"
 	(with-output-to-temp-buffer "*Help*"
@@ -11795,43 +11882,44 @@ underlined headlines.  The default is 3."
 	  (setq title (concat (org-section-number level) " " title)))
 	  (setq title (concat (org-section-number level) " " title)))
       (insert title "\n" (make-string (string-width title) char) "\n"))))
       (insert title "\n" (make-string (string-width title) char) "\n"))))
 
 
-(defun org-export-copy-visible ()
-  "Copy the visible part of the buffer to another buffer, for printing.
-Also removes the first line of the buffer if it specifies a mode,
-and all options lines."
-  (interactive)
-  (let* ((opt-plist (org-combine-plists (org-default-export-plist)
-					(org-infile-export-plist)))
-	 (filename (concat (file-name-as-directory 
-			    (plist-get opt-plist :publishing-directory))
-			   (file-name-sans-extension 
-			    (file-name-nondirectory buffer-file-name))
-			   ".txt"))
-	 (buffer (find-file-noselect filename))
-	 (ore (concat
-	       (org-make-options-regexp
-		'("CATEGORY" "SEQ_TODO" "PRI_TODO" "TYP_TODO"
-		  "STARTUP" "ARCHIVE"
-		  "TITLE" "AUTHOR" "EMAIL" "TEXT" "OPTIONS" "LANGUAGE"))
-	       (if org-noutline-p "\\(\n\\|$\\)" "")))
+(defun org-export-visible (type arg)
+  "Create a copy of the visible part of the current buffer, and export it.
+The copy is created in a temporary buffer and removed after use.
+TYPE is the final key (as a string) of the `C-c C-x' key sequence that will
+run the export command - in interactive use, the command prompts for this
+key.  As a special case, if the you type SPC at the prompt, the temporary
+org-mode file will not be removed but presented to you so that you can
+continue to use it.  The prefix arg ARG is passed through to the exporting
+command."
+  (interactive 
+   (list (progn
+	   (message "Export visible: [a]SCII  [h]tml  [b]rowse HTML  [x]OXO  [ ]keep buffer")
+	   (char-to-string (read-char-exclusive)))
+	 current-prefix-arg))
+  (if (not (member type '("a" "\C-a" "b" "\C-b" "h" "x" " ")))
+      (error "Invalid export key"))
+  (let* ((binding (key-binding (concat "\C-c\C-x" type)))
+	 (keepp (equal type " "))
+	 (file buffer-file-name)
+	 (buffer (get-buffer-create "*Org Export Visible*"))
 	 s e)
 	 s e)
-    (with-current-buffer buffer
-      (erase-buffer)
-      (text-mode))
+    (with-current-buffer buffer (erase-buffer))
     (save-excursion
     (save-excursion
       (setq s (goto-char (point-min)))
       (setq s (goto-char (point-min)))
       (while (not (= (point) (point-max)))
       (while (not (= (point) (point-max)))
 	(goto-char (org-find-invisible))
 	(goto-char (org-find-invisible))
 	(append-to-buffer buffer s (point))
 	(append-to-buffer buffer s (point))
-	(setq s (goto-char (org-find-visible)))))
-    (switch-to-buffer-other-window buffer)
-    (newline)
-    (goto-char (point-min))
-    (if (looking-at ".*-\\*- mode:.*\n")
-	(replace-match ""))
-    (while (re-search-forward ore nil t)
-      (replace-match ""))
-    (goto-char (point-min))))
+	(setq s (goto-char (org-find-visible))))
+      (set-buffer buffer)
+      (let ((buffer-file-name file)
+	    (org-inhibit-startup t))
+	(org-mode)
+	(show-all)
+	(unless keepp (funcall binding arg))))
+    (if (not keepp)
+	(kill-buffer buffer)
+      (switch-to-buffer-other-window buffer)
+      (goto-char (point-min)))))
 
 
 (defun org-find-visible ()
 (defun org-find-visible ()
   (if (featurep 'noutline)
   (if (featurep 'noutline)
@@ -12034,7 +12122,7 @@ org-mode's default settings, but still inferior to file-local settings."
 	 table-open type
 	 table-open type
 	 table-buffer table-orig-buffer
 	 table-buffer table-orig-buffer
 	 ind start-is-num starter
 	 ind start-is-num starter
-	 rpl path desc desc1 desc2 link
+	 rpl path desc descp desc1 desc2 link
 	 )
 	 )
     (message "Exporting...")
     (message "Exporting...")
 
 
@@ -12225,7 +12313,9 @@ org-mode's default settings, but still inferior to file-local settings."
 	    (setq path (match-string 3 line))
 	    (setq path (match-string 3 line))
 	    (setq desc1 (if (match-end 5) (match-string 5 line))
 	    (setq desc1 (if (match-end 5) (match-string 5 line))
 		  desc2 (if (match-end 2) (concat type ":" path) path)
 		  desc2 (if (match-end 2) (concat type ":" path) path)
+		  descp (and desc1 (not (equal desc1 desc2)))
 		  desc (or desc1 desc2))
 		  desc (or desc1 desc2))
+	    ;; FIXME: do we need to unescape here somewhere?
 	    (cond
 	    (cond
 	     ((equal type "internal")
 	     ((equal type "internal")
 	      (setq rpl
 	      (setq rpl
@@ -12266,8 +12356,10 @@ org-mode's default settings, but still inferior to file-local settings."
 		      (setq desc (replace-match "" t t desc))
 		      (setq desc (replace-match "" t t desc))
 		      (if (string-match "\\.org$" desc)
 		      (if (string-match "\\.org$" desc)
 			  (setq desc (replace-match "" t t desc))))))
 			  (setq desc (replace-match "" t t desc))))))
-		(setq rpl (if (and org-export-html-inline-images
-				   file-is-image-p)
+		(setq rpl (if (and file-is-image-p
+				   (or (eq t org-export-html-inline-images)
+				       (and org-export-html-inline-images
+					    (not descp))))
 			      (concat "<img src=\"" thefile "\"/>")
 			      (concat "<img src=\"" thefile "\"/>")
 			    (concat "<a href=\"" thefile "\">" desc "</a>")))))
 			    (concat "<a href=\"" thefile "\">" desc "</a>")))))
 	     ((member type '("bbdb" "vm" "wl" "mhe" "rmail" "gnus" "shell"))
 	     ((member type '("bbdb" "vm" "wl" "mhe" "rmail" "gnus" "shell"))
@@ -12741,9 +12833,9 @@ file, but with extension `.ics'."
   (interactive)
   (interactive)
   (org-export-icalendar nil buffer-file-name))
   (org-export-icalendar nil buffer-file-name))
 
 
-(defun org-export-as-xml ()
+(defun org-export-as-xml (arg)
   "Export current buffer as XOXO XML buffer."
   "Export current buffer as XOXO XML buffer."
-  (interactive)
+  (interactive "P")
   (cond ((eq org-export-xml-type 'xoxo)
   (cond ((eq org-export-xml-type 'xoxo)
 	 (org-export-as-xoxo (current-buffer)))))
 	 (org-export-as-xoxo (current-buffer)))))
 
 
@@ -13093,8 +13185,8 @@ a time), or the day by one (if it does not contain a time)."
 (define-key org-mode-map "\C-c\C-q"       'org-table-wrap-region)
 (define-key org-mode-map "\C-c\C-q"       'org-table-wrap-region)
 (define-key org-mode-map "\C-c\C-xa"      'org-export-as-ascii)
 (define-key org-mode-map "\C-c\C-xa"      'org-export-as-ascii)
 (define-key org-mode-map "\C-c\C-x\C-a"   'org-export-as-ascii)
 (define-key org-mode-map "\C-c\C-x\C-a"   'org-export-as-ascii)
-(define-key org-mode-map "\C-c\C-xv"      'org-export-copy-visible)
-(define-key org-mode-map "\C-c\C-x\C-v"   'org-export-copy-visible)
+(define-key org-mode-map "\C-c\C-xv"      'org-export-visible)
+(define-key org-mode-map "\C-c\C-x\C-v"   'org-export-visible)
 ;; OPML support is only an option for the future
 ;; OPML support is only an option for the future
 ;(define-key org-mode-map "\C-c\C-xo"      'org-export-as-opml)
 ;(define-key org-mode-map "\C-c\C-xo"      'org-export-as-opml)
 ;(define-key org-mode-map "\C-c\C-x\C-o"   'org-export-as-opml)
 ;(define-key org-mode-map "\C-c\C-x\C-o"   'org-export-as-opml)
@@ -13115,6 +13207,9 @@ a time), or the day by one (if it does not contain a time)."
 (define-key org-mode-map "\C-c\C-x\M-w"   'org-copy-special)
 (define-key org-mode-map "\C-c\C-x\M-w"   'org-copy-special)
 (define-key org-mode-map "\C-c\C-x\C-y"   'org-paste-special)
 (define-key org-mode-map "\C-c\C-x\C-y"   'org-paste-special)
 
 
+(when (featurep 'xemacs) 
+  (define-key org-mode-map 'button3   'popup-mode-menu))
+
 (defsubst org-table-p () (org-at-table-p))
 (defsubst org-table-p () (org-at-table-p))
 
 
 (defun org-self-insert-command (N)
 (defun org-self-insert-command (N)
@@ -13613,7 +13708,7 @@ See the individual commands for more information."
     "--"
     "--"
     ("Export"
     ("Export"
      ["ASCII" org-export-as-ascii t]
      ["ASCII" org-export-as-ascii t]
-     ["Extract Visible Text" org-export-copy-visible t]
+     ["Export visible part..." org-export-visible t]
      ["HTML"  org-export-as-html t]
      ["HTML"  org-export-as-html t]
      ["HTML and Open" org-export-as-html-and-open t]
      ["HTML and Open" org-export-as-html-and-open t]
      ["XML (XOXO)" org-export-as-xml t]
      ["XML (XOXO)" org-export-as-xml t]
@@ -13843,7 +13938,7 @@ that can be added."
 ;; The following functions capture almost the entire compatibility code
 ;; The following functions capture almost the entire compatibility code
 ;; between the different versions of outline-mode.  The only other
 ;; between the different versions of outline-mode.  The only other
 ;; places where this is important are the font-lock-keywords, and in
 ;; places where this is important are the font-lock-keywords, and in
-;; `org-export-copy-visible'.  Search for `org-noutline-p' to find them.
+;; `org-export-visible'.  Search for `org-noutline-p' to find them.
 
 
 ;; C-a should go to the beginning of a *visible* line, also in the
 ;; C-a should go to the beginning of a *visible* line, also in the
 ;; new outline.el.  I guess this should be patched into Emacs?
 ;; new outline.el.  I guess this should be patched into Emacs?
@@ -13895,15 +13990,15 @@ to a visible line beginning.  This makes the function of C-a more intuitive."
 Only visible heading lines are considered, unless INVISIBLE-OK is non-nil."
 Only visible heading lines are considered, unless INVISIBLE-OK is non-nil."
   (if org-noutline-p
   (if org-noutline-p
       (outline-back-to-heading invisible-ok)
       (outline-back-to-heading invisible-ok)
-    (if (and (memq (char-before) '(?\n ?\r))
+    (if (and (or (bobp) (memq (char-before) '(?\n ?\r)))
              (looking-at outline-regexp))
              (looking-at outline-regexp))
 	t
 	t
       (if (re-search-backward (concat (if invisible-ok "\\([\r\n]\\|^\\)" "^")
       (if (re-search-backward (concat (if invisible-ok "\\([\r\n]\\|^\\)" "^")
 				      outline-regexp)
 				      outline-regexp)
 			      nil t)
 			      nil t)
 	  (if invisible-ok
 	  (if invisible-ok
-	      (progn (goto-char (match-end 1))
-		     (looking-at outline-regexp)))
+	      (progn (goto-char (or (match-end 1) (match-beginning 0)))
+                     (looking-at outline-regexp)))
 	(error "Before first heading")))))
 	(error "Before first heading")))))
 
 
 (defun org-on-heading-p (&optional invisible-ok)
 (defun org-on-heading-p (&optional invisible-ok)
@@ -14022,7 +14117,7 @@ Show the heading too, if it is currently invisible."
   (save-excursion
   (save-excursion
     (org-back-to-heading t)
     (org-back-to-heading t)
     (outline-flag-region
     (outline-flag-region
-     (1- (point))
+     (max 1 (1- (point)))
      (save-excursion
      (save-excursion
        (re-search-forward (concat "[\r\n]\\(" outline-regexp "\\)") nil 'move)
        (re-search-forward (concat "[\r\n]\\(" outline-regexp "\\)") nil 'move)
        (or (match-beginning 1) (point-max)))
        (or (match-beginning 1) (point-max)))
@@ -14061,6 +14156,7 @@ Show the heading too, if it is currently invisible."
 
 
 (run-hooks 'org-load-hook)
 (run-hooks 'org-load-hook)
 
 
+
 ;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
 ;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
 ;;; org.el ends here
 ;;; org.el ends here
 
 


+ 75 - 29
org.texi

@@ -4,8 +4,8 @@
 @c @setfilename ../info/org
 @c @setfilename ../info/org
 @settitle Org Mode Manual
 @settitle Org Mode Manual
 
 
-@set VERSION 4.28
-@set DATE April 2006
+@set VERSION 4.29
+@set DATE May 2006
 
 
 @dircategory Emacs
 @dircategory Emacs
 @direntry
 @direntry
@@ -119,6 +119,7 @@ Tables
 Calculations in tables
 Calculations in tables
 
 
 * Formula syntax::              How to write a formula
 * Formula syntax::              How to write a formula
+* Lisp formulas::               An alternative way to write formulas
 * Column formulas::             Formulas valid for all fields in a column
 * Column formulas::             Formulas valid for all fields in a column
 * Advanced features::           Field names, parameters and automatic recalc
 * Advanced features::           Field names, parameters and automatic recalc
 * Named-field formulas::        Formulas valid in single fields
 * Named-field formulas::        Formulas valid in single fields
@@ -644,9 +645,8 @@ To print a sparse tree, you can use the Emacs command
 @code{ps-print-buffer-with-faces} which does not print invisible parts
 @code{ps-print-buffer-with-faces} which does not print invisible parts
 of the document @footnote{This does not work under XEmacs, because
 of the document @footnote{This does not work under XEmacs, because
 XEmacs uses selective display for outlining, not text properties.}.
 XEmacs uses selective display for outlining, not text properties.}.
-Or you can use the command @kbd{C-c C-x v} to copy the visible part of
-the document to another file (extension @file{.txt}) which can then be
-printed in any desired way.
+Or you can use the command @kbd{C-c C-x v} to export only the visible
+part of the document and print the resulting file.
 
 
 
 
 @node Plain lists,  , Sparse trees, Document structure
 @node Plain lists,  , Sparse trees, Document structure
@@ -1044,19 +1044,20 @@ on a per-file basis with:
 @cindex spreadsheet capabilities
 @cindex spreadsheet capabilities
 @cindex @file{calc} package
 @cindex @file{calc} package
 
 
-The table editor makes use of the Emacs @file{calc} package to
-implement spreadsheet-like capabilities.  Org-mode has two levels of
-complexity for table calculations.  On the basic level, tables do only
-horizontal computations, so a field can be computed from other fields
-@emph{in the same row}, and Org-mode assumes that there is only one
-formula for each column.  This is very efficient to work with and
-enough for many tasks.  On the complex level, columns and individual
-fields can be named for easier referencing in formulas, individual
-named fields can have their own formula associated with them, and
-recalculation can be automated.
+The table editor makes use of the Emacs @file{calc} package to implement
+spreadsheet-like capabilities.  It can also evaluate Emacs Lisp forms to
+derive fields from other fields.  Org-mode has two levels of complexity
+for table calculations.  On the basic level, tables do only horizontal
+computations, so a field can be computed from other fields @emph{in the
+same row}, and Org-mode assumes that there is only one formula for each
+column.  This is very efficient to work with and enough for many tasks.
+On the complex level, columns and individual fields can be named for
+easier referencing in formulas, individual named fields can have their
+own formula associated with them, and recalculation can be automated.
 
 
 @menu
 @menu
 * Formula syntax::              How to write a formula
 * Formula syntax::              How to write a formula
+* Lisp formulas::               An alternative way to write formulas
 * Column formulas::             Formulas valid for all fields in a column
 * Column formulas::             Formulas valid for all fields in a column
 * Advanced features::           Field names, parameters and automatic recalc
 * Advanced features::           Field names, parameters and automatic recalc
 * Named-field formulas::        Formulas valid in single fields
 * Named-field formulas::        Formulas valid in single fields
@@ -1064,7 +1065,7 @@ recalculation can be automated.
 * Appetizer::                   Taste the power of calc
 * Appetizer::                   Taste the power of calc
 @end menu
 @end menu
 
 
-@node Formula syntax, Column formulas, Table calculations, Table calculations
+@node Formula syntax, Lisp formulas, Table calculations, Table calculations
 @subsection Formula syntax
 @subsection Formula syntax
 @cindex formula syntax
 @cindex formula syntax
 @cindex syntax, of formulas
 @cindex syntax, of formulas
@@ -1121,20 +1122,38 @@ respectively.  In addition, you may provide a @code{printf} format
 specifier to reformat the final result.  A few examples:
 specifier to reformat the final result.  A few examples:
 
 
 @example
 @example
-  $1+$2                @r{Sum of first and second field}
-  $1+$2;%.2f           @r{Same, format result to two decimals}
-  exp($2)+exp($1)      @r{Math functions can be used}
-  $;%.1f               @r{Reformat current cell to 1 decimal}
-  ($3-32)*5/9          @r{Degrees F -> C conversion}
-  $c/$1/$cm            @r{Hz -> cm conversion, using @file{constants.el}}
-  tan($1);Dp3s1        @r{Compute in degrees, precision 3, display SCI 1}
-  sin($1);Dp3%.1e      @r{Same, but use printf specifier for display}
-  vmean($2..$7)        @r{Compute column range mean, using vector function}
-  vsum(&III)           @r{Sum numbers from 3rd hline above, up to here}
-  taylor($3,x=7,2)     @r{taylor series of $3, at x=7, second degree}
+$1+$2                @r{Sum of first and second field}
+$1+$2;%.2f           @r{Same, format result to two decimals}
+exp($2)+exp($1)      @r{Math functions can be used}
+$;%.1f               @r{Reformat current cell to 1 decimal}
+($3-32)*5/9          @r{Degrees F -> C conversion}
+$c/$1/$cm            @r{Hz -> cm conversion, using @file{constants.el}}
+tan($1);Dp3s1        @r{Compute in degrees, precision 3, display SCI 1}
+sin($1);Dp3%.1e      @r{Same, but use printf specifier for display}
+vmean($2..$7)        @r{Compute column range mean, using vector function}
+vsum(&III)           @r{Sum numbers from 3rd hline above, up to here}
+taylor($3,x=7,2)     @r{taylor series of $3, at x=7, second degree}
 @end example
 @end example
 
 
-@node Column formulas, Advanced features, Formula syntax, Table calculations
+@node Lisp formulas, Column formulas, Formula syntax, Table calculations
+@subsection Emacs Lisp forms as formulas
+@cindex Lisp forms, as table fomulas
+
+It is also possible to write a formula in Emacs lisp, this can be useful
+for string manipulation and control structures.  If a formula starts
+with a single quote followed by an opening parenthesis, then it is
+evaluated as a lisp form.  The evaluation should return either a string
+or a number.  Just like with @file{calc} formulas, you can provide a
+format specifier after a semicolon.  A few examples:
+
+@example
+@r{swap the first two characters of the content of column 1}
+'(concat (substring "$1" 1 2) (substring "$1" 0 1) (substring "$1" 2))
+@r{Add columns 1 and 2, equivalent to the calc's @code{$1+$2}}
+'(+ $1 $2)
+@end example
+
+@node Column formulas, Advanced features, Lisp formulas, Table calculations
 @subsection Column formulas
 @subsection Column formulas
 @cindex column formula
 @cindex column formula
 @cindex formula, for table column
 @cindex formula, for table column
@@ -2878,6 +2897,14 @@ key for this.
 @itemx S-@key{down}
 @itemx S-@key{down}
 Decrease the priority of the current item.
 Decrease the priority of the current item.
 
 
+@kindex C-c C-s
+@item C-c C-s
+Schedule this item
+
+@kindex C-c C-d
+@item C-c C-d
+Set a deadline for this item.
+
 @kindex S-@key{right}
 @kindex S-@key{right}
 @item S-@key{right}
 @item S-@key{right}
 Change the time stamp associated with the current line by one day into
 Change the time stamp associated with the current line by one day into
@@ -2993,6 +3020,9 @@ Export as ASCII file.  If there is an active region, only the region
 will be exported.  For an org file @file{myfile.org}, the ASCII file
 will be exported.  For an org file @file{myfile.org}, the ASCII file
 will be @file{myfile.txt}.  The file will be overwritten without
 will be @file{myfile.txt}.  The file will be overwritten without
 warning.
 warning.
+@kindex C-c C-x v a
+@item C-c C-x v a
+Export only the visible part of the document.
 @end table
 @end table
 
 
 @cindex headline levels, for exporting
 @cindex headline levels, for exporting
@@ -3026,6 +3056,11 @@ Export as HTML file @file{myfile.html}.
 @kindex C-c C-x b
 @kindex C-c C-x b
 @item C-c C-x b
 @item C-c C-x b
 Export as HTML file and open it with a browser.
 Export as HTML file and open it with a browser.
+@kindex C-c C-x v h
+@kindex C-c C-x v b
+@item C-c C-x v h
+@item C-c C-x v b
+Export only the visible part of the document.
 @end table
 @end table
 
 
 @cindex headline levels, for exporting
 @cindex headline levels, for exporting
@@ -3083,6 +3118,9 @@ does not interpret any additional Org-mode features.
 @kindex C-c C-x C-x
 @kindex C-c C-x C-x
 @item C-c C-x C-x
 @item C-c C-x C-x
 Export as XML file @file{myfile.xml}.
 Export as XML file @file{myfile.xml}.
+@kindex C-c C-x v
+@item C-c C-x v x
+Export only the visible part of the document.
 @end table
 @end table
 
 
 @node iCalendar export, Text interpretation, XML export, Exporting
 @node iCalendar export, Text interpretation, XML export, Exporting
@@ -3919,6 +3957,9 @@ Remember.
 Pavel Chalmoviansky influenced the agenda treatment of items with
 Pavel Chalmoviansky influenced the agenda treatment of items with
 specified time.
 specified time.
 @item
 @item
+Gregory Chenov patched support for lisp forms into table calculations
+and improved XEmacs compatibility.
+@item
 Sacha Chua suggested to copy some linking code from Planner.
 Sacha Chua suggested to copy some linking code from Planner.
 @item
 @item
 Kees Dullemond inspired the use of narrowed tabled columns.
 Kees Dullemond inspired the use of narrowed tabled columns.
@@ -3926,7 +3967,7 @@ Kees Dullemond inspired the use of narrowed tabled columns.
 Christian Egli converted the documentation into TeXInfo format, patched
 Christian Egli converted the documentation into TeXInfo format, patched
 CSS formatting into the HTML exporter, and inspired the agenda.
 CSS formatting into the HTML exporter, and inspired the agenda.
 @item
 @item
-Nic Ferrier contributed mailcap and XML support.
+Nic Ferrier contributed mailcap and XOXO support.
 @item
 @item
 Kai Grossjohann pointed out key-binding conflicts caused by Org-mode.
 Kai Grossjohann pointed out key-binding conflicts caused by Org-mode.
 @item
 @item
@@ -3942,6 +3983,8 @@ among other things.
 @item
 @item
 Pete Phillips helped the development of the TAGS feature.
 Pete Phillips helped the development of the TAGS feature.
 @item
 @item
+T.V. Raman reported bugs and suggested improvements.
+@item
 Matthias Rempe (Oelde) provided ideas, Windows support, and quality
 Matthias Rempe (Oelde) provided ideas, Windows support, and quality
 control.
 control.
 @item
 @item
@@ -3958,6 +4001,9 @@ things.
 Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
 Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
 @file{organizer-mode.el}.
 @file{organizer-mode.el}.
 @item
 @item
+David O'Toole wrote @file{org-publish.el} and came up with lots is ideas
+for small changes.
+@item
 J@"urgen Vollmer contributed code generating the table of contents
 J@"urgen Vollmer contributed code generating the table of contents
 in HTML output.
 in HTML output.
 @item
 @item


+ 2 - 4
orgcard.tex

@@ -1,5 +1,5 @@
 % Reference Card for Org Mode
 % Reference Card for Org Mode
-\def\orgversionnumber{4.28}
+\def\orgversionnumber{4.29}
 \def\year{2006}
 \def\year{2006}
 %
 %
 %**start of header
 %**start of header
@@ -562,11 +562,9 @@ To set categories, add lines like$^3$:
 \key{set tags for current headline}{:}
 \key{set tags for current headline}{:}
 \key{set priority of current item}{p}
 \key{set priority of current item}{p}
 \key{raise/lower priority of current item}{S-UP/DOWN$^4$}
 \key{raise/lower priority of current item}{S-UP/DOWN$^4$}
-%\key{lower priority of current item}{S-DOWN$^4$}
 \key{display weighted priority of current item}{P}
 \key{display weighted priority of current item}{P}
+\key{schedule/set deadline for this item}{C-c C-s/d}
 \key{change timestamp to one day earlier/later}{S-LEFT/RIGHT$^4$}
 \key{change timestamp to one day earlier/later}{S-LEFT/RIGHT$^4$}
-%\key{change timestamp to one day earlier}{S-LEFT$^4$}
-%\key{change timestamp to one day later}{S-RIGHT$^4$}
 \key{change timestamp to today}{>}
 \key{change timestamp to today}{>}
 \key{insert new entry into diary}{i}
 \key{insert new entry into diary}{i}