0
0
Fork 1
mirror of https://git.savannah.gnu.org/git/emacs/org-mode.git synced 2024-09-29 18:36:26 +00:00

Release 4.57

This commit is contained in:
Carsten Dominik 2008-01-31 11:33:09 +01:00
parent df9788bfe2
commit fc984cbe7b
6 changed files with 810 additions and 379 deletions

463
org
View file

@ -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.56). This manual is for Org-mode (version 4.57).
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.56). This manual is for Org-mode (version 4.57).
Copyright (C) 2004, 2005, 2006 Free Software Foundation Copyright (C) 2004, 2005, 2006 Free Software Foundation
@ -635,7 +635,17 @@ File: org, Node: Structure editing, Next: Archiving, Prev: Motion, Up: Docum
Yank subtree from kill ring. This does modify the level of the Yank subtree from kill ring. This does modify the level of the
subtree to make sure the tree fits in nicely at the yank position. subtree to make sure the tree fits in nicely at the yank position.
The yank level can also be specified with a prefix arg, or by The yank level can also be specified with a prefix arg, or by
yanking after a headline marker like `****'. yanking after a headline marker like `****'.
`C-c ^'
Sort same-level entries. When there is an active region, all
entries in the region will be sorted. Otherwise the children of
the current headline are sorted. The command prompts for the
sorting method, which can be alphabetically, numerically, by time
(using the first time stamp in each entry), and each of these in
reverse order. With a `C-u' prefix, sorting will be
case-sensitive. With two `C-u C-u' prefixes, duplicate entries
will also be removed.
When there is an active region (transient-mark-mode), promotion and When there is an active region (transient-mark-mode), promotion and
demotion work on all headlines in the region. To select a region of demotion work on all headlines in the region. To select a region of
@ -995,10 +1005,16 @@ Column and row editing
line is created above the current line. line is created above the current line.
`C-c ^' `C-c ^'
Sort the table lines in the region. Point and mark must be in the Sort the table lines in the region. The position of point
first and last line to be included, and must be in the column that indicates the column to be used for sorting, and the range of
should be used for sorting. The command prompts for numerical lines is the range between the nearest horizontal separator lines,
versus alphanumerical sorting. or the entire table. If point is before the first column, you
will be prompted for the sorting column. If there is an active
region, the mark specifies the first line and the sorting column,
while point should be in the last line to be included into the
sorting. The command prompts for the sorting type
(alphabetically, numerically, or by time). When called with a
prefix argument, alphabetic sorting will be case-sensitive.
Regions Regions
....... .......
@ -1838,7 +1854,7 @@ link, together with an explanation:
tree with the matches. tree with the matches.
As a degenerate case, a file link with an empty file name can be used As a degenerate case, a file link with an empty file name can be used
to search the current file. For example, `<file:::find me>' does a to search the current file. For example, `[[file:::find me]]' does a
search for `find me' in the current file, just as `[[find me]]' would. search for `find me' in the current file, just as `[[find me]]' would.
---------- Footnotes ---------- ---------- Footnotes ----------
@ -1908,13 +1924,13 @@ as a target for this note.
When you call `M-x remember' to remember something, org will prompt When you call `M-x remember' to remember something, org will prompt
for a key to select the template and then prepare the buffer like for a key to select the template and then prepare the buffer like
* TODO * TODO
<file:link to where you called remember> [[file:link to where you called remember]]
or or
* [2006-03-21 Tue 15:37] * [2006-03-21 Tue 15:37]
<file:link to where you called remember> [[file:link to where you called remember]]
See the variable `org-remember-templates' for more details. See the variable `org-remember-templates' for more details.
@ -2309,7 +2325,7 @@ TIME STAMP WITH SCHEDULED KEYWORD
If a time stamp is preceded by the word `SCHEDULED:', it means you If a time stamp is preceded by the word `SCHEDULED:', it means you
are planning to start working on that task on the given date. So are planning to start working on that task on the given date. So
this is not about recording an event, but about planning your this is not about recording an event, but about planning your
work. The headline will be listed under the given date. In work. The headline will be listed under the given date(2). In
addition, a reminder that the scheduled date has passed will be addition, a reminder that the scheduled date has passed will be
present in the compilation for _today_, until the entry is marked present in the compilation for _today_, until the entry is marked
DONE. I.e., the task will automatically be forwarded until DONE. I.e., the task will automatically be forwarded until
@ -2327,7 +2343,7 @@ TIME STAMP WITH DEADLINE KEYWORD
date, and continuing until the entry is marked DONE. An example: date, and continuing until the entry is marked DONE. An example:
*** TODO write article about the Earth for the Guide *** TODO write article about the Earth for the Guide
The editor in charge is <bbdb:Ford Prefect> The editor in charge is [[bbdb:Ford Prefect]]
DEADLINE: <2004-02-29 Sun> DEADLINE: <2004-02-29 Sun>
TIME STAMP WITH CLOSED KEYWORD TIME STAMP WITH CLOSED KEYWORD
@ -2348,6 +2364,10 @@ TIME RANGE WITH CLOCK KEYWORD
(1) This is the standard ISO date/time format. If you cannot get (1) This is the standard ISO date/time format. If you cannot get
used to these, see *Note Custom time format:: used to these, see *Note Custom time format::
(2) It will still be listed on that date after it has been marked
DONE. If you don't like this, set the variable
`org-agenda-skip-scheduled-if-done'.
 
File: org, Node: Creating timestamps, Next: Custom time format, Prev: Time stamps, Up: Timestamps File: org, Node: Creating timestamps, Next: Custom time format, Prev: Time stamps, Up: Timestamps
@ -2443,6 +2463,7 @@ specified with the current date and time. For example:
22 sept 0:34 --> currentyear-09-22 0:34 22 sept 0:34 --> currentyear-09-22 0:34
12 --> currentyear-currentmonth-12 12 --> currentyear-currentmonth-12
Fri --> nearest Friday (today or later) Fri --> nearest Friday (today or later)
+4 --> 4 days from now (if +N is the only thing given)
The function understands English month and weekday abbreviations. If The function understands English month and weekday abbreviations. If
you want to use unabbreviated names and/or other languages, configure you want to use unabbreviated names and/or other languages, configure
@ -2861,6 +2882,11 @@ _negative selection_ combined with AND can be meaningful. Examples:
Select `:WORK:'-tagged TODO lines that are either `WAITING' or Select `:WORK:'-tagged TODO lines that are either `WAITING' or
`NEXT'. `NEXT'.
Any element of the tag/todo match can be a regular expression - in
this case it must be enclosed in curly braces. For example,
`WORK+{^BOSS.*}' matches headlines that contain the tag `WORK' and any
tag starting with `BOSS'.
 
File: org, Node: Agenda views, Next: Embedded LaTeX, Prev: Tags, Up: Top File: org, Node: Agenda views, Next: Embedded LaTeX, Prev: Tags, Up: Top
@ -3356,6 +3382,9 @@ Remote editing
deleted remotely is longer than one line, the kill needs to be deleted remotely is longer than one line, the kill needs to be
confirmed by the user. See variable `org-agenda-confirm-kill'. confirmed by the user. See variable `org-agenda-confirm-kill'.
`$'
Archive the subtree corresponding to the current headline.
`T' `T'
Show all tags associated with the current item. Because of Show all tags associated with the current item. Because of
inheritance, this may be more than the tags listed in the line inheritance, this may be more than the tags listed in the line
@ -4991,9 +5020,9 @@ The following extensions for Org-mode have been written by other people:
A blogging plug-in for `org-publish.el'. A blogging plug-in for `org-publish.el'.
`http://dto.freeshell.org/notebook/OrgMode.html'. `http://dto.freeshell.org/notebook/OrgMode.html'.
`org-blogging.el' by Bastien Guerry `blorg.el' by Bastien Guerry
Publish Org-mode files as blogs. Publish Org-mode files as blogs.
`http://www.cognition.ens.fr/~guerry/org-blogging.html'. `http://www.cognition.ens.fr/~guerry/blorg.html'.
 
