summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Dominik <dominik@nb-dominik2.science.uva.nl>2008-01-31 11:31:31 +0100
committerCarsten Dominik <dominik@nb-dominik2.science.uva.nl>2008-01-31 11:31:31 +0100
commitfcf5c84bc830c4a13996263f042148f9c7bf1ad3 (patch)
treec9e218f97c0550f289a11061a53851d48523b128
parentfc87d5cd147f3ff8e0d8012bcf08299877bf63c3 (diff)
Release 4.29release_4.29
-rw-r--r--org331
-rw-r--r--org.el306
-rw-r--r--org.pdfbin478691 -> 482382 bytes
-rw-r--r--org.texi104
-rw-r--r--orgcard.pdfbin58431 -> 58476 bytes
-rw-r--r--orgcard.tex6
6 files changed, 470 insertions, 277 deletions
diff --git a/org b/org
index 4a17dbc8d..d859852f0 100644
--- a/org
+++ b/org
@@ -5,7 +5,7 @@ START-INFO-DIR-ENTRY
* Org Mode: (org). outline-based notes management and organizer
END-INFO-DIR-ENTRY
- This manual is for Org-mode (version 4.28).
+ This manual is for Org-mode (version 4.29).
Copyright (C) 2004, 2005, 2006 Free Software Foundation
@@ -27,7 +27,7 @@ File: org, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
Org Mode Manual
***************
-This manual is for Org-mode (version 4.28).
+This manual is for Org-mode (version 4.29).
Copyright (C) 2004, 2005, 2006 Free Software Foundation
@@ -88,6 +88,7 @@ Tables
Calculations in tables
* 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
* Advanced features:: Field names, parameters and automatic recalc
* 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
`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 ----------
@@ -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
-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
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
@@ -928,6 +929,7 @@ own formula associated with them, and recalculation can be automated.
* Menu:
* 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
* Advanced features:: Field names, parameters and automatic recalc
* 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

-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
--------------------
@@ -977,17 +979,17 @@ turn on degrees, radians, fraction and symbolic modes, respectively.
In addition, you may provide a `printf' format specifier to reformat
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 ----------
@@ -998,9 +1000,27 @@ The default settings can be configured using the variable
`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,
@@ -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
-3.3.3 Advanced features
+3.3.4 Advanced features
-----------------------
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
-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
@@ -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
-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
@@ -1158,7 +1178,7 @@ will be displayed.

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
@@ -2597,6 +2617,12 @@ Remote editing
`S-<down>'
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>'
Change the time stamp associated with the current line by one day
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
region will be exported. For an org file `myfile.org', the ASCII
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
headlines, defining a general document structure. Additional levels
@@ -2728,7 +2757,12 @@ support for tables.
Export as HTML file `myfile.html'.
`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
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.
`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
@@ -3495,6 +3532,9 @@ Org-mode would not be what it is without your input.
* Pavel Chalmoviansky influenced the agenda treatment of items with
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.
* 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
agenda.
- * Nic Ferrier contributed mailcap and XML support.
+ * Nic Ferrier contributed mailcap and XOXO support.
* Kai Grossjohann pointed out key-binding conflicts caused by
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.
+ * T.V. Raman reported bugs and suggested improvements.
+
* Matthias Rempe (Oelde) provided ideas, Windows support, and quality
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
`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
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 commands, custom: 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, for single file: Timeline. (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)
* deadlines: Time stamps. (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.
(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)
* hand-formatted lists: Enhancing text. (line 11)
* 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 tagging: Tags. (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, internal: Internal links. (line 6)
* links, returning to: Handling links. (line 81)
+* Lisp forms, as table fomulas: Lisp formulas. (line 6)
* lists, hand-formatted: Enhancing text. (line 11)
* lists, ordered: 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)
* <TAB> <3>: Plain lists. (line 38)
* <TAB>: Visibility cycling. (line 10)
-* > <1>: Agenda commands. (line 142)
+* > <1>: Agenda commands. (line 148)
* >: 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.
(line 155)
* 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.
(line 54)
* 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-f: Motion. (line 12)
* 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.
(line 119)
* 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-t: TODO basics. (line 13)
* 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 b: HTML export. (line 11)
* 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-k: Structure editing. (line 36)
* 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)
* C-c C-x M-w: Structure editing. (line 40)
* 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 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 l: Handling links. (line 9)
* C-c |: Built-in table editor.
@@ -4009,11 +4061,11 @@ File: org, Node: Key Index, Prev: Index, Up: Top
* d: Agenda commands. (line 65)
* f: Agenda commands. (line 44)
* 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 32)
-* M: Agenda commands. (line 163)
+* M: Agenda commands. (line 169)
* M-<down>: Built-in table editor.
(line 82)
* 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)
* P: Agenda commands. (line 117)
* p: Agenda commands. (line 20)
-* q: Agenda commands. (line 186)
+* q: Agenda commands. (line 192)
* r <1>: Agenda commands. (line 76)
* 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> <2>: Creating timestamps. (line 55)
* 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-<RET>: Built-in table editor.
(line 170)
-* S-<right> <1>: Agenda commands. (line 130)
+* S-<right> <1>: Agenda commands. (line 136)
* S-<right>: Creating timestamps. (line 50)
* S-<TAB> <1>: Built-in table editor.
(line 61)
@@ -4081,106 +4133,107 @@ File: org, Node: Key Index, Prev: Index, Up: Top
* T: Agenda commands. (line 104)
* t: Agenda commands. (line 100)
* w: Agenda commands. (line 62)
-* x: Agenda commands. (line 189)
+* x: Agenda commands. (line 195)

Tag Table:
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
diff --git a/org.el b/org.el
index eb1951651..19a2c475a 100644
--- a/org.el
+++ b/org.el
@@ -5,7 +5,7 @@
;; Author: Carsten Dominik <dominik at science dot uva dot nl>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
-;; Version: 4.28
+;; Version: 4.29
;;
;; This file is part of GNU Emacs.
;;
@@ -81,6 +81,17 @@
;;
;; 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
;; - Bug fixes.
;;
@@ -149,7 +160,7 @@
;;; Customization variables
-(defvar org-version "4.28"
+(defvar org-version "4.29"
"The version number of the file org.el.")
(defun org-version ()
(interactive)
@@ -1282,6 +1293,14 @@ potentially much shorter TODO lists."
:group 'org-todo
: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
"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
@@ -1316,7 +1335,7 @@ Needs to be set before org.el is loaded."
:group 'org-agenda-setup
: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."
:group 'org-agenda-setup
:type 'boolean)
@@ -1848,13 +1867,16 @@ When nil, the links still point to the plain `.org' file."
:group 'org-export-html
: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.
-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
- :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
"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:
\\{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-tbl-menu)
(org-install-agenda-files-menu)
(if org-descriptive-links (org-add-to-invisibility-spec '(org-link)))
(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 "\\(?:\\*+\\|[ \t]*\\(?:[-+*]\\|[0-9]+[.)]\\) \\)")
(setq outline-level 'org-outline-level)
@@ -2467,19 +2509,6 @@ The following commands are available:
(= (point-min) (point-max)))
(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
(if org-startup-align-all-tables
(org-table-map-tables 'org-table-align))
@@ -3175,8 +3204,14 @@ or nil."
(defvar org-ignore-region nil
"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)
- "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")
(if (= (buffer-size) 0)
(insert "\n* ")
@@ -3186,15 +3221,18 @@ or nil."
(org-back-to-heading)
(error (outline-next-heading)))
(prog1 (match-string 0)
- (funcall outline-level)))))
+ (funcall outline-level))))
+ pos)
(cond
((and (org-on-heading-p) (bolp)
(save-excursion (backward-char 1) (not (org-invisible-p))))
(open-line 1))
((bolp) nil)
(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)))))
(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))
(eow (save-excursion (beginning-of-line 1) (looking-at "[ \t]*")
(match-end 0)))
- (eowcol (save-excursion (goto-char eow) (current-column))))
+ (eowcol (save-excursion (goto-char eow) (current-column)))
+ pos)
(cond
((and (org-at-item-p) (<= (point) eow))
;; before the bullet
@@ -3220,7 +3259,10 @@ Return t when things worked, nil when we are not in an item."
(beginning-of-line 1))
(t (newline)))
(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)
t))
@@ -3232,7 +3274,9 @@ state (TODO by default). Also with prefix arg, force first state."
(org-insert-heading)
(save-excursion
(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))
(if (or arg
(not (match-beginning 2))
@@ -4059,9 +4103,9 @@ prefix arg, switch to that state."
(not (equal state org-done-string)))
(when org-log-done
(if (equal state org-done-string)
- (org-log-done)
+ (org-add-planning-info 'closed (current-time) 'scheduled)
(if (not this)
- (org-log-done t))))
+ (org-add-planning-info nil nil 'closed))))
;; Fixup tag positioning
(and org-auto-align-tags (org-set-tags nil t))
(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]
to modify it to the correct date."
(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 ()
"Insert the SCHEDULED: string to schedule a TODO item.
A timestamp is also inserted - use \\[org-timestamp-up] and \\[org-timestamp-down]
to modify it to the correct date."
(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)
"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."
(interactive)
(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)
(setq beg (point))
(looking-at (concat outline-regexp "\\( *\\)[^\r\n]*"))
@@ -4196,15 +4229,17 @@ be removed."
((eq what 'closed) org-closed-string))
" ")
(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))
(widen)
(if (looking-at "[ \t]+\r?\n")
- (replace-match "")))))
+ (replace-match ""))
+ ts)))
(defun org-occur (regexp &optional callback)
"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))
(calendar-move-hook nil)
(view-diary-entries-initially nil)
+ (view-calendar-holidays-initially nil)
(timestr (format-time-string
(if with-time "%Y-%m-%d %H:%M" "%Y-%m-%d") default-time))
(prompt (format "YYYY-MM-DD [%s]: " timestr))
@@ -4843,6 +4879,7 @@ A prefix ARG can be used to force the current date."
(interactive "P")
(let ((tsr org-ts-regexp) diff
(calendar-move-hook nil)
+ (view-calendar-holidays-initially nil)
(view-diary-entries-initially nil))
(if (or (org-at-timestamp-p)
(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 ">" '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)))
(while l (define-key org-agenda-mode-map
(int-to-string (pop l)) 'digit-argument)))
@@ -4995,10 +5034,12 @@ The following commands are available:
("Tags"
["Show all Tags" org-agenda-show-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-earlier (org-agenda-check-type nil 'agenda 'timeline)]
- "--"
["Reschedule to ..." org-agenda-date-prompt (org-agenda-check-type nil 'agenda 'timeline)])
("Priority"
["Set Priority" org-agenda-priority t]
@@ -6096,10 +6137,13 @@ the documentation of `org-diary'."
"\\)\\>")
org-not-done-regexp)
"[^\n\r]*\\)"))
+ (sched-re (concat ".*\n.*?" org-scheduled-time-regexp))
marker priority category tags
ee txt)
(goto-char (point-min))
(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))
(setq marker (org-agenda-new-marker (1+ (match-beginning 0)))
category (org-get-category)
@@ -6116,9 +6160,9 @@ the documentation of `org-diary'."
'org-marker marker 'org-hd-marker marker
'priority priority 'category category)
(push txt ee)
- (if org-agenda-todo-list-sublevels
+ (if org-agenda-todo-list-sublevels ; FIXME???? Change needed?
(goto-char (match-end 1))
- (org-end-of-subtree 'invisible)))
+ (org-end-of-subtree 'invisible))))
(nreverse ee)))
(defconst org-agenda-no-heading-message
@@ -6929,6 +6973,38 @@ be used to request time specification in the time stamp."
(org-time-stamp arg)
(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 ()
"Return the heading of the current entry, without the stars."
(save-excursion
@@ -7033,6 +7109,7 @@ argument, latitude and longitude will be prompted for."
(error "Don't know which date to open in calendar")))
(date (calendar-gregorian-from-absolute day))
(calendar-move-hook nil)
+ (view-calendar-holidays-initially nil)
(view-diary-entries-initially nil))
(calendar)
(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
to be run from that hook to fucntion properly."
(if org-remember-templates
+
(let* ((entry (if (= (length org-remember-templates) 1)
(cdar org-remember-templates)
(message "Select template: %s"
@@ -8579,8 +8657,8 @@ to be run from that hook to fucntion properly."
(lambda (x) (char-to-string (car x)))
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 (cdr org-time-stamp-formats) (org-current-time)))
(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)))))
(n0 (org-table-current-column))
(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
;; a lot of work. However, I think calc still uses most of the time.
(if (string-match ";" formula)
@@ -10499,7 +10577,8 @@ not overwrite the stored one."
(lambda (x) (number-to-string (string-to-number x)))
fields)))
(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
(while (string-match "\\$\\([0-9]+\\)?" form)
(setq n (if (match-beginning 1)
@@ -10509,7 +10588,9 @@ not overwrite the stored one."
(unless x (error "Invalid field specifier \"%s\""
(match-string 0 form)))
(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
(while (string-match "\\&[-I0-9]+" form)
(setq form (replace-match
@@ -10517,8 +10598,14 @@ not overwrite the stored one."
(org-table-get-vertical-vector (match-string 0 form)
nil n0))
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
(with-output-to-temp-buffer "*Help*"
@@ -11795,43 +11882,44 @@ underlined headlines. The default is 3."
(setq title (concat (org-section-number level) " " title)))
(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)
- (with-current-buffer buffer
- (erase-buffer)
- (text-mode))
+ (with-current-buffer buffer (erase-buffer))
(save-excursion
(setq s (goto-char (point-min)))
(while (not (= (point) (point-max)))
(goto-char (org-find-invisible))
(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 ()
(if (featurep 'noutline)
@@ -12034,7 +12122,7 @@ org-mode's default settings, but still inferior to file-local settings."
table-open type
table-buffer table-orig-buffer
ind start-is-num starter
- rpl path desc desc1 desc2 link
+ rpl path desc descp desc1 desc2 link
)
(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 desc1 (if (match-end 5) (match-string 5 line))
desc2 (if (match-end 2) (concat type ":" path) path)
+ descp (and desc1 (not (equal desc1 desc2)))
desc (or desc1 desc2))
+ ;; FIXME: do we need to unescape here somewhere?
(cond
((equal type "internal")
(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))
(if (string-match "\\.org$" 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 "<a href=\"" thefile "\">" desc "</a>")))))
((member type '("bbdb" "vm" "wl" "mhe" "rmail" "gnus" "shell"))
@@ -12741,9 +12833,9 @@ file, but with extension `.ics'."
(interactive)
(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."
- (interactive)
+ (interactive "P")
(cond ((eq org-export-xml-type 'xoxo)
(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-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-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
;(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)
@@ -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\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))
(defun org-self-insert-command (N)
@@ -13613,7 +13708,7 @@ See the individual commands for more information."
"--"
("Export"
["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 and Open" org-export-as-html-and-open 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
;; between the different versions of outline-mode. The only other
;; 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
;; 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."
(if org-noutline-p
(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))
t
(if (re-search-backward (concat (if invisible-ok "\\([\r\n]\\|^\\)" "^")
outline-regexp)
nil t)
(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")))))
(defun org-on-heading-p (&optional invisible-ok)
@@ -14022,7 +14117,7 @@ Show the heading too, if it is currently invisible."
(save-excursion
(org-back-to-heading t)
(outline-flag-region
- (1- (point))
+ (max 1 (1- (point)))
(save-excursion
(re-search-forward (concat "[\r\n]\\(" outline-regexp "\\)") nil 'move)
(or (match-beginning 1) (point-max)))
@@ -14061,6 +14156,7 @@ Show the heading too, if it is currently invisible."
(run-hooks 'org-load-hook)
+
;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
;;; org.el ends here
diff --git a/org.pdf b/org.pdf
index 1f84eaaeb..74d9a75bb 100644
--- a/org.pdf
+++ b/org.pdf
Binary files differ
diff --git a/org.texi b/org.texi
index 2958bed61..a1094bc33 100644
--- a/org.texi
+++ b/org.texi
@@ -4,8 +4,8 @@
@c @setfilename ../info/org
@settitle Org Mode Manual
-@set VERSION 4.28
-@set DATE April 2006
+@set VERSION 4.29
+@set DATE May 2006
@dircategory Emacs
@direntry
@@ -119,6 +119,7 @@ Tables
Calculations in tables
* 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
* Advanced features:: Field names, parameters and automatic recalc
* 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
of the document @footnote{This does not work under XEmacs, because
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
@@ -1044,19 +1044,20 @@ on a per-file basis with:
@cindex spreadsheet capabilities
@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
* 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
* Advanced features:: Field names, parameters and automatic recalc
* Named-field formulas:: Formulas valid in single fields
@@ -1064,7 +1065,7 @@ recalculation can be automated.
* Appetizer:: Taste the power of calc
@end menu
-@node Formula syntax, Column formulas, Table calculations, Table calculations
+@node Formula syntax, Lisp formulas, Table calculations, Table calculations
@subsection Formula syntax
@cindex formula syntax
@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:
@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
-@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
@cindex column formula
@cindex formula, for table column
@@ -2878,6 +2897,14 @@ key for this.
@itemx S-@key{down}
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}
@item S-@key{right}
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 @file{myfile.txt}. The file will be overwritten without
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
@cindex headline levels, for exporting
@@ -3026,6 +3056,11 @@ Export as HTML file @file{myfile.html}.
@kindex C-c C-x b
@item C-c C-x b
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
@cindex headline levels, for exporting
@@ -3083,6 +3118,9 @@ does not interpret any additional Org-mode features.
@kindex C-c C-x C-x
@item C-c C-x C-x
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
@node iCalendar export, Text interpretation, XML export, Exporting
@@ -3919,6 +3957,9 @@ Remember.
Pavel Chalmoviansky influenced the agenda treatment of items with
specified time.
@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.
@item
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
CSS formatting into the HTML exporter, and inspired the agenda.
@item
-Nic Ferrier contributed mailcap and XML support.
+Nic Ferrier contributed mailcap and XOXO support.
@item
Kai Grossjohann pointed out key-binding conflicts caused by Org-mode.
@item
@@ -3942,6 +3983,8 @@ among other things.
@item
Pete Phillips helped the development of the TAGS feature.
@item
+T.V. Raman reported bugs and suggested improvements.
+@item
Matthias Rempe (Oelde) provided ideas, Windows support, and quality
control.
@item
@@ -3958,6 +4001,9 @@ things.
Linking to VM/BBDB/GNUS was inspired by Tom Shannon's
@file{organizer-mode.el}.
@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
in HTML output.
@item
diff --git a/orgcard.pdf b/orgcard.pdf
index 22963ddfc..94bc0ef1a 100644
--- a/orgcard.pdf
+++ b/orgcard.pdf
Binary files differ
diff --git a/orgcard.tex b/orgcard.tex
index 518412523..6c5b5ab11 100644
--- a/orgcard.tex
+++ b/orgcard.tex
@@ -1,5 +1,5 @@
% Reference Card for Org Mode
-\def\orgversionnumber{4.28}
+\def\orgversionnumber{4.29}
\def\year{2006}
%
%**start of header
@@ -562,11 +562,9 @@ To set categories, add lines like$^3$:
\key{set tags for current headline}{:}
\key{set priority of current item}{p}
\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{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}{S-LEFT$^4$}
-%\key{change timestamp to one day later}{S-RIGHT$^4$}
\key{change timestamp to today}{>}
\key{insert new entry into diary}{i}