File: org, Node: Dynamic blocks, Prev: Extensions, Up: Extensions and Hacking File: org, Node: Dynamic blocks, Prev: Extensions, Up: Extensions and Hacking
@ -5196,12 +5225,12 @@ Index
* active region <1>: HTML export. (line 10) * active region <1>: HTML export. (line 10)
* active region <2>: ASCII export. (line 9) * active region <2>: ASCII export. (line 9)
* active region <3>: Built-in table editor. * active region <3>: Built-in table editor.
(line 165) (line 171)
* active region: Structure editing. (line 54) * active region: Structure editing. (line 64)
* agenda: Weekly/Daily agenda. (line 6) * agenda: Weekly/Daily agenda. (line 6)
* agenda dispatcher: Agenda dispatcher. (line 6) * agenda dispatcher: Agenda dispatcher. (line 6)
* agenda files: Agenda files. (line 6) * agenda files: Agenda files. (line 6)
* agenda files, removing buffers: Agenda commands. (line 217) * agenda files, removing buffers: Agenda commands. (line 220)
* agenda views: Agenda views. (line 6) * agenda views: Agenda views. (line 6)
* agenda views, custom: Custom agenda views. (line 6) * agenda views, custom: Custom agenda views. (line 6)
* agenda, batch production: Batch processing. (line 6) * agenda, batch production: Batch processing. (line 6)
@ -5217,6 +5246,7 @@ Index
* backtrace of an error: Feedback. (line 27) * backtrace of an error: Feedback. (line 27)
* BBDB links: External links. (line 6) * BBDB links: External links. (line 6)
* block agenda: Block agenda. (line 6) * block agenda: Block agenda. (line 6)
* blorg.el: Extensions. (line 33)
* bold text: Enhancing text. (line 15) * bold text: Enhancing text. (line 15)
* Boolean logic, for tag searches: Tag searches. (line 21) * Boolean logic, for tag searches: Tag searches. (line 21)
* bug reports: Feedback. (line 6) * bug reports: Feedback. (line 6)
@ -5227,12 +5257,12 @@ Index
* calc.el: Cooperation. (line 6) * calc.el: Cooperation. (line 6)
* calculations, in tables <1>: Table calculations. (line 6) * calculations, in tables <1>: Table calculations. (line 6)
* calculations, in tables: Built-in table editor. * calculations, in tables: Built-in table editor.
(line 135) (line 141)
* calendar commands, from agenda: Agenda commands. (line 178) * calendar commands, from agenda: Agenda commands. (line 181)
* calendar integration: Calendar/Diary integration. * calendar integration: Calendar/Diary integration.
(line 6) (line 6)
* calendar, for selecting date: The date/time prompt. * calendar, for selecting date: The date/time prompt.
(line 25) (line 26)
* CamelCase link completion: Completion. (line 6) * CamelCase link completion: Completion. (line 6)
* CamelCase links: Internal links. (line 6) * CamelCase links: Internal links. (line 6)
* CamelCase links, completion of: CamelCase links. (line 6) * CamelCase links, completion of: CamelCase links. (line 6)
@ -5283,7 +5313,7 @@ Index
* DEADLINE keyword: Time stamps. (line 53) * DEADLINE keyword: Time stamps. (line 53)
* 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 185) * diary entries, creating from agenda: Agenda commands. (line 188)
* 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)
@ -5328,7 +5358,7 @@ Index
(line 6) (line 6)
* formula, for table column: Column formulas. (line 6) * formula, for table column: Column formulas. (line 6)
* formula, in tables: Built-in table editor. * formula, in tables: Built-in table editor.
(line 135) (line 141)
* global cycling: Visibility cycling. (line 22) * global cycling: Visibility cycling. (line 22)
* global keybindings: Activation. (line 6) * global keybindings: Activation. (line 6)
* global TODO list: Global TODO list. (line 6) * global TODO list: Global TODO list. (line 6)
@ -5413,7 +5443,6 @@ Index
* ordered lists: Plain lists. (line 6) * ordered lists: Plain lists. (line 6)
* org-agenda, command: Weekly/Daily agenda. (line 9) * org-agenda, command: Weekly/Daily agenda. (line 9)
* org-blog.el: Extensions. (line 29) * org-blog.el: Extensions. (line 29)
* org-blogging.el: Extensions. (line 33)
* org-mode, turning on: Activation. (line 22) * org-mode, turning on: Activation. (line 22)
* org-mouse.el: Extensions. (line 17) * org-mouse.el: Extensions. (line 17)
* org-publish-project-alist: Project alist. (line 6) * org-publish-project-alist: Project alist. (line 6)
@ -5445,8 +5474,9 @@ Index
* region, active <1>: HTML export. (line 10) * region, active <1>: HTML export. (line 10)
* region, active <2>: ASCII export. (line 9) * region, active <2>: ASCII export. (line 9)
* region, active <3>: Built-in table editor. * region, active <3>: Built-in table editor.
(line 165) (line 171)
* region, active: Structure editing. (line 54) * region, active: Structure editing. (line 64)
* regular expressions, with tags search: Tag searches. (line 58)
* remember.el <1>: Cooperation. (line 33) * remember.el <1>: Cooperation. (line 33)
* remember.el: Remember. (line 6) * remember.el: Remember. (line 6)
* remote editing, from agenda: Agenda commands. (line 100) * remote editing, from agenda: Agenda commands. (line 100)
@ -5540,8 +5570,8 @@ Index
* transient-mark-mode <1>: HTML export. (line 10) * transient-mark-mode <1>: HTML export. (line 10)
* transient-mark-mode <2>: ASCII export. (line 9) * transient-mark-mode <2>: ASCII export. (line 9)
* transient-mark-mode <3>: Built-in table editor. * transient-mark-mode <3>: Built-in table editor.
(line 165) (line 171)
* transient-mark-mode: Structure editing. (line 54) * transient-mark-mode: Structure editing. (line 64)
* trees, sparse: Sparse trees. (line 6) * trees, sparse: Sparse trees. (line 6)
* trees, visibility: Visibility cycling. (line 6) * trees, visibility: Visibility cycling. (line 6)
* tty keybindings: TTY keys. (line 6) * tty keybindings: TTY keys. (line 6)
@ -5570,19 +5600,20 @@ Key Index
[index] [index]
* Menu: * Menu:
* $: Agenda commands. (line 113)
* ': CDLaTeX mode. (line 43) * ': CDLaTeX mode. (line 43)
* +: Agenda commands. (line 132) * +: Agenda commands. (line 135)
* ,: Agenda commands. (line 124) * ,: Agenda commands. (line 127)
* -: Agenda commands. (line 138) * -: Agenda commands. (line 141)
* .: Agenda commands. (line 94) * .: Agenda commands. (line 94)
* :: Agenda commands. (line 118) * :: Agenda commands. (line 121)
* <: The date/time prompt. * <: The date/time prompt.
(line 28) (line 29)
* <left>: Agenda commands. (line 91) * <left>: Agenda commands. (line 91)
* <RET> <1>: Agenda commands. (line 41) * <RET> <1>: Agenda commands. (line 41)
* <RET> <2>: Setting tags. (line 76) * <RET> <2>: Setting tags. (line 76)
* <RET> <3>: The date/time prompt. * <RET> <3>: The date/time prompt.
(line 53) (line 54)
* <RET>: Built-in table editor. * <RET>: Built-in table editor.
(line 64) (line 64)
* <right>: Agenda commands. (line 86) * <right>: Agenda commands. (line 86)
@ -5595,17 +5626,17 @@ Key Index
(line 57) (line 57)
* <TAB> <5>: Plain lists. (line 37) * <TAB> <5>: Plain lists. (line 37)
* <TAB>: Visibility cycling. (line 10) * <TAB>: Visibility cycling. (line 10)
* > <1>: Agenda commands. (line 160) * > <1>: Agenda commands. (line 163)
* >: The date/time prompt. * >: The date/time prompt.
(line 29) (line 30)
* ^: CDLaTeX mode. (line 33) * ^: CDLaTeX mode. (line 33)
* _: CDLaTeX mode. (line 33) * _: CDLaTeX mode. (line 33)
* `: CDLaTeX mode. (line 39) * `: CDLaTeX mode. (line 39)
* a: Agenda commands. (line 121) * a: Agenda commands. (line 124)
* C: Agenda commands. (line 200) * C: Agenda commands. (line 203)
* c: Agenda commands. (line 178) * c: Agenda commands. (line 181)
* C-#: Built-in table editor. * C-#: Built-in table editor.
(line 155) (line 161)
* C-,: Agenda files. (line 18) * C-,: Agenda files. (line 18)
* C-a a L: Timeline. (line 10) * C-a a L: Timeline. (line 10)
* C-c !: Creating timestamps. (line 21) * C-c !: Creating timestamps. (line 21)
@ -5616,11 +5647,11 @@ Key Index
* C-c ' <1>: Editing/debugging formulas. * C-c ' <1>: Editing/debugging formulas.
(line 20) (line 20)
* C-c ': Built-in table editor. * C-c ': Built-in table editor.
(line 144) (line 150)
* C-c *: Built-in table editor. * C-c *: Built-in table editor.
(line 148) (line 154)
* C-c +: Built-in table editor. * C-c +: Built-in table editor.
(line 165) (line 171)
* C-c ,: Priorities. (line 18) * C-c ,: Priorities. (line 18)
* C-c -: Built-in table editor. * C-c -: Built-in table editor.
(line 92) (line 92)
@ -5630,21 +5661,22 @@ Key Index
* C-c ;: Comment lines. (line 11) * C-c ;: Comment lines. (line 11)
* C-c <: Creating timestamps. (line 25) * C-c <: Creating timestamps. (line 25)
* C-c <TAB>: Built-in table editor. * C-c <TAB>: Built-in table editor.
(line 187) (line 193)
* C-c =: Built-in table editor. * C-c =: Built-in table editor.
(line 135) (line 141)
* C-c >: Creating timestamps. (line 29) * C-c >: Creating timestamps. (line 29)
* C-c ? <1>: Editing/debugging formulas. * C-c ? <1>: Editing/debugging formulas.
(line 20) (line 20)
* C-c ?: Built-in table editor. * C-c ?: Built-in table editor.
(line 161) (line 167)
* C-c [: Agenda files. (line 12) * C-c [: Agenda files. (line 12)
* C-c \: Tag searches. (line 9) * C-c \: Tag searches. (line 9)
* C-c ]: Agenda files. (line 15) * C-c ]: Agenda files. (line 15)
* C-c ^: Built-in table editor. * C-c ^ <1>: Built-in table editor.
(line 96) (line 96)
* C-c ^: Structure editing. (line 52)
* C-c `: Built-in table editor. * C-c `: Built-in table editor.
(line 181) (line 187)
* C-c a a: Weekly/Daily agenda. (line 9) * C-c a a: Weekly/Daily agenda. (line 9)
* C-c a C: Storing searches. (line 9) * C-c a C: Storing searches. (line 9)
* C-c a M: Matching headline tags. * C-c a M: Matching headline tags.
@ -5670,7 +5702,7 @@ Key Index
* C-c C-c <7>: Built-in table editor. * C-c C-c <7>: Built-in table editor.
(line 54) (line 54)
* C-c C-c: Plain lists. (line 74) * C-c C-c: Plain lists. (line 74)
* C-c C-d <1>: Agenda commands. (line 145) * C-c C-d <1>: Agenda commands. (line 148)
* C-c C-d: Creating timestamps. (line 37) * C-c C-d: Creating timestamps. (line 37)
* C-c C-e: Exporting. (line 19) * C-c C-e: Exporting. (line 19)
* C-c C-e a: ASCII export. (line 9) * C-c C-e a: ASCII export. (line 9)
@ -5696,9 +5728,9 @@ Key Index
* C-c C-q <1>: Editing/debugging formulas. * C-c C-q <1>: Editing/debugging formulas.
(line 20) (line 20)
* C-c C-q: Built-in table editor. * C-c C-q: Built-in table editor.
(line 119) (line 125)
* C-c C-r: Visibility cycling. (line 32) * C-c C-r: Visibility cycling. (line 32)
* C-c C-s <1>: Agenda commands. (line 142) * C-c C-s <1>: Agenda commands. (line 145)
* C-c C-s: Creating timestamps. (line 48) * C-c C-s: Creating timestamps. (line 48)
* C-c C-t <1>: Clocking work time. (line 26) * C-c C-t <1>: Clocking work time. (line 26)
* C-c C-t: TODO basics. (line 13) * C-c C-t: TODO basics. (line 13)
@ -5707,7 +5739,7 @@ Key Index
* C-c C-w: Creating timestamps. (line 41) * C-c C-w: Creating timestamps. (line 41)
* C-c C-x C-a: ARCHIVE tag. (line 28) * C-c C-x C-a: ARCHIVE tag. (line 28)
* C-c C-x C-b: Checkboxes. (line 38) * C-c C-x C-b: Checkboxes. (line 38)
* C-c C-x C-c: Agenda commands. (line 207) * C-c C-x C-c: Agenda commands. (line 210)
* C-c C-x C-d: Clocking work time. (line 34) * C-c C-x C-d: Clocking work time. (line 34)
* C-c C-x C-i: Clocking work time. (line 12) * C-c C-x C-i: Clocking work time. (line 12)
* C-c C-x C-k: Structure editing. (line 39) * C-c C-x C-k: Structure editing. (line 39)
@ -5718,14 +5750,14 @@ Key Index
* C-c C-x C-t: Custom time format. (line 12) * C-c C-x C-t: Custom time format. (line 12)
* C-c C-x C-u: Dynamic blocks. (line 21) * C-c C-x C-u: Dynamic blocks. (line 21)
* C-c C-x C-w <1>: Built-in table editor. * C-c C-x C-w <1>: Built-in table editor.
(line 108) (line 114)
* C-c C-x C-w: Structure editing. (line 39) * C-c C-x C-w: Structure editing. (line 39)
* C-c C-x C-x: Clocking work time. (line 30) * C-c C-x C-x: Clocking work time. (line 30)
* C-c C-x C-y <1>: Built-in table editor. * C-c C-x C-y <1>: Built-in table editor.
(line 112) (line 118)
* C-c C-x C-y: Structure editing. (line 46) * C-c C-x C-y: Structure editing. (line 46)
* C-c C-x M-w <1>: Built-in table editor. * C-c C-x M-w <1>: Built-in table editor.
(line 105) (line 111)
* C-c C-x M-w: Structure editing. (line 43) * C-c C-x M-w: Structure editing. (line 43)
* C-c C-y <1>: Clocking work time. (line 21) * C-c C-y <1>: Clocking work time. (line 21)
* C-c C-y: Creating timestamps. (line 66) * C-c C-y: Creating timestamps. (line 66)
@ -5739,7 +5771,7 @@ Key Index
* C-u C-c $: Moving subtrees. (line 12) * C-u C-c $: Moving subtrees. (line 12)
* C-u C-c .: Creating timestamps. (line 16) * C-u C-c .: Creating timestamps. (line 16)
* C-u C-c =: Built-in table editor. * C-u C-c =: Built-in table editor.
(line 139) (line 145)
* C-u C-c C-l: Handling links. (line 43) * C-u C-c C-l: Handling links. (line 43)
* C-u C-c C-x C-a: ARCHIVE tag. (line 31) * C-u C-c C-x C-a: ARCHIVE tag. (line 31)
* C-u C-c C-x C-u <1>: Dynamic blocks. (line 22) * C-u C-c C-x C-u <1>: Dynamic blocks. (line 22)
@ -5748,12 +5780,12 @@ Key Index
* 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 204) * H: Agenda commands. (line 207)
* i: Agenda commands. (line 185) * i: Agenda commands. (line 188)
* I: Agenda commands. (line 165) * I: Agenda commands. (line 168)
* l: Agenda commands. (line 51) * l: Agenda commands. (line 51)
* L: Agenda commands. (line 32) * L: Agenda commands. (line 32)
* M: Agenda commands. (line 191) * M: Agenda commands. (line 194)
* 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.
@ -5774,7 +5806,7 @@ Key Index
* M-S-<down> <2>: Plain lists. (line 59) * M-S-<down> <2>: Plain lists. (line 59)
* M-S-<down>: Structure editing. (line 36) * M-S-<down>: Structure editing. (line 36)
* M-S-<left> <1>: The date/time prompt. * M-S-<left> <1>: The date/time prompt.
(line 50) (line 51)
* M-S-<left> <2>: Built-in table editor. * M-S-<left> <2>: Built-in table editor.
(line 76) (line 76)
* M-S-<left> <3>: Plain lists. (line 65) * M-S-<left> <3>: Plain lists. (line 65)
@ -5783,7 +5815,7 @@ Key Index
* M-S-<RET> <2>: Plain lists. (line 52) * M-S-<RET> <2>: Plain lists. (line 52)
* M-S-<RET>: Structure editing. (line 18) * M-S-<RET>: Structure editing. (line 18)
* M-S-<right> <1>: The date/time prompt. * M-S-<right> <1>: The date/time prompt.
(line 47) (line 48)
* M-S-<right> <2>: Built-in table editor. * M-S-<right> <2>: Built-in table editor.
(line 79) (line 79)
* M-S-<right> <3>: Plain lists. (line 65) * M-S-<right> <3>: Plain lists. (line 65)
@ -5794,54 +5826,54 @@ Key Index
* M-S-<up>: Structure editing. (line 33) * M-S-<up>: Structure editing. (line 33)
* mouse-1 <1>: Agenda commands. (line 35) * mouse-1 <1>: Agenda commands. (line 35)
* mouse-1 <2>: The date/time prompt. * mouse-1 <2>: The date/time prompt.
(line 32) (line 33)
* mouse-1: Handling links. (line 72) * mouse-1: Handling links. (line 72)
* mouse-2 <1>: Agenda commands. (line 35) * mouse-2 <1>: Agenda commands. (line 35)
* mouse-2: Handling links. (line 72) * mouse-2: Handling links. (line 72)
* mouse-3 <1>: Agenda commands. (line 28) * mouse-3 <1>: Agenda commands. (line 28)
* mouse-3: Handling links. (line 77) * mouse-3: Handling links. (line 77)
* n: Agenda commands. (line 19) * n: Agenda commands. (line 19)
* O: Agenda commands. (line 167) * O: Agenda commands. (line 170)
* o: Agenda commands. (line 59) * o: Agenda commands. (line 59)
* P: Agenda commands. (line 129) * P: Agenda commands. (line 132)
* p: Agenda commands. (line 20) * p: Agenda commands. (line 20)
* q: Agenda commands. (line 214) * q: Agenda commands. (line 217)
* r <1>: Agenda commands. (line 76) * r <1>: Agenda commands. (line 76)
* r: Global TODO list. (line 20) * r: Global TODO list. (line 20)
* S: Agenda commands. (line 195) * S: Agenda commands. (line 198)
* s: Agenda commands. (line 83) * s: Agenda commands. (line 83)
* S-<down> <1>: Agenda commands. (line 138) * S-<down> <1>: Agenda commands. (line 141)
* S-<down> <2>: The date/time prompt. * S-<down> <2>: The date/time prompt.
(line 41) (line 42)
* S-<down> <3>: Creating timestamps. (line 58) * S-<down> <3>: Creating timestamps. (line 58)
* S-<down> <4>: Priorities. (line 25) * S-<down> <4>: Priorities. (line 25)
* S-<down>: Plain lists. (line 55) * S-<down>: Plain lists. (line 55)
* S-<left> <1>: Agenda commands. (line 156) * S-<left> <1>: Agenda commands. (line 159)
* S-<left> <2>: The date/time prompt. * S-<left> <2>: The date/time prompt.
(line 38) (line 39)
* S-<left> <3>: Creating timestamps. (line 53) * S-<left> <3>: Creating timestamps. (line 53)
* S-<left>: TODO basics. (line 20) * S-<left>: TODO basics. (line 20)
* S-<RET>: Built-in table editor. * S-<RET>: Built-in table editor.
(line 170) (line 176)
* S-<right> <1>: Agenda commands. (line 148) * S-<right> <1>: Agenda commands. (line 151)
* S-<right> <2>: The date/time prompt. * S-<right> <2>: The date/time prompt.
(line 35) (line 36)
* S-<right> <3>: Creating timestamps. (line 53) * S-<right> <3>: Creating timestamps. (line 53)
* S-<right>: TODO basics. (line 20) * S-<right>: TODO basics. (line 20)
* S-<TAB> <1>: Built-in table editor. * S-<TAB> <1>: Built-in table editor.
(line 61) (line 61)
* S-<TAB>: Visibility cycling. (line 22) * S-<TAB>: Visibility cycling. (line 22)
* S-<up> <1>: Agenda commands. (line 132) * S-<up> <1>: Agenda commands. (line 135)
* S-<up> <2>: The date/time prompt. * S-<up> <2>: The date/time prompt.
(line 44) (line 45)
* S-<up> <3>: Creating timestamps. (line 58) * S-<up> <3>: Creating timestamps. (line 58)
* S-<up> <4>: Priorities. (line 25) * S-<up> <4>: Priorities. (line 25)
* S-<up>: Plain lists. (line 55) * S-<up>: Plain lists. (line 55)
* T: Agenda commands. (line 113) * T: Agenda commands. (line 116)
* t: Agenda commands. (line 103) * t: Agenda commands. (line 103)
* w: Agenda commands. (line 62) * w: Agenda commands. (line 62)
* x: Agenda commands. (line 217) * x: Agenda commands. (line 220)
* X: Agenda commands. (line 170) * X: Agenda commands. (line 173)
 
@ -5860,142 +5892,143 @@ Ref: Visibility cycling-Footnote-122201
Ref: Visibility cycling-Footnote-222259 Ref: Visibility cycling-Footnote-222259
Node: Motion22309 Node: Motion22309
Node: Structure editing23093 Node: Structure editing23093
Node: Archiving25409 Node: Archiving25919
Node: ARCHIVE tag25967 Node: ARCHIVE tag26477
Node: Moving subtrees27760 Node: Moving subtrees28270
Node: Sparse trees28801 Node: Sparse trees29311
Ref: Sparse trees-Footnote-130932 Ref: Sparse trees-Footnote-131442
Ref: Sparse trees-Footnote-231024 Ref: Sparse trees-Footnote-231534
Node: Plain lists31139 Node: Plain lists31649
Ref: Plain lists-Footnote-134664 Ref: Plain lists-Footnote-135174
Ref: Plain lists-Footnote-235021 Ref: Plain lists-Footnote-235531
Node: Tables35205 Node: Tables35715
Node: Built-in table editor35753 Node: Built-in table editor36263
Node: Narrow columns43361 Node: Narrow columns44291
Ref: Narrow columns-Footnote-145300 Ref: Narrow columns-Footnote-146230
Node: Table calculations45346 Node: Table calculations46276
Node: Formula syntax46666 Node: Formula syntax47596
Ref: Formula syntax-Footnote-149571 Ref: Formula syntax-Footnote-150501
Node: Lisp formulas49871 Node: Lisp formulas50801
Node: Column formulas50660 Node: Column formulas51590
Node: Advanced features52422 Node: Advanced features53352
Node: Named-field formulas55676 Node: Named-field formulas56606
Node: Editing/debugging formulas56316 Node: Editing/debugging formulas57246
Node: Appetizer58074 Node: Appetizer59004
Node: orgtbl-mode59177 Node: orgtbl-mode60107
Node: table.el59668 Node: table.el60598
Node: Hyperlinks60645 Node: Hyperlinks61575
Node: Link format61418 Node: Link format62348
Node: Internal links62711 Node: Internal links63641
Ref: Internal links-Footnote-164700 Ref: Internal links-Footnote-165630
Node: Radio targets64832 Node: Radio targets65762
Node: CamelCase links65547 Node: CamelCase links66477
Node: External links66141 Node: External links67071
Node: Handling links68272 Node: Handling links69202
Ref: Handling links-Footnote-172924 Ref: Handling links-Footnote-173854
Ref: Handling links-Footnote-273161 Ref: Handling links-Footnote-274091
Node: Link abbreviations73235 Node: Link abbreviations74165
Node: Search options74914 Node: Search options75844
Ref: Search options-Footnote-176692 Ref: Search options-Footnote-177624
Node: Custom searches76773 Node: Custom searches77705
Node: Remember77821 Node: Remember78753
Node: TODO items81511 Node: TODO items82447
Node: TODO basics82493 Node: TODO basics83429
Node: TODO extensions84020 Node: TODO extensions84956
Node: Workflow states84815 Node: Workflow states85751
Node: TODO types85683 Node: TODO types86619
Ref: TODO types-Footnote-187341 Ref: TODO types-Footnote-188277
Node: Per file keywords87423 Node: Per file keywords88359
Ref: Per file keywords-Footnote-188877 Ref: Per file keywords-Footnote-189813
Node: Priorities89078 Node: Priorities90014
Node: Breaking down tasks90322 Node: Breaking down tasks91258
Ref: Breaking down tasks-Footnote-190841 Ref: Breaking down tasks-Footnote-191777
Node: Checkboxes90937 Node: Checkboxes91873
Node: Timestamps93692 Node: Timestamps94628
Node: Time stamps94153 Node: Time stamps95089
Ref: Time stamps-Footnote-197642 Ref: Time stamps-Footnote-198583
Node: Creating timestamps97758 Ref: Time stamps-Footnote-298699
Node: The date/time prompt100384 Node: Creating timestamps98854
Ref: The date/time prompt-Footnote-1102077 Node: The date/time prompt101480
Node: Custom time format102183 Ref: The date/time prompt-Footnote-1103246
Node: Progress logging103742 Node: Custom time format103352
Node: Closing items104271 Node: Progress logging104911
Node: Clocking work time105175 Node: Closing items105440
Ref: Clocking work time-Footnote-1108799 Node: Clocking work time106344
Node: Tags108925 Ref: Clocking work time-Footnote-1109968
Node: Tag inheritance109687 Node: Tags110094
Node: Setting tags110624 Node: Tag inheritance110856
Ref: Setting tags-Footnote-1114823 Node: Setting tags111793
Ref: Setting tags-Footnote-2114935 Ref: Setting tags-Footnote-1115992
Node: Tag searches115018 Ref: Setting tags-Footnote-2116104
Node: Agenda views117018 Node: Tag searches116187
Node: Agenda files119111 Node: Agenda views118416
Ref: Agenda files-Footnote-1120071 Node: Agenda files120509
Ref: Agenda files-Footnote-2120220 Ref: Agenda files-Footnote-1121469
Node: Agenda dispatcher120413 Ref: Agenda files-Footnote-2121618
Node: Weekly/Daily agenda122030 Node: Agenda dispatcher121811
Node: Calendar/Diary integration122995 Node: Weekly/Daily agenda123428
Node: Global TODO list124333 Node: Calendar/Diary integration124393
Node: Matching headline tags126493 Node: Global TODO list125731
Node: Timeline127551 Node: Matching headline tags127891
Node: Presentation and sorting128214 Node: Timeline128949
Node: Categories128992 Node: Presentation and sorting129612
Node: Time-of-day specifications129656 Node: Categories130390
Node: Sorting of agenda items131634 Node: Time-of-day specifications131054
Node: Agenda commands132916 Node: Sorting of agenda items133032
Node: Custom agenda views139085 Node: Agenda commands134314
Node: Storing searches139760 Node: Custom agenda views140552
Node: Block agenda141672 Node: Storing searches141227
Node: Setting Options142902 Node: Block agenda143139
Node: Batch processing145614 Node: Setting Options144369
Node: Embedded LaTeX146744 Node: Batch processing147081
Ref: Embedded LaTeX-Footnote-1147836 Node: Embedded LaTeX148211
Node: Math symbols148026 Ref: Embedded LaTeX-Footnote-1149303
Node: Subscripts and Superscripts148791 Node: Math symbols149493
Node: LaTeX fragments149635 Node: Subscripts and Superscripts150258
Ref: LaTeX fragments-Footnote-1151743 Node: LaTeX fragments151102
Node: Processing LaTeX fragments152005 Ref: LaTeX fragments-Footnote-1153210
Node: CDLaTeX mode152951 Node: Processing LaTeX fragments153472
Ref: CDLaTeX mode-Footnote-1155435 Node: CDLaTeX mode154418
Node: Exporting155583 Ref: CDLaTeX mode-Footnote-1156902
Node: ASCII export156897 Node: Exporting157050
Node: HTML export158187 Node: ASCII export158364
Node: XOXO export161023 Node: HTML export159654
Node: iCalendar export161462 Node: XOXO export162490
Node: Text interpretation163285 Node: iCalendar export162929
Node: Comment lines163764 Node: Text interpretation164752
Node: Enhancing text164235 Node: Comment lines165231
Node: Export options165927 Node: Enhancing text165702
Node: Publishing167594 Node: Export options167394
Ref: Publishing-Footnote-1168390 Node: Publishing169061
Node: Configuration168586 Ref: Publishing-Footnote-1169857
Node: Project alist169304 Node: Configuration170053
Node: Sources and destinations170370 Node: Project alist170771
Node: Selecting files171100 Node: Sources and destinations171837
Node: Publishing action171848 Node: Selecting files172567
Node: Publishing options173081 Node: Publishing action173315
Node: Publishing links175233 Node: Publishing options174548
Node: Project page index176746 Node: Publishing links176700
Node: Sample configuration177524 Node: Project page index178213
Node: Simple example178016 Node: Sample configuration178991
Node: Complex example178689 Node: Simple example179483
Node: Triggering publication180765 Node: Complex example180156
Node: Miscellaneous181450 Node: Triggering publication182232
Node: Completion182084 Node: Miscellaneous182917
Node: Customization183555 Node: Completion183551
Node: In-buffer settings184140 Node: Customization185022
Node: The very busy C-c C-c key187759 Node: In-buffer settings185607
Node: Clean view189403 Node: The very busy C-c C-c key189226
Node: TTY keys191980 Node: Clean view190870
Node: Interaction193589 Node: TTY keys193447
Node: Cooperation193986 Node: Interaction195056
Node: Conflicts195853 Node: Cooperation195453
Node: Bugs197445 Node: Conflicts197320
Node: Extensions and Hacking199068 Node: Bugs198912
Node: Extensions199554 Node: Extensions and Hacking200535
Node: Dynamic blocks201355 Node: Extensions201021
Node: History and Acknowledgments203282 Node: Dynamic blocks202808
Node: Index208289 Node: History and Acknowledgments204735
Node: Key Index235377 Node: Index209742
Node: Key Index236903
 
End Tag Table End Tag Table

628
org.el
View file

@ -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.56 ;; Version: 4.57a
;; ;;
;; This file is part of GNU Emacs. ;; This file is part of GNU Emacs.
;; ;;
@ -61,6 +61,25 @@
;; ;;
;; Recent changes ;; Recent changes
;; -------------- ;; --------------
;; Version 4.57a
;; - Bug fixes for XEmacs.
;;
;; Version 4.57
;; - Sorting of outline items on same level.
;; - Sorting tables automatically selects line range between hlines.
;; - Changes in Agenda buffer
;; - `C-c C-o' follows a link in the current line.
;; - `C-c $' archives the subtree corresponding to the line.
;; - Changing dates with S-left and S-right show new date in agenda,
;; but still do not move the entry to the new date.
;; - new option `org-agenda-skip-scheduled-if-done'.
;; - Agenda and sparse tree construction using tag matches can now
;; use regular expressions.
;; - When prompted for a date/time, entering "+7" indicates a date
;; 7 days from now - but only this is the only thing you give.
;; - Custom time formats also apply to exported html and ascii.
;; - Bug fixes.
;;
;; Version 4.56 ;; Version 4.56
;; - `C-k' in agenda kills current line and corresponding subtree in file. ;; - `C-k' in agenda kills current line and corresponding subtree in file.
;; - XEmacs compatibility issues fixed, in particular tag alignment. ;; - XEmacs compatibility issues fixed, in particular tag alignment.
@ -101,6 +120,7 @@
(eval-when-compile (eval-when-compile
(require 'cl) (require 'cl)
(require 'gnus-sum)
(require 'calendar)) (require 'calendar))
;; For XEmacs, noutline is not yet provided by outline.el, so arrange for ;; For XEmacs, noutline is not yet provided by outline.el, so arrange for
;; the file noutline.el being loaded. ;; the file noutline.el being loaded.
@ -113,7 +133,7 @@
;;; Customization variables ;;; Customization variables
(defvar org-version "4.56" (defvar org-version "4.57a"
"The version number of the file org.el.") "The version number of the file org.el.")
(defun org-version () (defun org-version ()
(interactive) (interactive)
@ -667,6 +687,7 @@ this variable requires a restart of Emacs to become effective."
:group 'org-table-settings :group 'org-table-settings
:type 'string) :type 'string)
;; FIXME: I am no longer sure if including HEX is a good idea.
(defcustom org-table-number-regexp (defcustom org-table-number-regexp
"^\\([<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*\\|\\(0[xX]\\)?[0-9a-fA-F]+\\)$" "^\\([<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*\\|\\(0[xX]\\)?[0-9a-fA-F]+\\)$"
"Regular expression for recognizing numbers in table columns. "Regular expression for recognizing numbers in table columns.
@ -1310,11 +1331,14 @@ the following lines anywhere in the buffer:
(set :tag "on, with notes" :greedy t :value (done) (set :tag "on, with notes" :greedy t :value (done)
(const done) (const clock-out)))) (const done) (const clock-out))))
(defcustom org-log-note-headings '((done . "CLOSING NOTE") (clock-out . "")) (defcustom org-log-note-headings '((done . "CLOSING NOTE %t") (clock-out . ""))
"Headings for notes added when clocking out or closing TODO items. "Headings for notes added when clocking out or closing TODO items.
The value is an alist, with the car being a sympol indicating the note The value is an alist, with the car being a sympol indicating the note
context, and the cdr is the heading to be used. The heading may also be the context, and the cdr is the heading to be used. The heading may also be the
empty string." empty string.
%t in the heading will be replaced by a time stamp
%u will be replaced by the user name
%U will be replaced by the full user name."
:group 'org-todo :group 'org-todo
:type '(list :greedy t :type '(list :greedy t
(cons (const :tag "Heading when closing an item" done) string) (cons (const :tag "Heading when closing an item" done) string)
@ -1380,6 +1404,14 @@ These are overlayed over the default ISO format if the variable
:group 'org-time :group 'org-time
:type 'sexp) :type 'sexp)
(defun org-time-stamp-format (&optional long inactive)
"Get the right format for a time string."
(let ((f (if long (cdr org-time-stamp-formats)
(car org-time-stamp-formats))))
(if inactive
(concat "[" (substring f 1 -1) "]")
f)))
(defcustom org-deadline-warning-days 30 (defcustom org-deadline-warning-days 30
"No. of days before expiration during which a deadline becomes active. "No. of days before expiration during which a deadline becomes active.
This variable governs the display in sparse trees and in the agenda." This variable governs the display in sparse trees and in the agenda."
@ -1519,8 +1551,7 @@ agenda file per line."
(repeat :tag "List of files" file) (repeat :tag "List of files" file)
(file :tag "Store list in a file\n" :value "~/.agenda_files"))) (file :tag "Store list in a file\n" :value "~/.agenda_files")))
(defcustom org-agenda-custom-commands ;'(("w" todo "WAITING")) (defcustom org-agenda-custom-commands '(("w" todo "WAITING"))
'(("w" todo "WAITING" ((aaa 1) (bbb 2))))
"Custom commands for the agenda. "Custom commands for the agenda.
These commands will be offered on the splash screen displayed by the These commands will be offered on the splash screen displayed by the
agenda dispatcher \\[org-agenda]. Each entry is a list like this: agenda dispatcher \\[org-agenda]. Each entry is a list like this:
@ -1632,6 +1663,11 @@ The idea behind this is that such items will appear in the agenda anyway."
:group 'org-todo :group 'org-todo
:type 'boolean) :type 'boolean)
(defcustom org-agenda-skip-scheduled-if-done nil
"Non-nil means don't show scheduled items in agenda when they are done.
This is relevant for the daily/weekly agenda, not for the TODO list."
:group 'org-agenda
:type 'boolean)
(defcustom org-timeline-show-empty-dates 3 (defcustom org-timeline-show-empty-dates 3
"Non-nil means, `org-timeline' also shows dates without an entry. "Non-nil means, `org-timeline' also shows dates without an entry.
@ -1649,7 +1685,7 @@ N days, just insert a special line indicating the size of the gap."
"When set, remote killing from the agenda buffer needs confirmation. "When set, remote killing from the agenda buffer needs confirmation.
When t, a confirmation is always needed. When a number N, confirmation is When t, a confirmation is always needed. When a number N, confirmation is
only needed when the text to be killed contains more than N non-white lines." only needed when the text to be killed contains more than N non-white lines."
:group 'org-agenda ;; FIXME :group 'org-agenda
:type '(choice :type '(choice
(const :tag "Never" nil) (const :tag "Never" nil)
(const :tag "Always" t) (const :tag "Always" t)
@ -4205,6 +4241,120 @@ in the region."
(and org-auto-align-tags (org-set-tags nil t)) (and org-auto-align-tags (org-set-tags nil t))
(if org-adapt-indentation (org-fixup-indentation diff)))) (if org-adapt-indentation (org-fixup-indentation diff))))
(defun org-sort (with-case)
"Call `org-sort-entries' or `org-table-sort-lines', depending on context."
(interactive "P")
(if (org-at-table-p)
(org-call-with-arg 'org-table-sort-lines with-case)
(org-call-with-arg 'org-sort-entries with-case)))
(defun org-sort-entries (&optional with-case sorting-type)
"Sort entries on a certain level of an outline tree.
If there is an active region, the entries in the region are sorted.
If not, the children of the entry at point are sorted.
Sorting can be alphabetically, numerically, and by date/time as given by
the first time stamp in the entry. The command prompts for the sorting
type unless it has been given to the function through the SORTING-TYPE
argument, which needs to a character, any of (?n ?N ?a ?A ?t ?T).
Comparing entries ignores case by default. However, with an optional argument
WITH-CASE, the sorting considers case as well. With two prefix arguments
`C-u C-u', sorting is case-sensitive and duplicate entries will be removed."
(interactive "P")
(let ((unique (equal with-case '(16)))
start beg end entries stars re re2 p nentries (nremoved 0) last txt)
;; Find beginning and end of region to sort
(if (org-region-active-p)
(progn
;; we will sort the region
(setq end (region-end))
(goto-char (1- (setq start (region-beginning)))))
;; we will sort the children of the current headline
(setq start (point) end (org-end-of-subtree))
(goto-char start)
(show-subtree))
(outline-next-heading) ; this is the first heading to be included
(setq beg (point))
(if (>= (point) end) (error "Nothing to sort"))
(looking-at "\\(\\*+\\)")
(setq stars (match-string 1)
re (concat "^" (regexp-quote stars) " +")
re2 (concat "^" (regexp-quote (substring stars 0 -1)) "[^*]")
txt (buffer-substring beg end))
(if (not (equal (substring txt -1) "\n")) (setq txt (concat txt "\n")))
(if (string-match re2 txt)
(error "Region to sort contains a level above the first entry"))
;; Make a list that can be sorted.
;; The car is the string for comparison, the cdr is the subtree
(message "Sorting entries...")
(setq entries
(mapcar
(lambda (x)
(string-match "^.*\\(\n.*\\)?" x) ; take two lines
(cons (match-string 0 x) x))
(org-split-string txt re)))
;; Sort the list
(setq entries (org-do-sort
entries
(if (org-region-active-p) "region" "children")
with-case sorting-type))
;; Delete the old stuff
(goto-char beg)
(kill-region beg end)
(setq nentries (length entries))
;; Insert the sorted entries, and remove duplicates if this is required
(while (setq p (pop entries))
(if (and unique (equal last (setq last (org-trim (cdr p)))))
(setq nremoved (1+ nremoved)) ; same entry as before, skip it
(insert stars " " (cdr p))))
(goto-char start)
(message "Sorting entries...done (%d entries%s)"
nentries
(if unique (format ", %d duplicates removed" nremoved) ""))))
(defun org-do-sort (table what &optional with-case sorting-type)
"Sort TABLE of WHAT according to SORTING-TYPE.
The user will be prompted for the SORTING-TYPE if the call to this
function does not specify it. WHAT is only for the prompt, to indicate
what is being sorted. The sorting key will be extracted from
the car of the elements of the table.
If WITH-CASE is non-nil, the sorting will be case-sensitive."
(unless sorting-type
(message
"Sort %s:[a]lphabetically [n]umerically [t]ime. A/N/T means reversed:"
what)
(setq sorting-type (read-char-exclusive)))
(let ((dcst (downcase sorting-type))
extractfun comparefun)
;; Define the appropriate functions
(cond
((= dcst ?n)
(setq extractfun 'string-to-number
comparefun (if (= dcst sorting-type) '< '>)))
((= dcst ?a)
(setq extractfun (if with-case 'identity 'downcase)
comparefun (if (= dcst sorting-type)
'string<
(lambda (a b) (and (not (string< a b))
(not (string= a b)))))))
((= dcst ?t)
(setq extractfun
(lambda (x)
(if (string-match org-ts-regexp x)
(time-to-seconds
(org-time-string-to-time (match-string 0 x)))
0))
comparefun (if (= dcst sorting-type) '< '>)))
(t (error "Invalid sorting type `%c'" sorting-type)))
(sort (mapcar (lambda (x) (cons (funcall extractfun (car x)) (cdr x)))
table)
(lambda (a b) (funcall comparefun (car a) (car b))))))
(defun org-map-tree (fun) (defun org-map-tree (fun)
"Call FUN for every heading underneath the current one." "Call FUN for every heading underneath the current one."
(org-back-to-heading) (org-back-to-heading)
@ -4933,7 +5083,8 @@ this heading. "
(org-paste-subtree (1+ level)) (org-paste-subtree (1+ level))
;; Mark the entry as done, i.e. set to last work in org-todo-keywords ;; Mark the entry as done, i.e. set to last work in org-todo-keywords
(if org-archive-mark-done (if org-archive-mark-done
(org-todo (length org-todo-keywords))) (let (org-log-done)
(org-todo (length org-todo-keywords))))
;; Move cursor to right after the TODO keyword ;; Move cursor to right after the TODO keyword
(when org-archive-stamp-time (when org-archive-stamp-time
(beginning-of-line 1) (beginning-of-line 1)
@ -5361,7 +5512,8 @@ At all other locations, this simply calls `ispell-complete-word'."
(cond ((eq completion t) (cond ((eq completion t)
(if (equal type :opt) (if (equal type :opt)
(insert (substring (cdr (assoc (upcase pattern) table)) (insert (substring (cdr (assoc (upcase pattern) table))
(length pattern))))) (length pattern)))
(if (equal type :tag) (insert ":"))))
((null completion) ((null completion)
(message "Can't find completion for \"%s\"" pattern) (message "Can't find completion for \"%s\"" pattern)
(ding)) (ding))
@ -5562,6 +5714,7 @@ be removed."
(and (eq elt 'closed) (and (eq elt 'closed)
(re-search-forward org-closed-time-regexp nil t))) (re-search-forward org-closed-time-regexp nil t)))
(replace-match "") (replace-match "")
(if (looking-at "--+<[^>]+>") (replace-match ""))
(if (looking-at " +") (replace-match "")))) (if (looking-at " +") (replace-match ""))))
(goto-char (point-max)) (goto-char (point-max))
(when what (when what
@ -5573,7 +5726,7 @@ be removed."
" ") " ")
(org-insert-time-stamp time nil (eq what 'closed)) (org-insert-time-stamp time nil (eq what 'closed))
(end-of-line 1) (end-of-line 1)
(org-add-log-maybe 'done)) (and (eq what 'closed) (org-add-log-maybe 'done)))
(goto-char (point-min)) (goto-char (point-min))
(widen) (widen)
(if (looking-at "[ \t]+\r?\n") (if (looking-at "[ \t]+\r?\n")
@ -5620,7 +5773,16 @@ be removed."
(if (string-match "\\s-+\\'" txt) (if (string-match "\\s-+\\'" txt)
(setq txt (replace-match "" t t txt))) (setq txt (replace-match "" t t txt)))
(setq lines (org-split-string txt "\n")) (setq lines (org-split-string txt "\n"))
(and note (string-match "\\S-" note) (push note lines)) (when (and note (string-match "\\S-" note))
(setq note
(org-replace-escapes
note
(list (cons "%u" user-login-name)
(cons "%U" user-full-name)
(cons "%t" (format-time-string
(org-time-stamp-format 'long 'inactive)
(current-time))))))
(push note lines))
(save-excursion (save-excursion
(set-buffer (marker-buffer org-log-note-marker)) (set-buffer (marker-buffer org-log-note-marker))
(save-excursion (save-excursion
@ -5759,6 +5921,15 @@ look like when opend with successive calls to `org-cycle'."
(if (featurep 'xemacs) (extent-start-position o) (overlay-start o))) (if (featurep 'xemacs) (extent-start-position o) (overlay-start o)))
(defun org-overlay-end (o) (defun org-overlay-end (o)
(if (featurep 'xemacs) (extent-end-position o) (overlay-end o))) (if (featurep 'xemacs) (extent-end-position o) (overlay-end o)))
(defun org-find-overlays (prop &optional pos delete)
"Find all overlays specifying PROP at POS or point.
If DELETE is non-nil, delete all those overlays."
(let ((overlays (org-overlays-at (or pos (point))))
ov found)
(while (setq ov (pop overlays))
(if (org-overlay-get ov prop)
(if delete (org-delete-overlay ov) (push ov found))))
found))
(defun org-highlight-new-match (beg end) (defun org-highlight-new-match (beg end)
"Highlight from BEG to END and mark the highlight is an occur headline." "Highlight from BEG to END and mark the highlight is an occur headline."
@ -5913,6 +6084,7 @@ hour and minute. For example,
22 sept 0:34 --> currentyear-09-22 0:34 22 sept 0:34 --> currentyear-09-22 0:34
12 --> currentyear-currentmonth-12 12 --> currentyear-currentmonth-12
Fri --> nearest Friday (today or later) Fri --> nearest Friday (today or later)
+4 --> four days from today (only if +N is the only thing given)
etc. etc.
The function understands only English month and weekday abbreviations, The function understands only English month and weekday abbreviations,
but this can be configured with the variables `parse-time-months' and but this can be configured with the variables `parse-time-months' and
@ -5953,7 +6125,7 @@ used to insert the time stamp into the buffer to include the time."
(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))
ans ans1 ans2 ans ans1 ans2 (deltadays 0)
second minute hour day month year tl wday wday1) second minute hour day month year tl wday wday1)
(cond (cond
@ -6009,6 +6181,9 @@ used to insert the time stamp into the buffer to include the time."
(setq ans (read-string prompt "" nil timestr)))) (setq ans (read-string prompt "" nil timestr))))
(org-detach-overlay org-date-ovl) (org-detach-overlay org-date-ovl)
(if (string-match "^[ \t]*[-+][0-9]+[ \t]*$" ans)
(setq deltadays (string-to-number ans) ans ""))
(if (string-match (if (string-match
"^ *\\(\\([0-9]+\\)-\\)?\\([0-1]?[0-9]\\)-\\([0-3]?[0-9]\\)\\([^-0-9]\\|$\\)" ans) "^ *\\(\\([0-9]+\\)-\\)?\\([0-1]?[0-9]\\)-\\([0-3]?[0-9]\\)\\([^-0-9]\\|$\\)" ans)
(progn (progn
@ -6028,6 +6203,7 @@ used to insert the time stamp into the buffer to include the time."
minute (or (nth 1 tl) (string-to-number (format-time-string "%M" ct))) minute (or (nth 1 tl) (string-to-number (format-time-string "%M" ct)))
second (or (nth 0 tl) 0) second (or (nth 0 tl) 0)
wday (nth 6 tl)) wday (nth 6 tl))
(setq day (+ day deltadays))
(when (and wday (not (nth 3 tl))) (when (and wday (not (nth 3 tl)))
;; Weekday was given, but no day, so pick that day in the week ;; Weekday was given, but no day, so pick that day in the week
;; on or after the derived date. ;; on or after the derived date.
@ -6112,7 +6288,7 @@ The command returns the inserted time stamp."
(with-hm (and (nth 1 t1) (nth 2 t1))) (with-hm (and (nth 1 t1) (nth 2 t1)))
(inactive (= (char-before (1- beg)) ?\[)) (inactive (= (char-before (1- beg)) ?\[))
(tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats)) (tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats))
(time (mapcar (lambda (x) (or x 0)) t1)) (time (org-fix-decoded-time t1))
(str (org-add-props (str (org-add-props
(format-time-string (format-time-string
(substring tf 1 -1) (apply 'encode-time time)) (substring tf 1 -1) (apply 'encode-time time))
@ -6127,6 +6303,39 @@ The command returns the inserted time stamp."
(put-text-property beg end 'end-glyph (make-glyph str))) (put-text-property beg end 'end-glyph (make-glyph str)))
(put-text-property beg end 'display str)))) (put-text-property beg end 'display str))))
(defun org-translate-time (string)
"Translate all timestamps in STRING to custom format.
But do this only if the variable `org-display-custom-times' is set."
(when org-display-custom-times
(save-match-data
(let* ((start 0)
(re org-ts-regexp-both)
t1 with-hm inactive tf time str beg end)
(while (setq start (string-match re string start))
(setq beg (match-beginning 0)
end (match-end 0)
t1 (save-match-data
(org-parse-time-string (substring string beg end) t))
with-hm (and (nth 1 t1) (nth 2 t1))
inactive (equal (substring string beg (1+ beg)) "[")
tf (funcall (if with-hm 'cdr 'car)
org-time-stamp-custom-formats)
time (org-fix-decoded-time t1)
str (format-time-string
(concat
(if inactive "[" "<") (substring tf 1 -1)
(if inactive "]" ">"))
(apply 'encode-time time))
string (replace-match str t t string)
start (+ start (length str)))))))
string)
(defun org-fix-decoded-time (time)
"Set 0 instead of nil for the first 6 elements of time.
Don't touch the rest."
(let ((n 0))
(mapcar (lambda (x) (if (< (setq n (1+ n)) 7) (or x 0) x)) time)))
(defun org-days-to-time (timestamp-string) (defun org-days-to-time (timestamp-string)
"Difference between TIMESTAMP-STRING and now in days." "Difference between TIMESTAMP-STRING and now in days."
(- (time-to-days (org-time-string-to-time timestamp-string)) (- (time-to-days (org-time-string-to-time timestamp-string))
@ -6869,10 +7078,15 @@ The following commands are available:
(if (fboundp 'run-mode-hooks) 'run-mode-hooks 'run-hooks) (if (fboundp 'run-mode-hooks) 'run-mode-hooks 'run-hooks)
(list 'org-agenda-mode-hook))) (list 'org-agenda-mode-hook)))
;(substitute-key-definition 'undo 'org-agenda-undo
; org-agenda-mode-map global-map)
(define-key org-agenda-mode-map "\C-i" 'org-agenda-goto) (define-key org-agenda-mode-map "\C-i" 'org-agenda-goto)
(define-key org-agenda-mode-map [(tab)] 'org-agenda-goto) (define-key org-agenda-mode-map [(tab)] 'org-agenda-goto)
(define-key org-agenda-mode-map "\C-m" 'org-agenda-switch-to) (define-key org-agenda-mode-map "\C-m" 'org-agenda-switch-to)
(define-key org-agenda-mode-map "\C-k" 'org-agenda-kill) (define-key org-agenda-mode-map "\C-k" 'org-agenda-kill)
(define-key org-agenda-mode-map "\C-c$" 'org-agenda-archive)
(define-key org-agenda-mode-map "$" 'org-agenda-archive)
(define-key org-agenda-mode-map "\C-c\C-o" 'org-agenda-open-link)
(define-key org-agenda-mode-map " " 'org-agenda-show) (define-key org-agenda-mode-map " " 'org-agenda-show)
(define-key org-agenda-mode-map "\C-c\C-t" 'org-agenda-todo) (define-key org-agenda-mode-map "\C-c\C-t" 'org-agenda-todo)
(define-key org-agenda-mode-map "o" 'delete-other-windows) (define-key org-agenda-mode-map "o" 'delete-other-windows)
@ -6954,51 +7168,55 @@ The following commands are available:
:style toggle :selected org-agenda-follow-mode :active t] :style toggle :selected org-agenda-follow-mode :active t]
"--" "--"
["Cycle TODO" org-agenda-todo t] ["Cycle TODO" org-agenda-todo t]
("Tags" ["Archive subtree" org-agenda-archive t]
["Show all Tags" org-agenda-show-tags t] ["Delete subtree" org-agenda-kill t]
["Set Tags" org-agenda-set-tags t])
("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]
["Increase Priority" org-agenda-priority-up t]
["Decrease Priority" org-agenda-priority-down t]
["Show Priority" org-agenda-show-priority t])
"--"
;; ["New agenda command" org-agenda t]
["Rebuild buffer" org-agenda-redo t]
["Save all Org-mode Buffers" org-save-all-org-buffers t]
"--" "--"
["Goto Today" org-agenda-goto-today (org-agenda-check-type nil 'agenda 'timeline)] ["Goto Today" org-agenda-goto-today (org-agenda-check-type nil 'agenda 'timeline)]
["Next Dates" org-agenda-later (org-agenda-check-type nil 'agenda)] ["Next Dates" org-agenda-later (org-agenda-check-type nil 'agenda)]
["Previous Dates" org-agenda-earlier (org-agenda-check-type nil 'agenda)] ["Previous Dates" org-agenda-earlier (org-agenda-check-type nil 'agenda)]
"--" "--"
["Day View" org-agenda-day-view :active (org-agenda-check-type nil 'agenda) ("Tags"
:style radio :selected (equal org-agenda-ndays 1)] ["Show all Tags" org-agenda-show-tags t]
["Week View" org-agenda-week-view :active (org-agenda-check-type nil 'agenda) ["Set Tags" org-agenda-set-tags t])
:style radio :selected (equal org-agenda-ndays 7)] ("Date/Schedule"
"--" ["Schedule" org-agenda-schedule t]
["Show Logbook entries" org-agenda-log-mode ["Set Deadline" org-agenda-deadline t]
:style toggle :selected org-agenda-show-log :active (org-agenda-check-type nil 'agenda 'timeline)] "--"
["Include Diary" org-agenda-toggle-diary ["Change date +1 day" org-agenda-date-later (org-agenda-check-type nil 'agenda 'timeline)]
:style toggle :selected org-agenda-include-diary :active (org-agenda-check-type nil 'agenda)] ["Change date -1 day" org-agenda-date-earlier (org-agenda-check-type nil 'agenda 'timeline)]
["Use Time Grid" org-agenda-toggle-time-grid ["Change date to ..." org-agenda-date-prompt (org-agenda-check-type nil 'agenda 'timeline)])
:style toggle :selected org-agenda-use-time-grid :active (org-agenda-check-type nil 'agenda)] ("Priority"
"--" ["Set Priority" org-agenda-priority t]
["New Diary Entry" org-agenda-diary-entry (org-agenda-check-type nil 'agenda 'timeline)] ["Increase Priority" org-agenda-priority-up t]
("Calendar Commands" ["Decrease Priority" org-agenda-priority-down t]
["Show Priority" org-agenda-show-priority t])
("Calendar/Diary"
["New Diary Entry" org-agenda-diary-entry (org-agenda-check-type nil 'agenda 'timeline)]
["Goto Calendar" org-agenda-goto-calendar (org-agenda-check-type nil 'agenda 'timeline)] ["Goto Calendar" org-agenda-goto-calendar (org-agenda-check-type nil 'agenda 'timeline)]
["Phases of the Moon" org-agenda-phases-of-moon (org-agenda-check-type nil 'agenda 'timeline)] ["Phases of the Moon" org-agenda-phases-of-moon (org-agenda-check-type nil 'agenda 'timeline)]
["Sunrise/Sunset" org-agenda-sunrise-sunset (org-agenda-check-type nil 'agenda 'timeline)] ["Sunrise/Sunset" org-agenda-sunrise-sunset (org-agenda-check-type nil 'agenda 'timeline)]
["Holidays" org-agenda-holidays (org-agenda-check-type nil 'agenda 'timeline)] ["Holidays" org-agenda-holidays (org-agenda-check-type nil 'agenda 'timeline)]
["Convert" org-agenda-convert-date (org-agenda-check-type nil 'agenda 'timeline)]) ["Convert" org-agenda-convert-date (org-agenda-check-type nil 'agenda 'timeline)]
["Create iCalendar file" org-export-icalendar-combine-agenda-files t] "--"
["Create iCalendar file" org-export-icalendar-combine-agenda-files t])
"--" "--"
("View"
["Day View" org-agenda-day-view :active (org-agenda-check-type nil 'agenda)
:style radio :selected (equal org-agenda-ndays 1)]
["Week View" org-agenda-week-view :active (org-agenda-check-type nil 'agenda)
:style radio :selected (equal org-agenda-ndays 7)]
"--"
["Show Logbook entries" org-agenda-log-mode
:style toggle :selected org-agenda-show-log :active (org-agenda-check-type nil 'agenda 'timeline)]
["Include Diary" org-agenda-toggle-diary
:style toggle :selected org-agenda-include-diary :active (org-agenda-check-type nil 'agenda)]
["Use Time Grid" org-agenda-toggle-time-grid
:style toggle :selected org-agenda-use-time-grid :active (org-agenda-check-type nil 'agenda)])
["Rebuild buffer" org-agenda-redo t]
["Save all Org-mode Buffers" org-save-all-org-buffers t]
"--"
; ["Undo Remote Editing" org-agenda-undo org-agenda-multi-buffer-undo-list]
; "--"
["Quit" org-agenda-quit t] ["Quit" org-agenda-quit t]
["Exit and Release Buffers" org-agenda-exit t] ["Exit and Release Buffers" org-agenda-exit t]
)) ))
@ -8289,6 +8507,9 @@ the documentation of `org-diary'."
deadlinep (string-match org-deadline-regexp tmp) deadlinep (string-match org-deadline-regexp tmp)
scheduledp (string-match org-scheduled-regexp tmp) scheduledp (string-match org-scheduled-regexp tmp)
donep (org-entry-is-done-p)) donep (org-entry-is-done-p))
(and org-agenda-skip-scheduled-if-done
scheduledp donep
(throw :skip t))
(if (string-match ">" timestr) (if (string-match ">" timestr)
;; substring should only run to end of time stamp ;; substring should only run to end of time stamp
(setq timestr (substring timestr 0 (match-end 0)))) (setq timestr (substring timestr 0 (match-end 0))))
@ -8444,7 +8665,7 @@ the documentation of `org-diary'."
(regexp org-scheduled-time-regexp) (regexp org-scheduled-time-regexp)
(todayp (equal date (calendar-current-date))) ; DATE bound by calendar (todayp (equal date (calendar-current-date))) ; DATE bound by calendar
(d1 (calendar-absolute-from-gregorian date)) ; DATE bound by calendar (d1 (calendar-absolute-from-gregorian date)) ; DATE bound by calendar
d2 diff pos pos1 category tags d2 diff pos pos1 category tags donep
ee txt head) ee txt head)
(goto-char (point-min)) (goto-char (point-min))
(while (re-search-forward regexp nil t) (while (re-search-forward regexp nil t)
@ -8867,7 +9088,7 @@ and by additional input from the age of a schedules or deadline entry."
(hdmarker (get-text-property (point) 'org-hd-marker)) (hdmarker (get-text-property (point) 'org-hd-marker))
(buffer (marker-buffer marker)) (buffer (marker-buffer marker))
(pos (marker-position marker)) (pos (marker-position marker))
dbeg dend txt n conf) dbeg dend (n 0) conf)
(with-current-buffer buffer (with-current-buffer buffer
(save-excursion (save-excursion
(goto-char pos) (goto-char pos)
@ -8876,10 +9097,9 @@ and by additional input from the age of a schedules or deadline entry."
dend (org-end-of-subtree t)) dend (org-end-of-subtree t))
(setq dbeg (point-at-bol) (setq dbeg (point-at-bol)
dend (min (point-max) (1+ (point-at-eol))))) dend (min (point-max) (1+ (point-at-eol)))))
(setq txt (buffer-substring dbeg dend)))) (goto-char dbeg)
(while (string-match "^[ \t]*\n" txt) (setq txt (replace-match "" t t txt))) (while (re-search-forward "^[ \t]*\\S-" dend t) (setq n (1+ n)))))
(setq n (length (split-string txt "\n")) (setq conf (or (eq t org-agenda-confirm-kill)
conf (or (eq t org-agenda-confirm-kill)
(and (numberp org-agenda-confirm-kill) (and (numberp org-agenda-confirm-kill)
(> n org-agenda-confirm-kill)))) (> n org-agenda-confirm-kill))))
(and conf (and conf
@ -8887,12 +9107,64 @@ and by additional input from the age of a schedules or deadline entry."
(format "Delete entry with %d lines in buffer \"%s\"? " (format "Delete entry with %d lines in buffer \"%s\"? "
n (buffer-name buffer)))) n (buffer-name buffer))))
(error "Abort")) (error "Abort"))
;; FIXME: if we kill an entire subtree, should we not find all (org-remove-subtree-entries-from-agenda buffer dbeg dend)
;; lines coming from the subtree?
(save-excursion (org-agenda-change-all-lines "" hdmarker))
(with-current-buffer buffer (delete-region dbeg dend)) (with-current-buffer buffer (delete-region dbeg dend))
(message "Agenda item and source killed"))) (message "Agenda item and source killed")))
(defun org-agenda-archive ()
"Kill the entry or subtree belonging to the current agenda entry."
(interactive)
(let* ((marker (or (get-text-property (point) 'org-marker)
(org-agenda-error)))
(hdmarker (get-text-property (point) 'org-hd-marker))
(buffer (marker-buffer marker))
(pos (marker-position marker))
dbeg dend txt n conf)
(with-current-buffer buffer
(if (org-mode-p)
(save-excursion
(goto-char pos)
(org-remove-subtree-entries-from-agenda)
(org-back-to-heading t)
(org-archive-subtree))
(error "Archiving works only in Org-mode files")))))
(defun org-remove-subtree-entries-from-agenda (&optional buf beg end)
"Remove all lines in the agenda that correspond to a given subtree.
The subtree is the one in buffer BUF, starting at BEG and ending at END.
If this information is not given, the function uses the tree at point."
(let ((buf (or buf (current-buffer))) m p)
(save-excursion
(unless (and beg end)
(org-back-to-heading t)
(setq beg (point))
(org-end-of-subtree t)
(setq end (point)))
(set-buffer (get-buffer org-agenda-buffer-name))
(save-excursion
(goto-char (point-max))
(beginning-of-line 1)
(while (not (bobp))
(when (and (setq m (get-text-property (point) 'org-marker))
(equal buf (marker-buffer m))
(setq p (marker-position m))
(>= p beg)
(<= p end))
(let (buffer-read-only)
(delete-region (point-at-bol) (1+ (point-at-eol)))))
(beginning-of-line 0))))))
(defun org-agenda-open-link ()
"Follow the link in the current line, if any."
(interactive)
(let ((eol (point-at-eol)))
(save-excursion
(if (or (re-search-forward org-bracket-link-regexp eol t)
(re-search-forward org-angle-link-re eol t)
(re-search-forward org-plain-link-re eol t))
(call-interactively 'org-open-at-point)
(error "No link in current line")))))
(defun org-agenda-switch-to (&optional delete-other-windows) (defun org-agenda-switch-to (&optional delete-other-windows)
"Go to the Org-mode file which contains the item at point." "Go to the Org-mode file which contains the item at point."
(interactive) (interactive)
@ -9137,14 +9409,34 @@ the tags of the current headline come last."
(goto-char pos) (goto-char pos)
(if (not (org-at-timestamp-p)) (if (not (org-at-timestamp-p))
(error "Cannot find time stamp")) (error "Cannot find time stamp"))
(org-timestamp-change arg (or what 'day)) (org-timestamp-change arg (or what 'day)))
(message "Time stamp changed to %s" org-last-changed-timestamp)))) (org-agenda-overlay-new-time marker org-last-changed-timestamp)
(message "Time stamp changed to %s" org-last-changed-timestamp)))
(defun org-agenda-date-earlier (arg &optional what) (defun org-agenda-date-earlier (arg &optional what)
"Change the date of this item to one day earlier." "Change the date of this item to one day earlier."
(interactive "p") (interactive "p")
(org-agenda-date-later (- arg) what)) (org-agenda-date-later (- arg) what))
(defun org-agenda-overlay-new-time (marker stamp)
(let ((buffer-read-only nil)
ovs ov)
(setq stamp (concat " => " stamp))
(save-excursion
(goto-char (point-max))
(while (not (bobp))
(when (equal marker (get-text-property (point) 'org-marker))
;; remove any old overlays
(org-find-overlays 'org-new-date (1- (point-at-eol)) 'delete)
;; put a new overlay
(move-to-column (- (window-width) (length stamp)) t)
(setq ov (org-make-overlay (1- (point)) (point-at-eol)))
(org-overlay-put ov 'org-new-date t)
(org-overlay-display ov stamp 'secondary-selection)
(beginning-of-line 1))
(beginning-of-line 0)))))
(defun org-agenda-date-prompt (arg) (defun org-agenda-date-prompt (arg)
"Change the date of this item. Date is prompted for, with default today. "Change the date of this item. Date is prompted for, with default today.
The prefix ARG is passed to the `org-time-stamp' command and can therefore The prefix ARG is passed to the `org-time-stamp' command and can therefore
@ -9451,12 +9743,14 @@ MATCH can contain positive and negative selection of tags, like
org-last-tags-completion-table)) org-last-tags-completion-table))
(setq match (completing-read (setq match (completing-read
"Match: " 'org-tags-completion-function nil nil nil "Match: " 'org-tags-completion-function nil nil nil
'org-tags-history))) ; FIXME: SHould we have a separate history for this? 'org-tags-history))) ; FIXME: Separate history for this?
;; Parse the string and create a lisp form ;; Parse the string and create a lisp form
(let ((match0 match) minus tag mm (let ((match0 match)
(re "^&?\\([-+:]\\)?\\({[^}]+}\\|[A-Za-z_@0-9]+\\)")
minus tag mm
tagsmatch todomatch tagsmatcher todomatcher kwd matcher tagsmatch todomatch tagsmatcher todomatcher kwd matcher
orterms term orlist) orterms term orlist re-p)
(if (string-match "/+" match) (if (string-match "/+" match)
;; match contains also a todo-matching request ;; match contains also a todo-matching request
(setq tagsmatch (substring match 0 (match-beginning 0)) (setq tagsmatch (substring match 0 (match-beginning 0))
@ -9469,12 +9763,17 @@ MATCH can contain positive and negative selection of tags, like
(setq tagsmatcher t) (setq tagsmatcher t)
(setq orterms (org-split-string tagsmatch "|") orlist nil) (setq orterms (org-split-string tagsmatch "|") orlist nil)
(while (setq term (pop orterms)) (while (setq term (pop orterms))
(while (string-match "^&?\\([-+:]\\)?\\([A-Za-z_@0-9]+\\)" term) (while (and (equal (substring term -1) "\\") orterms)
(setq term (concat term "|" (pop orterms)))) ; repair bad split
(while (string-match re term)
(setq minus (and (match-end 1) (setq minus (and (match-end 1)
(equal (match-string 1 term) "-")) (equal (match-string 1 term) "-"))
tag (match-string 2 term) tag (match-string 2 term)
term (substring term (match-end 0)) term (substring term (match-end 0))
mm (list 'member (downcase tag) 'tags-list) re-p (equal (string-to-char tag) ?{)
mm (if re-p
`(org-match-any-p ,(substring tag 1 -1) tags-list)
`(member ,(downcase tag) tags-list))
mm (if minus (list 'not mm) mm)) mm (if minus (list 'not mm) mm))
(push mm tagsmatcher)) (push mm tagsmatcher))
(push (if (> (length tagsmatcher) 1) (push (if (> (length tagsmatcher) 1)
@ -9484,17 +9783,20 @@ MATCH can contain positive and negative selection of tags, like
(setq tagsmatcher nil)) (setq tagsmatcher nil))
(setq tagsmatcher (if (> (length orlist) 1) (cons 'or orlist) (car orlist)))) (setq tagsmatcher (if (> (length orlist) 1) (cons 'or orlist) (car orlist))))
;; Make the todo matcher ;; FIXME: reduce syntax richness? ;; Make the todo matcher
(if (or (not todomatch) (not (string-match "\\S-" todomatch))) (if (or (not todomatch) (not (string-match "\\S-" todomatch)))
(setq todomatcher t) (setq todomatcher t)
(setq orterms (org-split-string todomatch "|") orlist nil) (setq orterms (org-split-string todomatch "|") orlist nil)
(while (setq term (pop orterms)) (while (setq term (pop orterms))
(while (string-match "^&?\\([-+:]\\)?\\([A-Za-z_@0-9]+\\)" term) (while (string-match re term)
(setq minus (and (match-end 1) (setq minus (and (match-end 1)
(equal (match-string 1 term) "-")) (equal (match-string 1 term) "-"))
kwd (match-string 2 term) kwd (match-string 2 term)
re-p (equal (string-to-char kwd) ?{)
term (substring term (match-end 0)) term (substring term (match-end 0))
mm (list 'equal 'todo kwd) mm (if re-p
`(string-match ,(substring kwd 1 -1) todo)
(list 'equal 'todo kwd))
mm (if minus (list 'not mm) mm)) mm (if minus (list 'not mm) mm))
(push mm todomatcher)) (push mm todomatcher))
(push (if (> (length todomatcher) 1) (push (if (> (length todomatcher) 1)
@ -9511,6 +9813,11 @@ MATCH can contain positive and negative selection of tags, like
tagsmatcher)) tagsmatcher))
(cons match0 matcher))) (cons match0 matcher)))
(defun org-match-any-p (re list)
"Does re match any element of list?"
(setq list (mapcar (lambda (x) (string-match re x)) list))
(delq nil list))
;;;###autoload ;;;###autoload
(defun org-tags-view (&optional todo-only match) (defun org-tags-view (&optional todo-only match)
"Show all headlines for all `org-agenda-files' matching a TAGS criterion. "Show all headlines for all `org-agenda-files' matching a TAGS criterion.
@ -10448,8 +10755,8 @@ onto the ring."
(defun org-follow-wl-link (folder article) (defun org-follow-wl-link (folder article)
"Follow a Wanderlust link to FOLDER and ARTICLE." "Follow a Wanderlust link to FOLDER and ARTICLE."
(setq article (org-add-angle-brackets article)) (setq article (org-add-angle-brackets article))
(wl-summary-goto-folder-subr folder 'no-sync t nil t) (wl-summary-goto-folder-subr folder 'no-sync t nil t nil nil)
(if article (wl-summary-jump-to-msg-by-message-id article ">")) (if article (wl-summary-jump-to-msg-by-message-id article))
(wl-summary-redisplay)) (wl-summary-redisplay))
(defun org-follow-rmail-link (folder article) (defun org-follow-rmail-link (folder article)
@ -10818,8 +11125,12 @@ For file links, arg negates `org-context-in-file-links'."
(let* ((msgnum (wl-summary-message-number)) (let* ((msgnum (wl-summary-message-number))
(message-id (elmo-message-field wl-summary-buffer-elmo-folder (message-id (elmo-message-field wl-summary-buffer-elmo-folder
msgnum 'message-id)) msgnum 'message-id))
(wl-message-entity (elmo-msgdb-overview-get-entity (wl-message-entity
msgnum (wl-summary-buffer-msgdb))) (if (fboundp 'elmo-message-entity)
(elmo-message-entity
wl-summary-buffer-elmo-folder msgnum)
(elmo-msgdb-overview-get-entity
msgnum (wl-summary-buffer-msgdb))))
(author (wl-summary-line-from)) ; FIXME: correct? (author (wl-summary-line-from)) ; FIXME: correct?
(subject "???")) ; FIXME: (subject "???")) ; FIXME:
(setq message-id (org-remove-angle-brackets message-id)) (setq message-id (org-remove-angle-brackets message-id))
@ -10863,7 +11174,7 @@ For file links, arg negates `org-context-in-file-links'."
link (org-make-link cpltxt)))) link (org-make-link cpltxt))))
((memq major-mode '(gnus-summary-mode gnus-article-mode)) ((memq major-mode '(gnus-summary-mode gnus-article-mode))
(require 'gnus-sum) (require 'gnus-sum) ; FIXME: I don't think this is needed, actually
(and (eq major-mode 'gnus-article-mode) (gnus-article-show-summary)) (and (eq major-mode 'gnus-article-mode) (gnus-article-show-summary))
(gnus-summary-beginning-of-article) (gnus-summary-beginning-of-article)
(let* ((group (car gnus-article-current)) (let* ((group (car gnus-article-current))
@ -11376,13 +11687,21 @@ See also the variable `org-reverse-note-order'."
(if (not spos) (throw 'quit nil)) ; return nil to show we did (if (not spos) (throw 'quit nil)) ; return nil to show we did
; not handle this note ; not handle this note
(goto-char spos) (goto-char spos)
(cond ((bobp) (cond ((and (bobp) (not reversed))
;; Put it at the start or end, as level 2 ;; Put it at the end, as level 2
(save-restriction (save-restriction
(widen) (widen)
(goto-char (if reversed (point-min) (point-max))) (goto-char (point-max))
(if (not (bolp)) (newline)) (if (not (bolp)) (newline))
(org-paste-subtree 2 txt))) (org-paste-subtree 2 txt)))
((and (bobp) reversed)
;; Put it at the start, as level 1
(save-restriction
(widen)
(goto-char (point-min))
(re-search-forward "^\\*" nil t)
(beginning-of-line 1)
(org-paste-subtree 1 txt)))
((and (org-on-heading-p nil) (not current-prefix-arg)) ((and (org-on-heading-p nil) (not current-prefix-arg))
;; Put it below this entry, at the beg/end of the subtree ;; Put it below this entry, at the beg/end of the subtree
(org-back-to-heading) (org-back-to-heading)
@ -12308,25 +12627,62 @@ In particular, this does handle wide and invisible characters."
(if (not (org-at-table-p)) (beginning-of-line 0)) (if (not (org-at-table-p)) (beginning-of-line 0))
(move-to-column col))) (move-to-column col)))
(defun org-table-sort-lines (beg end numericp) (defun org-table-sort-lines (with-case &optional sorting-type)
"Sort table lines in region. "Sort table lines according to the column at point.
Point and mark define the first and last line to include. Both point and
mark should be in the column that is used for sorting. For example, to The position of point indicates the column to be used for
sort according to column 3, put the mark in the first line to sort, in sorting, and the range of lines is the range between the nearest
table column 3. Put point into the last line to be included in the sorting, horizontal separator lines, or the entire table of no such lines
also in table column 3. The command will prompt for the sorting method exist. If point is before the first column, you will be prompted
\(n for numerical, a for alphanumeric)." for the sorting column. If there is an active region, the mark
(interactive "r\nsSorting method: [n]=numeric [a]=alpha: ") specifies the first line and the sorting column, while point
(setq numericp (string-match "[nN]" numericp)) should be in the last line to be included into the sorting.
(org-table-align) ;; Just to be safe
(let* (bcol ecol cmp column lns) The command then prompts for the sorting type which can be
(goto-char beg) alphabetically, numerically, or by time (as given in a time stamp
in the field). Sorting in reverse order is also possible.
With prefix argument WITH-CASE, alphabetic sorting will be case-sensitive.
If SORTING-TYPE is specified when this function is called from a Lisp
program, no prompting will take place. SORTING-TYPE must be a character,
any of (?a ?A ?n ?N ?t ?T) where the capital letter indicate that sorting
should be done in reverse order."
(interactive "P")
(let* ((thisline (org-current-line))
(thiscol (org-table-current-column))
beg end bcol ecol tend tbeg column lns pos)
(when (equal thiscol 0)
(if (interactive-p)
(setq thiscol
(string-to-number
(read-string "Use column N for sorting: ")))
(setq thiscol 1))
(org-table-goto-column thiscol))
(org-table-check-inside-data-field) (org-table-check-inside-data-field)
(setq column (org-table-current-column) (if (org-region-active-p)
beg (move-marker (make-marker) (point-at-bol))) (progn
(goto-char end) (setq beg (region-beginning) end (region-end))
(org-table-check-inside-data-field) (goto-char beg)
(setq end (move-marker (make-marker) (1+ (point-at-eol)))) (setq column (org-table-current-column)
beg (point-at-bol))
(goto-char end)
(setq end (point-at-bol 2)))
(setq column (org-table-current-column)
pos (point)
tbeg (org-table-begin)
tend (org-table-end))
(if (re-search-backward org-table-hline-regexp tbeg t)
(setq beg (point-at-bol 2))
(goto-char tbeg)
(setq beg (point-at-bol 1)))
(goto-char pos)
(if (re-search-forward org-table-hline-regexp tend t)
(setq beg (point-at-bol 0))
(goto-char tend)
(setq end (point-at-bol))))
(setq beg (move-marker (make-marker) beg)
end (move-marker (make-marker) end))
(untabify beg end) (untabify beg end)
(goto-char beg) (goto-char beg)
(org-table-goto-column column) (org-table-goto-column column)
@ -12335,22 +12691,17 @@ also in table column 3. The command will prompt for the sorting method
(org-table-goto-column (1+ column)) (org-table-goto-column (1+ column))
(skip-chars-backward "^|") (skip-chars-backward "^|")
(setq ecol (1- (current-column))) (setq ecol (1- (current-column)))
(setq cmp (if numericp (org-table-goto-column column)
(lambda (a b) (< (car a) (car b)))
(lambda (a b) (string< (car a) (car b)))))
(setq lns (mapcar (lambda(x) (cons (org-trim (substring x bcol ecol)) x)) (setq lns (mapcar (lambda(x) (cons (org-trim (substring x bcol ecol)) x))
(org-split-string (buffer-substring beg end) "\n"))) (org-split-string (buffer-substring beg end) "\n")))
(if numericp (setq lns (org-do-sort lns "Table" with-case sorting-type))
(setq lns (mapcar (lambda(x)
(cons (string-to-number (car x)) (cdr x)))
lns)))
(delete-region beg end) (delete-region beg end)
(move-marker beg nil) (move-marker beg nil)
(move-marker end nil) (move-marker end nil)
(insert (mapconcat 'cdr (setq lns (sort lns cmp)) "\n") "\n") (insert (mapconcat 'cdr lns "\n") "\n")
(message "%d lines sorted %s based on column %d" (goto-line thisline)
(length lns) (org-table-goto-column thiscol)
(if numericp "numerically" "alphabetically") column))) (message "%d lines sorted, based on column %d" (length lns) column)))
(defun org-table-cut-region (beg end) (defun org-table-cut-region (beg end)
"Copy region in table to the clipboard and blank all relevant fields." "Copy region in table to the clipboard and blank all relevant fields."
@ -13783,6 +14134,7 @@ overwritten, and the table is not marked as requiring realignment."
(defconst org-export-plist-vars (defconst org-export-plist-vars
'((:language . org-export-default-language) '((:language . org-export-default-language)
(:customtime . org-display-custom-times)
(:headline-levels . org-export-headline-levels) (:headline-levels . org-export-headline-levels)
(:section-numbers . org-export-with-section-numbers) (:section-numbers . org-export-with-section-numbers)
(:table-of-contents . org-export-with-toc) (:table-of-contents . org-export-with-toc)
@ -14271,6 +14623,7 @@ translations. There is currently no way for users to extend this.")
(erase-buffer) (erase-buffer)
(insert string) (insert string)
(let ((org-inhibit-startup t)) (org-mode)) (let ((org-inhibit-startup t)) (org-mode))
(untabify (point-min) (point-max))
;; Get rid of archived trees ;; Get rid of archived trees
(when (not (eq org-export-with-archived-trees t)) (when (not (eq org-export-with-archived-trees t))
@ -14419,6 +14772,7 @@ underlined headlines. The default is 3."
(buffer-substring (buffer-substring
(if (org-region-active-p) (region-beginning) (point-min)) (if (org-region-active-p) (region-beginning) (point-min))
(if (org-region-active-p) (region-end) (point-max)))) (if (org-region-active-p) (region-end) (point-max))))
(custom-times org-display-custom-times)
(lines (org-export-find-first-heading-line (lines (org-export-find-first-heading-line
(org-skip-comments (org-skip-comments
(org-split-string (org-split-string
@ -14540,6 +14894,8 @@ underlined headlines. The default is 3."
(setq line (replace-match (setq line (replace-match
(if (match-end 3) "[\\3]" "[\\1]") (if (match-end 3) "[\\3]" "[\\1]")
t nil line))) t nil line)))
(when custom-times
(setq line (org-translate-time line)))
(cond (cond
((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line) ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
;; a Headline ;; a Headline
@ -15479,7 +15835,8 @@ But it has the disadvantage, that Org-mode's HTML conversions cannot be used."
(format "@<span class=\"timestamp-kwd\">%s @</span>" (format "@<span class=\"timestamp-kwd\">%s @</span>"
(match-string 1 s))) (match-string 1 s)))
(format " @<span class=\"timestamp\">%s@</span>" (format " @<span class=\"timestamp\">%s@</span>"
(substring (match-string 3 s) 1 -1))) (substring
(org-translate-time (match-string 3 s)) 1 -1)))
s (substring s (match-end 0))))) s (substring s (match-end 0)))))
;; Line break if line started and ended with time stamp stuff ;; Line break if line started and ended with time stamp stuff
(if (not r) (if (not r)
@ -16270,6 +16627,7 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
(define-key org-mode-map [(tab)] 'org-cycle) (define-key org-mode-map [(tab)] 'org-cycle)
(define-key org-mode-map [(control tab)] 'org-force-cycle-archived) (define-key org-mode-map [(control tab)] 'org-force-cycle-archived)
(define-key org-mode-map [(meta tab)] 'org-complete) (define-key org-mode-map [(meta tab)] 'org-complete)
(define-key org-mode-map "\M-\C-i" 'org-complete)
;; The following line is necessary under Suse GNU/Linux ;; The following line is necessary under Suse GNU/Linux
(unless (featurep 'xemacs) (unless (featurep 'xemacs)
(define-key org-mode-map [S-iso-lefttab] 'org-shifttab)) (define-key org-mode-map [S-iso-lefttab] 'org-shifttab))
@ -16300,7 +16658,6 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
(when (or (featurep 'xemacs) ;; because XEmacs supports multi-device stuff (when (or (featurep 'xemacs) ;; because XEmacs supports multi-device stuff
(not window-system)) (not window-system))
(define-key org-mode-map "\M-\C-i" 'org-complete)
(define-key org-mode-map "\C-c\C-xc" 'org-table-copy-down) (define-key org-mode-map "\C-c\C-xc" 'org-table-copy-down)
(define-key org-mode-map "\C-c\C-xM" 'org-insert-todo-heading) (define-key org-mode-map "\C-c\C-xM" 'org-insert-todo-heading)
(define-key org-mode-map "\C-c\C-xm" 'org-meta-return) (define-key org-mode-map "\C-c\C-xm" 'org-meta-return)
@ -16354,29 +16711,29 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]."
(define-key org-mode-map [(control ?,)] 'org-cycle-agenda-files) (define-key org-mode-map [(control ?,)] 'org-cycle-agenda-files)
(define-key org-mode-map "\C-c[" 'org-agenda-file-to-front) (define-key org-mode-map "\C-c[" 'org-agenda-file-to-front)
(define-key org-mode-map "\C-c]" 'org-remove-file) (define-key org-mode-map "\C-c]" 'org-remove-file)
(define-key org-mode-map "\C-c-" 'org-table-insert-hline) (define-key org-mode-map "\C-c-" 'org-table-insert-hline)
(define-key org-mode-map "\C-c^" 'org-table-sort-lines) (define-key org-mode-map "\C-c^" 'org-sort)
(define-key org-mode-map "\C-c\C-c" 'org-ctrl-c-ctrl-c) (define-key org-mode-map "\C-c\C-c" 'org-ctrl-c-ctrl-c)
(define-key org-mode-map "\C-c#" 'org-update-checkbox-count) (define-key org-mode-map "\C-c#" 'org-update-checkbox-count)
(define-key org-mode-map "\C-m" 'org-return) (define-key org-mode-map "\C-m" 'org-return)
(define-key org-mode-map "\C-c?" 'org-table-current-column) (define-key org-mode-map "\C-c?" 'org-table-current-column)
(define-key org-mode-map "\C-c " 'org-table-blank-field) (define-key org-mode-map "\C-c " 'org-table-blank-field)
(define-key org-mode-map "\C-c+" 'org-table-sum) (define-key org-mode-map "\C-c+" 'org-table-sum)
(define-key org-mode-map "\C-c=" 'org-table-eval-formula) (define-key org-mode-map "\C-c=" 'org-table-eval-formula)
(define-key org-mode-map "\C-c'" 'org-table-edit-formulas) (define-key org-mode-map "\C-c'" 'org-table-edit-formulas)
(define-key org-mode-map "\C-c`" 'org-table-edit-field) (define-key org-mode-map "\C-c`" 'org-table-edit-field)
(define-key org-mode-map "\C-c|" 'org-table-create-or-convert-from-region) (define-key org-mode-map "\C-c|" 'org-table-create-or-convert-from-region)
(define-key org-mode-map "\C-c*" 'org-table-recalculate) (define-key org-mode-map "\C-c*" 'org-table-recalculate)
(define-key org-mode-map [(control ?#)] 'org-table-rotate-recalc-marks) (define-key org-mode-map [(control ?#)] 'org-table-rotate-recalc-marks)
(define-key org-mode-map "\C-c~" 'org-table-create-with-table.el) (define-key org-mode-map "\C-c~" 'org-table-create-with-table.el)
(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-e" 'org-export) (define-key org-mode-map "\C-c\C-e" 'org-export)
(define-key org-mode-map "\C-c:" 'org-toggle-fixed-width-section) (define-key org-mode-map "\C-c:" 'org-toggle-fixed-width-section)
(define-key org-mode-map "\C-c\C-x\C-k" 'org-cut-special) (define-key org-mode-map "\C-c\C-x\C-k" 'org-cut-special)
(define-key org-mode-map "\C-c\C-x\C-w" 'org-cut-special) (define-key org-mode-map "\C-c\C-x\C-w" 'org-cut-special)
(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)
(define-key org-mode-map "\C-c\C-x\C-t" 'org-toggle-time-stamp-overlays) (define-key org-mode-map "\C-c\C-x\C-t" 'org-toggle-time-stamp-overlays)
(define-key org-mode-map "\C-c\C-x\C-i" 'org-clock-in) (define-key org-mode-map "\C-c\C-x\C-i" 'org-clock-in)
@ -16859,6 +17216,8 @@ See the individual commands for more information."
["Demote Heading" org-metaright (not (org-at-table-p))] ["Demote Heading" org-metaright (not (org-at-table-p))]
["Demote Subtree" org-shiftmetaright (not (org-at-table-p))] ["Demote Subtree" org-shiftmetaright (not (org-at-table-p))]
"--" "--"
["Sort Region/Children" org-sort (not (org-at-table-p))]
"--"
["Convert to odd levels" org-convert-to-odd-levels t] ["Convert to odd levels" org-convert-to-odd-levels t]
["Convert to odd/even levels" org-convert-to-oddeven-levels t]) ["Convert to odd/even levels" org-convert-to-oddeven-levels t])
("Archive" ("Archive"
@ -17169,6 +17528,14 @@ return nil."
(goto-char pos) (goto-char pos)
(move-to-column col))) (move-to-column col)))
(defun org-replace-escapes (string table)
;; FIXME: document and make safer
(let (e)
(while (setq e (pop table))
(while (string-match (car e) string)
(setq string (replace-match (cdr e) t t string))))
string))
;; Paragraph filling stuff. ;; Paragraph filling stuff.
;; We want this to be just right, so use the full arsenal. ;; We want this to be just right, so use the full arsenal.
@ -17186,7 +17553,7 @@ return nil."
;; But only if the user has not turned off tables or fixed-width regions ;; But only if the user has not turned off tables or fixed-width regions
(org-set-local (org-set-local
'auto-fill-inhibit-regexp 'auto-fill-inhibit-regexp
(concat "\\*\\|#" (concat "\\*\\|#\\+"
"\\|[ \t]*" org-keyword-time-regexp "\\|[ \t]*" org-keyword-time-regexp
(if (or org-enable-table-editor org-enable-fixed-width-editor) (if (or org-enable-table-editor org-enable-fixed-width-editor)
(concat (concat
@ -17220,7 +17587,8 @@ return nil."
"Return a fill prefix for org-mode files. "Return a fill prefix for org-mode files.
In particular, this makes sure hanging paragraphs for hand-formatted lists In particular, this makes sure hanging paragraphs for hand-formatted lists
work correctly." work correctly."
(if (looking-at " *\\([-*+] \\|[0-9]+[.)] \\)?") ;;FIXME (if (looking-at " *\\([-*+] \\|[0-9]+[.)] \\)?")
(if (looking-at " *\\([-*+] \\|[0-9]+[.)] \\)?\|#\\+[ \t]+")
(make-string (- (match-end 0) (match-beginning 0)) ?\ ))) (make-string (- (match-end 0) (match-beginning 0)) ?\ )))
;; Functions needed for Emacs/XEmacs region compatibility ;; Functions needed for Emacs/XEmacs region compatibility

BIN
org.pdf

Binary file not shown.

View file

@ -3,7 +3,7 @@
@setfilename ../info/org @setfilename ../info/org
@settitle Org Mode Manual @settitle Org Mode Manual
@set VERSION 4.56 @set VERSION 4.57
@set DATE November 2006 @set DATE November 2006
@dircategory Emacs @dircategory Emacs
@ -730,6 +730,15 @@ Yank subtree from kill ring. This does modify the level of the subtree to
make sure the tree fits in nicely at the yank position. The yank make sure the tree fits in nicely at the yank position. The yank
level can also be specified with a prefix arg, or by yanking after a level can also be specified with a prefix arg, or by yanking after a
headline marker like @samp{****}. headline marker like @samp{****}.
@kindex C-c ^
@item C-c ^
Sort same-level entries. When there is an active region, all entries in
the region will be sorted. Otherwise the children of the current
headline are sorted. The command prompts for the sorting method, which
can be alphabetically, numerically, by time (using the first time stamp
in each entry), and each of these in reverse order. With a @kbd{C-u}
prefix, sorting will be case-sensitive. With two @kbd{C-u C-u}
prefixes, duplicate entries will also be removed.
@end table @end table
@cindex region, active @cindex region, active
@ -1126,10 +1135,15 @@ is created above the current line.
@kindex C-c ^ @kindex C-c ^
@item C-c ^ @item C-c ^
Sort the table lines in the region. Point and mark must be in the first Sort the table lines in the region. The position of point indicates the
and last line to be included, and must be in the column that should be column to be used for sorting, and the range of lines is the range
used for sorting. The command prompts for numerical versus between the nearest horizontal separator lines, or the entire table. If
alphanumerical sorting. point is before the first column, you will be prompted for the sorting
column. If there is an active region, the mark specifies the first line
and the sorting column, while point should be in the last line to be
included into the sorting. The command prompts for the sorting type
(alphabetically, numerically, or by time). When called with a prefix
argument, alphabetic sorting will be case-sensitive.
@tsubheading{Regions} @tsubheading{Regions}
@kindex C-c C-x M-w @kindex C-c C-x M-w
@ -2042,7 +2056,7 @@ sparse tree with the matches.
@end table @end table
As a degenerate case, a file link with an empty file name can be used As a degenerate case, a file link with an empty file name can be used
to search the current file. For example, @code{<file:::find me>} does to search the current file. For example, @code{[[file:::find me]]} does
a search for @samp{find me} in the current file, just as a search for @samp{find me} in the current file, just as
@samp{[[find me]]} would. @samp{[[find me]]} would.
@ -2114,7 +2128,7 @@ When you call @kbd{M-x remember} to remember something, org will prompt
for a key to select the template and then prepare the buffer like for a key to select the template and then prepare the buffer like
@example @example
* TODO * TODO
<file:link to where you called remember> [[file:link to where you called remember]]
@end example @end example
@noindent or @noindent or
@ -2122,7 +2136,7 @@ for a key to select the template and then prepare the buffer like
@example @example
* [2006-03-21 Tue 15:37] * [2006-03-21 Tue 15:37]
<file:link to where you called remember> [[file:link to where you called remember]]
@end example @end example
@noindent See the variable @code{org-remember-templates} for more details. @noindent See the variable @code{org-remember-templates} for more details.
@ -2554,10 +2568,12 @@ example:
If a time stamp is preceded by the word @samp{SCHEDULED:}, it means you If a time stamp is preceded by the word @samp{SCHEDULED:}, it means you
are planning to start working on that task on the given date. So this is are planning to start working on that task on the given date. So this is
not about recording an event, but about planning your work. The not about recording an event, but about planning your work. The
headline will be listed under the given date. In addition, a reminder headline will be listed under the given date@footnote{It will still be
that the scheduled date has passed will be present in the compilation listed on that date after it has been marked DONE. If you don't like
for @emph{today}, until the entry is marked DONE. I.e., the task will this, set the variable @code{org-agenda-skip-scheduled-if-done}.}. In
automatically be forwarded until completed. addition, a reminder that the scheduled date has passed will be present
in the compilation for @emph{today}, until the entry is marked DONE.
I.e., the task will automatically be forwarded until completed.
@example @example
*** TODO Call Trillian for a date on New Years Eve. *** TODO Call Trillian for a date on New Years Eve.
@ -2575,7 +2591,7 @@ continuing until the entry is marked DONE. An example:
@example @example
*** TODO write article about the Earth for the Guide *** TODO write article about the Earth for the Guide
The editor in charge is <bbdb:Ford Prefect> The editor in charge is [[bbdb:Ford Prefect]]
DEADLINE: <2004-02-29 Sun> DEADLINE: <2004-02-29 Sun>
@end example @end example
@item Time stamp with CLOSED keyword @item Time stamp with CLOSED keyword
@ -2707,6 +2723,7 @@ specified with the current date and time. For example:
22 sept 0:34 --> currentyear-09-22 0:34 22 sept 0:34 --> currentyear-09-22 0:34
12 --> currentyear-currentmonth-12 12 --> currentyear-currentmonth-12
Fri --> nearest Friday (today or later) Fri --> nearest Friday (today or later)
+4 --> 4 days from now (if +N is the only thing given)
@end example @end example
The function understands English month and weekday abbreviations. If The function understands English month and weekday abbreviations. If
@ -3155,6 +3172,12 @@ Select @samp{:WORK:}-tagged TODO lines that are either @samp{WAITING} or
@samp{NEXT}. @samp{NEXT}.
@end table @end table
@cindex regular expressions, with tags search
Any element of the tag/todo match can be a regular expression - in this
case it must be enclosed in curly braces. For example,
@samp{WORK+@{^BOSS.*@}} matches headlines that contain the tag
@samp{WORK} and any tag @i{starting} with @samp{BOSS}.
@node Agenda views, Embedded LaTeX, Tags, Top @node Agenda views, Embedded LaTeX, Tags, Top
@chapter Agenda Views @chapter Agenda Views
@cindex agenda views @cindex agenda views
@ -3686,6 +3709,10 @@ to it in the original Org-mode file. If the text to be deleted remotely
is longer than one line, the kill needs to be confirmed by the user. See is longer than one line, the kill needs to be confirmed by the user. See
variable @code{org-agenda-confirm-kill}. variable @code{org-agenda-confirm-kill}.
@kindex $
@item $
Archive the subtree corresponding to the current headline.
@kindex T @kindex T
@item T @item T
Show all tags associated with the current item. Because of Show all tags associated with the current item. Because of
@ -5463,10 +5490,10 @@ caused by the preparations for the 22.1 release. In the mean time,
@item @file{org-blog.el} by David O'Toole @item @file{org-blog.el} by David O'Toole
A blogging plug-in for @file{org-publish.el}.@* A blogging plug-in for @file{org-publish.el}.@*
@url{http://dto.freeshell.org/notebook/OrgMode.html}. @url{http://dto.freeshell.org/notebook/OrgMode.html}.
@cindex @file{org-blogging.el} @cindex @file{blorg.el}
@item @file{org-blogging.el} by Bastien Guerry @item @file{blorg.el} by Bastien Guerry
Publish Org-mode files as Publish Org-mode files as
blogs. @url{http://www.cognition.ens.fr/~guerry/org-blogging.html}. blogs. @url{http://www.cognition.ens.fr/~guerry/blorg.html}.
@end table @end table
@node Dynamic blocks, , Extensions, Extensions and Hacking @node Dynamic blocks, , Extensions, Extensions and Hacking

Binary file not shown.

View file

@ -1,5 +1,5 @@
% Reference Card for Org Mode % Reference Card for Org Mode
\def\orgversionnumber{4.56} \def\orgversionnumber{4.57}
\def\year{2006} \def\year{2006}
% %
%**start of header %**start of header
@ -613,6 +613,7 @@ To set categories, add lines like$^2$:
\key{digit argument}{0-9} \key{digit argument}{0-9}
\key{change state of current TODO item}{t} \key{change state of current TODO item}{t}
\key{kill item and source}{C-k} \key{kill item and source}{C-k}
\key{archive the subtree}{\$}
\key{show tags of current headline}{T} \key{show tags of current headline}{T}
\key{set tags for current headline}{:} \key{set tags for current headline}{:}
\key{toggle ARCHIVE tag}{a} \key{toggle ARCHIVE tag}{a}
@ -624,10 +625,13 @@ To set categories, add lines like$^2$:
\key{change timestamp to today}{>} \key{change timestamp to today}{>}
\key{insert new entry into diary}{i} \key{insert new entry into diary}{i}
\key{Start the clock on current item (clock-in)}{I} \key{start the clock on current item (clock-in)}{I}
\key{Stop the clock (clock-out)}{O} \key{stop the clock (clock-out)}{O}
\key{Cancel current clock}{X} \key{cancel current clock}{X}
{\bf Misc}
\key{Open link in current line}{C-c C-o}
{\bf Calendar commands} {\bf Calendar commands}
@ -674,20 +678,19 @@ some other place.
\key{links become HTML links}{http:... etc} \key{links become HTML links}{http:... etc}
\key{include html tags}{@<b>...@</b>} \key{include html tags}{@<b>...@</b>}
{\bf Export options} %{\bf Export options}
%
Include additional information for export by putting these anywhere in the %Include additional information for export by putting these anywhere in the
org file. Use {\tt M-TAB} completion to make sure to get the right %org file. Use {\tt M-TAB} completion to make sure to get the right
keywords. {\tt M-TAB} again just after keyword is complete inserts examples. %keywords. {\tt M-TAB} again just after keyword is complete inserts examples.
%
\key{the title to be shown}{\#+TITLE:} %\key{the title to be shown}{\#+TITLE:}
\key{the author}{\#+AUTHOR:} %\key{the author}{\#+AUTHOR:}
\key{authors email address}{\#+EMAIL:} %\key{authors email address}{\#+EMAIL:}
\key{language code for html}{\#+LANGUAGE:} %\key{language code for html}{\#+LANGUAGE:}
\key{free text description of file}{\#+TEXT:} %\key{free text description of file}{\#+TEXT:}
\key{... which can carry over multiple lines}{\#+TEXT:} %\key{... which can carry over multiple lines}{\#+TEXT:}
%\key{settings for the export process - see below}{\#+OPTIONS:} %\key{settings for the export process}{\#+OPTIONS:}
\key{settings for the export process}{\#+OPTIONS:}
%\key{set number of headline levels for export}{H:2} %\key{set number of headline levels for export}{H:2}
%\key{turn on/off section numbers}{num:t} %\key{turn on/off section numbers}{num:t}