summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Dominik <dominik@nb-dominik2.science.uva.nl>2008-01-31 11:33:46 +0100
committerCarsten Dominik <dominik@nb-dominik2.science.uva.nl>2008-01-31 11:33:46 +0100
commit2c16f092e64915a7e3d0b2dda82f3978a0f42dea (patch)
tree837fc1aa86250dcb3b8d216c415cd1daa191ea3b
parent82bb96f8a947ddfaf9d0311688836d9f79831f4d (diff)
downloadorg-mode-2c16f092e64915a7e3d0b2dda82f3978a0f42dea.tar.gz
Release 4.64release_4.64
-rw-r--r--Makefile4
-rw-r--r--org675
-rw-r--r--org-install.el1
-rw-r--r--org-mouse.el153
-rw-r--r--org.el595
-rw-r--r--org.pdfbin666884 -> 672587 bytes
-rw-r--r--org.texi281
-rw-r--r--orgcard.pdfbin59695 -> 58128 bytes
-rw-r--r--orgcard.tex4
9 files changed, 1104 insertions, 609 deletions
diff --git a/Makefile b/Makefile
index dd40738..b9ab5fc 100644
--- a/Makefile
+++ b/Makefile
@@ -118,8 +118,7 @@ orgcard.ps: orgcard.dvi
info:
$(MAKEINFO) --no-split org.texi -o org
-pdf:
- $(TEXI2PDF) org.texi
+pdf: org.pdf
card: orgcard.pdf orgcard.ps
@@ -131,6 +130,7 @@ ecompile:
distfile:
@if [ "X$(TAG)" = "X" ]; then echo "*** No tag ***"; exit 1; fi
+ touch org.texi orgcard.tex
make info
make doc
rm -rf org-$(TAG) org-$(TAG).zip
diff --git a/org b/org
index 12b9622..46eed1d 100644
--- a/org
+++ b/org
@@ -2,10 +2,10 @@ This is org, produced by makeinfo version 4.8 from org.texi.
INFO-DIR-SECTION Emacs
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
- This manual is for Org-mode (version 4.62).
+ This manual is for Org-mode (version 4.64).
Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation
@@ -27,7 +27,7 @@ File: org, Node: Top, Next: Introduction, Prev: (dir), Up: (dir)
Org Mode Manual
***************
-This manual is for Org-mode (version 4.62).
+This manual is for Org-mode (version 4.64).
Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation
@@ -101,7 +101,7 @@ The spreadsheet
* Formula syntax for Lisp:: Writing formulas in Emacs Lisp
* Field formulas:: Formulas valid for a single field
* Column formulas:: Formulas valid for an entire column
-* Editing and debuggung formulas:: Fixing formulas
+* Editing and debugging formulas:: Fixing formulas
* Updating the table:: Recomputing all dependent fields
* Advanced features:: Field names, parameters and automatic recalc
@@ -121,6 +121,12 @@ Internal links
* Radio targets:: Make targets trigger links in plain text.
* CamelCase links:: Activating CamelCase words as links
+Remember
+
+* Setting up remember:: Some code for .emacs to get things going
+* Remember templates:: Define the outline of different note types
+* Storing notes:: Directly get the note to where it belongs
+
TODO items
* TODO basics:: Marking and displaying TODO entries
@@ -300,7 +306,7 @@ iCalendar file. It can also serve as a publishing tool for a set of
linked webpages.
An important design aspect that distinguishes Org-mode from for
-example Planner/Muse is that it encougages to store every piece of
+example Planner/Muse is that it encourages to store every piece of
information only once. In Planner, you have project pages, day pages
and possibly other files, duplicating some information such as tasks.
In Org-mode, you only have notes files. In your notes you mark entries
@@ -795,8 +801,8 @@ basic one is `org-occur':
body are made visible. In order to provide minimal context, also
the full hierarchy of headlines above the match is shown, as well
as the headline following the match. Each match is also
- highlighted; the highlights disappear when the bufer is changes an
- editing command, or by pressing `C-c C-c'. When called with a
+ highlighted; the highlights disappear when the buffer is changes
+ an editing command, or by pressing `C-c C-c'. When called with a
`C-u' prefix argument, previous highlights are kept, so several
calls to this command can be stacked.
For frequently used sparse trees of specific search strings, you can
@@ -1204,7 +1210,7 @@ derive fields from other fields.
* Formula syntax for Lisp:: Writing formulas in Emacs Lisp
* Field formulas:: Formulas valid for a single field
* Column formulas:: Formulas valid for an entire column
-* Editing and debuggung formulas:: Fixing formulas
+* Editing and debugging formulas:: Fixing formulas
* Updating the table:: Recomputing all dependent fields
* Advanced features:: Field names, parameters and automatic recalc
@@ -1359,7 +1365,7 @@ File: org, Node: Field formulas, Next: Column formulas, Prev: Formula syntax
--------------------
To assign a formula to a particular field, type it directly into the
-field, preceded by `=:', for example `=:$1+$2'. When you press <TAB>
+field, preceded by `:=', for example `:=$1+$2'. When you press <TAB>
or <RET> or `C-c C-c' with the cursor still in the field, the formula
will be stored as the formula for this field, evaluated, and the
current field replaced with the result.
@@ -1382,7 +1388,7 @@ following command
it to the current field and stores it.

-File: org, Node: Column formulas, Next: Editing and debuggung formulas, Prev: Field formulas, Up: The spreadsheet
+File: org, Node: Column formulas, Next: Editing and debugging formulas, Prev: Field formulas, Up: The spreadsheet
3.4.5 Column formulas
---------------------
@@ -1414,7 +1420,7 @@ following command:
current column.

-File: org, Node: Editing and debuggung formulas, Next: Updating the table, Prev: Column formulas, Up: The spreadsheet
+File: org, Node: Editing and debugging formulas, Next: Updating the table, Prev: Column formulas, Up: The spreadsheet
3.4.6 Editing and Debugging formulas
------------------------------------
@@ -1481,7 +1487,7 @@ for example by pressing `C-c = <RET>' in a field. Detailed information
will be displayed.

-File: org, Node: Updating the table, Next: Advanced features, Prev: Editing and debuggung formulas, Up: The spreadsheet
+File: org, Node: Updating the table, Next: Advanced features, Prev: Editing and debugging formulas, Up: The spreadsheet
3.4.7 Updating the Table
------------------------
@@ -1813,19 +1819,17 @@ insert it into an org-mode file, and to follow the link.
Insert a link. This prompts for a link to be inserted into the
buffer. You can just type a link, using text for an internal
link, or one of the link type prefixes mentioned in the examples
- above. Through completion, all links stored during the current
- session can be accessed(1). The link will be inserted into the
- buffer, along with a descriptive text. If some text was selecten
+ above. All links stored during the current session are part of
+ the history for this prompt, so you can access them with <up> and
+ <down>, or with completion(1). The link will be inserted into the
+ buffer, along with a descriptive text. If some text was selected
when this command is called, the selected text becomes the default
description.
Note that you don't have to use this command to insert a link.
Links in Org-mode are plain text, and you can type or paste them
straight into the buffer. By using this command, the links are
automatically enclosed in double brackets, and you will be asked
- for the optional descriptive text. If the link is a `file:' link
- and the linked file is located in the same directory as the
- current file or a subdirectory of it, the path of the file will be
- inserted relative to the current directory.
+ for the optional descriptive text.
`C-u C-c C-l'
When `C-c C-l' is called with a `C-u' prefix argument, a link to a
@@ -1875,6 +1879,17 @@ insert it into an org-mode file, and to follow the link.
command several times in direct succession moves through a ring of
previously recorded positions.
+`C-c C-x C-n'
+`C-c C-x C-p'
+ Move forward/backward to the next link in the buffer. At the
+ limit of the buffer, the search fails once, and then wraps around.
+ The key bindings for this are really too long, you might want to
+ bind this also to `C-n' and `C-p'
+ (add-hook 'org-load-hook
+ (lambda ()
+ (define-key 'org-mode-map "\C-n" 'org-next-link)
+ (define-key 'org-mode-map "\C-p" 'org-previous-link)))
+
---------- Footnotes ----------
(1) After insertion of a stored link, the link will be removed from
@@ -1887,14 +1902,14 @@ triple `C-u' prefix to `C-c C-l', or configure the option

File: org, Node: Link abbreviations, Next: Search options, Prev: Handling links, Up: Hyperlinks
-4.5 Link abbreviatons
-=====================
+4.5 Link abbreviations
+======================
Long URLs can be cumbersome to type, and often many similar links are
needed in a document. For this you can use link abbreviations. An
abbreviated link looks like this
- [[linkword::tag][description]]
+ [[linkword:tag][description]]
where the tag is optional. Such abbreviations are resolved according to
the information in the variable `org-link-abbrev-alist' that relates
@@ -1912,9 +1927,9 @@ in order to create the link. You may also specify a function that will
be called with the tag as the only argument to create the link.
With the above setting, you could link to a specific bug with
-`[[bugzilla::129]]', search the web for OrgMode with
-`[[google::OrgMode]]' and find out what the Org-mode author is doing
-besides Emacs hacking with `[[ads::Dominik,C]]'.
+`[[bugzilla:129]]', search the web for `OrgMode' with
+`[[google:OrgMode]]' and find out what the Org-mode author is doing
+besides Emacs hacking with `[[ads:Dominik,C]]'.
If you need special abbreviations just for a single Org-mode buffer,
you can define them in the file with
@@ -2004,15 +2019,30 @@ File: org, Node: Remember, Prev: Custom searches, Up: Hyperlinks
============
Another way to create org entries with links to other files is through
-the _Remember_ package by John Wiegley. _Remember_ lets you store
-quick notes with little interruption of your work flow. See
+the remember package by John Wiegley. Remember lets you store quick
+notes with little interruption of your work flow. See
`http://www.emacswiki.org/cgi-bin/wiki/RememberMode' for more
-information. The notes produced by _Remember_ can be stored in
-different ways, and Org-mode files are a good target. Org-mode allows
-you to file away notes either to a default file, or directly to the
-correct location in your Org-mode outline tree. The following
-customization will tell _Remember_ to use org files as target, and to
-create annotations compatible with Org-mode links.
+information. The notes produced by Remember can be stored in different
+ways, and Org-mode files are a good target. Org-mode significantly
+expands the possibilities of remember: You may define templates for
+different note types, and to associate target files and headlines with
+specific templates. It also allows you to select the location where a
+note should be stored interactively, on the fly.
+
+* Menu:
+
+* Setting up remember:: Some code for .emacs to get things going
+* Remember templates:: Define the outline of different note types
+* Storing notes:: Directly get the note to where it belongs
+
+
+File: org, Node: Setting up remember, Next: Remember templates, Prev: Remember, Up: Remember
+
+4.8.1 Setting up remember
+-------------------------
+
+The following customization will tell remember to use org files as
+target, and to create annotations compatible with Org-mode links.
(setq org-directory "~/path/to/my/orgfiles/")
(setq org-default-notes-file "~/.notes")
@@ -2020,22 +2050,34 @@ create annotations compatible with Org-mode links.
(setq remember-handler-functions '(org-remember-handler))
(add-hook 'remember-mode-hook 'org-remember-apply-template)
- In combination with Org-mode, you can use templates to generate
-different types of remember notes. For example, if you would like to
-use one template to create general TODO entries, and another one for
-journal entries, you could use:
+
+File: org, Node: Remember templates, Next: Storing notes, Prev: Setting up remember, Up: Remember
- (setq org-remember-templates
- '((?t "* TODO %?\n %i\n %a" "~/org/TODO.org")
- (?j "* %U %?\n\n %i\n %a" "~/org/JOURNAL.org")))
+4.8.2 Remember templates
+------------------------
-In these entries, the character specifies how to select the template,
-the first string specifies the template, and the (optional) second
-string specifies a default file (overruling `org-default-notes-file')
-as a target for this note.
+In combination with Org-mode, you can use templates to generate
+different types of remember notes. For example, if you would like to
+use one template to create general TODO entries, another one for
+journal entries, and a third one for collecting random ideas, you could
+use:
- 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
+ (setq org-remember-templates
+ '((?t "* TODO %?\n %i\n %a" "~/org/TODO.org")
+ (?j "* %U %?\n\n %i\n %a" "~/org/JOURNAL.org")
+ (?i "* %^{Title}\n %i\n %a" "~/org/JOURNAL.org" "New Ideas")))
+
+In these entries, the character specifies how to select the template.
+The first string specifies the template. Two more (optional) strings
+give the file in which, and the headline under which the new note
+should be stored. The file defaults to `org-default-notes-file', the
+heading to `org-remember-default-headline'. Both defaults help to get
+to the storing location quickly, but you can change the location
+interactively while storing the note.
+
+ When you call `M-x remember' (or `M-x org-remember') to remember
+something, org will prompt for a key to select the template (if you have
+more than one template) and then prepare the buffer like
* TODO
[[file:link to where you called remember]]
@@ -2045,16 +2087,64 @@ or
[[file:link to where you called remember]]
-See the variable `org-remember-templates' for more details.
+During expansion of the template, special `%'-escapes allow dynamic
+insertion of content:
+ %^{prompt} prompt the user for a string and replace this sequence with it.
+ %t time stamp, date only
+ %T time stamp with date and time
+ %u, %U like the above, but inactive time stamps
+ %^t like `%t', but prompt for date. Similarly `%^T', `%^u', `%^U'
+ You may define a prompt like `%^{Birthday}t'
+ %n user name (taken from `user-full-name')
+ %a annotation, normally the link created with `org-store-link'
+ %i initial content, the region when remember is called with C-u.
+ The entire text will be indented like `%i' itself.
+ %:keyword specific information for certain link types, see below
+
+For specific link types, the following keywords will be defined:
+
+ Link type | Available keywords
+ -------------------+----------------------------------------------
+ bbdb | %:name %:company
+ vm, wl, mh, rmail | %:type %:subject %:message-id
+ | %:from %:fromname %:fromaddress
+ | %:to %:toname %:toaddress
+ | %:fromto (either "to NAME" or "from NAME")(1)
+ gnus | %:group, for messages also all email fields
+ w3, w3m | %:url
+ info | %:file %:node
+ calendar | %:date"
+
+If you would like to have the cursor in a specific position after the
+template has been expanded:
+
+ %? After completing the template, position cursor here.
+
+If you change you mind about which template to use, call `org-remember'
+in the remember buffer. You may then select a new template that will
+be filled with the previoous context information.
+
+ ---------- Footnotes ----------
+
+ (1) This will always be the other, not the user. See the variable
+`org-from-is-user-regexp'.
- When you are finished composing a note with remember, you have to
-press `C-c C-c' to file the note away. The handler first prompts for a
-target file - if you press <RET>, the value of `org-default-notes-file'
+
+File: org, Node: Storing notes, Prev: Remember templates, Up: Remember
+
+4.8.3 Storing notes
+-------------------
+
+When you are finished preparing a note with remember, you have to press
+`C-c C-c' to file the note away. The handler first prompts for a
+target file - if you press <RET>, the value specified for the template
is used. Then the command offers the headings tree of the selected
-file. You can either immediately press <RET> to get the note appended
-to the file. Or you can use vertical cursor motion (<up> and <down>)
-and visibility cycling (<TAB>) to find a better place. Pressing <RET>
-or <left> or <right> leads to the following result.
+file, with the cursor position at the default headline (if you had
+specified one in the template). You can either immediately press <RET>
+to get the note placed there. Or you can use vertical cursor motion
+(<up> and <down>) and visibility cycling (<TAB>) to find a better
+place. Pressing <RET> or <left> or <right> then leads to the following
+result.
Cursor Key Note gets inserted
position
@@ -2066,10 +2156,9 @@ not on <RET> at cursor position, level taken from context.
headline Or use prefix arg to specify level
manually.
- So a fast way to store the note is to press `C-c C-c <RET> <RET>' to
-append it to the default file. Even shorter would be `C-u C-c C-c',
-which does the same without even showing the tree. But with little
-extra effort, you can push it directly to the correct location.
+ So a fast way to store the note to its default location is to press
+`C-c C-c <RET> <RET>'. Even shorter would be `C-u C-c C-c', which does
+the same without even asking for a file or showing the tree.
Before inserting the text into a tree, the function ensures that the
text has a headline, i.e. a first line that starts with a `*'. If not,
@@ -3404,7 +3493,7 @@ indicate a project that should not be considered yet. Lets further
assume that the todo keyword DONE marks finished projects, and that NEXT
and TODO indicate next actions. Finally, the tag @SHOP indicates
shopping and is a next action even without the NEXT tag. In this case
-you would start by identifying elegible projects with a tags/todo match
+you would start by identifying eligible projects with a tags/todo match
`+PROJECT/-MAYBE-DONE', and then check for TODO, NEXT and @SHOP in the
subtree to identify projects that are not stuck. The correct
customization for this is
@@ -4264,8 +4353,10 @@ File: org, Node: Quoting HTML tags, Next: Links, Prev: Export commands, Up:
------------------------
If you want to include HTML tags which should be interpreted as such,
-mark them with `@' as in `@<b>bold text@</b>'. Plain `<' and `>' are
-always transformed to `&lt;' and `&gt;' in HTML export.
+mark them with `@' as in `@<b>bold text@</b>'. Note that this wirks
+only for simple tags, but not for complex ones like a `<span>' that
+contains, for example a link. Plain `<' and `>' are always transformed
+to `&lt;' and `&gt;' in HTML export.

File: org, Node: Links, Next: Images, Prev: Quoting HTML tags, Up: HTML export
@@ -4392,22 +4483,7 @@ iCalendar format.
`org-combined-agenda-icalendar-file'.
How this calendar is best read and updated, depends on the
-application you are using. For example, when using iCal under Apple
-MacOS X, you could create a new calendar `OrgMode' (the default name
-for the calendar created by `C-c C-e c', see the variables
-`org-icalendar-combined-name' and
-`org-combined-agenda-icalendar-file'). Then set Org-mode to overwrite
-the corresponding file `~/Library/Calendars/OrgMode.ics'. You may even
-use AppleScript to make iCal re-read the calendar files each time a new
-version of `OrgMode.ics' is produced. Here is the setup needed for
-this:
-
- (setq org-combined-agenda-icalendar-file
- "~/Library/Calendars/OrgMode.ics")
- (add-hook 'org-after-save-iCalendar-file-hook
- (lambda ()
- (shell-command
- "osascript -e 'tell application \"iCal\" to reload calendars'")))
+application you are using. The FAQ covers this issue.

File: org, Node: Text interpretation, Prev: iCalendar export, Up: Exporting
@@ -4456,6 +4532,9 @@ formatted output.
* You can make words *bold*, /italic/, _underlined_, `=code=', and
`+strikethrough+'.
+ * A line consisting of only dashes, and at least 5 of them, will be
+ exported as a horizontal line (`<hr/>' in HTML).
+
* Many TeX macros and entire LaTeX fragments are converted into HTML
entities or images (*note Embedded LaTeX::).
@@ -4913,7 +4992,7 @@ File: org, Node: Customization, Next: In-buffer settings, Prev: Completion,
12.2 Customization
==================
-There are more than 170 variables that can be used to customize
+There are more than 180 variables that can be used to customize
Org-mode. For the sake of compactness of the manual, I am not
describing the variables here. A structured overview of customization
variables is available with `M-x org-customize'. Or select `Browse Org
@@ -5197,7 +5276,7 @@ File: org, Node: Cooperation, Next: Conflicts, Prev: Interaction, Up: Intera
`calc.el' by Dave Gillespie
Org-mode uses the calc package for implementing spreadsheet
- functionality in its tables (*note The spreadsheet::). Org-modes
+ functionality in its tables (*note The spreadsheet::). Org-mode
checks for the availability of calc by looking for the function
`calc-eval' which should be autoloaded in your setup if calc has
been installed properly. As of Emacs 22, calc is part of the Emacs
@@ -5314,6 +5393,8 @@ found too hard to fix.
* Recalculating a table line applies the formulas from left to right.
If a formula uses _calculated_ fields further down the row,
multiple recalculation may be needed to get all fields consistent.
+ You may use the command `org-table-iterate' (`C-u C-c *') to
+ recalculate until convergence.
* A single letter cannot be made bold, for example `*a*'.
@@ -5491,16 +5572,17 @@ Appendix B History and Acknowledgments
**************************************
Org-mode was borne in 2003, out of frustration over the user interface
-of the Emacs outline-mode. All I wanted was to make working with an
-outline tree possible without having to remember more than 10 commands
-just for hiding and unhiding parts of the outline tree, and to allow to
-restructure a tree easily. Visibility cycling and structure editing
-were originally implemented in the package `outline-magic.el', but
-quickly moved to the more general `org.el'. TODO entries, basic time
-stamps, and table support were added next, and highlight the two main
-goals that Org-mode still has today: To create a new, outline-based,
-plain text mode with innovative and intuitive editing features, and to
-incorporate project planning functionality directly into a notes file.
+of the Emacs outline-mode. All I initially wanted was to make working
+with an outline tree possible without having to remember more than 10
+commands just for hiding and unhiding parts of the outline tree, and to
+allow to restructure a tree easily. Visibility cycling and structure
+editing were originally implemented in the package `outline-magic.el',
+but quickly moved to the more general `org.el'. TODO entries, basic
+time stamps, and table support were added next, and highlight the two
+main goals that Org-mode still has today: To create a new,
+outline-based, plain text mode with innovative and intuitive editing
+features, and to incorporate project planning functionality directly
+into a notes file.
Since the first release, hundreds of emails to me or on
`emacs-orgmode@gnu.org' have provided a constant stream of bug reports,
@@ -5529,7 +5611,9 @@ if I have forgotten someone, please accept my apologies and let me know.
* Eddward DeVilla proposed and tested checkbox statistics.
- * Kees Dullemond inspired the use of narrowed tabled columns.
+ * Kees Dullemond used to edit projects lists directly in HTML and so
+ inspired some of the early development, including HTML export. He
+ also asked for a way to narrow wide table columns.
* Christian Egli converted the documentation into TeXInfo format,
patched CSS formatting into the HTML exporter, and inspired the
@@ -5655,7 +5739,6 @@ Index
* align, STARTUP keyword: In-buffer settings. (line 29)
* allout.el: Conflicts. (line 6)
* angular brackets, around links: External links. (line 43)
-* applescript, for calendar update: iCalendar export. (line 38)
* archive locations: Moving subtrees. (line 21)
* archiving: Archiving. (line 6)
* ASCII export: ASCII export. (line 6)
@@ -5698,7 +5781,7 @@ Index
* completion, of CamelCase links <1>: Completion. (line 6)
* completion, of CamelCase links: CamelCase links. (line 6)
* completion, of dictionary words: Completion. (line 6)
-* completion, of file names: Handling links. (line 45)
+* completion, of file names: Handling links. (line 43)
* completion, of link abbreviations: Completion. (line 6)
* completion, of links: Handling links. (line 27)
* completion, of option keywords <1>: Completion. (line 6)
@@ -5733,7 +5816,7 @@ Index
* DEADLINE keyword: Time stamps. (line 53)
* deadlines: Time stamps. (line 6)
* Deadlines, repeating: Repeating items. (line 6)
-* debugging, of table formulas: Editing and debuggung formulas.
+* debugging, of table formulas: Editing and debugging formulas.
(line 60)
* demotion, of subtrees: Structure editing. (line 6)
* diary entries, creating from agenda: Agenda commands. (line 198)
@@ -5746,7 +5829,7 @@ Index
* document structure: Document structure. (line 6)
* DONE, final TODO keyword: Per file keywords. (line 20)
* editing tables: Tables. (line 6)
-* editing, of table formulas: Editing and debuggung formulas.
+* editing, of table formulas: Editing and debugging formulas.
(line 6)
* elisp links: External links. (line 6)
* emphasized text: Export options. (line 25)
@@ -5765,21 +5848,21 @@ Index
* field references: References. (line 14)
* file links: External links. (line 6)
* file links, searching: Search options. (line 6)
-* file name completion: Handling links. (line 45)
+* file name completion: Handling links. (line 43)
* files for agenda: Agenda files. (line 6)
* files, adding to agenda list: Agenda files. (line 12)
* files, selecting for publishing: Selecting files. (line 6)
-* fixed width: Enhancing text. (line 25)
+* fixed width: Enhancing text. (line 28)
* fixed-width sections: Export options. (line 25)
* folded, subtree visibility state: Visibility cycling. (line 10)
* folding, sparse trees: Sparse trees. (line 6)
-* following links: Handling links. (line 60)
+* following links: Handling links. (line 58)
* format specifier: Formula syntax for Calc.
(line 15)
* format, of links: Link format. (line 6)
-* formula debugging: Editing and debuggung formulas.
+* formula debugging: Editing and debugging formulas.
(line 60)
-* formula editing: Editing and debuggung formulas.
+* formula editing: Editing and debugging formulas.
(line 6)
* formula syntax, Calc: Formula syntax for Calc.
(line 6)
@@ -5805,6 +5888,7 @@ Index
* hiding leading stars: Clean view. (line 6)
* history: History and Acknowledgments.
(line 6)
+* horizontal rules, in exported files: Enhancing text. (line 18)
* HTML export: HTML export. (line 6)
* hyperlinks: Hyperlinks. (line 6)
* iCalendar export: iCalendar export. (line 6)
@@ -5827,24 +5911,25 @@ Index
* keyword options: Per file keywords. (line 6)
* LaTeX fragments <1>: Export options. (line 25)
* LaTeX fragments: LaTeX fragments. (line 6)
-* LaTeX fragments, export: Enhancing text. (line 18)
+* LaTeX fragments, export: Enhancing text. (line 21)
* LaTeX fragments, preview: Processing LaTeX fragments.
(line 6)
* LaTeX interpretation: Embedded LaTeX. (line 6)
* level, require for tags match: Tag searches. (line 68)
* linebreak preservation: Export options. (line 25)
-* linebreak, forced: Enhancing text. (line 32)
+* linebreak, forced: Enhancing text. (line 35)
* link abbreviations: Link abbreviations. (line 6)
* link abbreviations, completion of: Completion. (line 6)
* link completion: Handling links. (line 27)
* link format: Link format. (line 6)
* links, external: External links. (line 6)
+* links, finding next/previous: Handling links. (line 91)
* links, handling: Handling links. (line 6)
* links, in HTML export: Links. (line 6)
* links, internal: Internal links. (line 6)
* links, publishing: Publishing links. (line 6)
* links, radio targets: Radio targets. (line 6)
-* links, returning to: Handling links. (line 87)
+* links, returning to: Handling links. (line 85)
* Lisp forms, as table formulas: Formula syntax for Lisp.
(line 6)
* lists, hand-formatted: Enhancing text. (line 11)
@@ -5856,7 +5941,7 @@ Index
* lognotedone, STARTUP keyword: In-buffer settings. (line 33)
* lognotestate, STARTUP keyword: In-buffer settings. (line 33)
* maintainer: Feedback. (line 6)
-* mark ring: Handling links. (line 83)
+* mark ring: Handling links. (line 81)
* marking characters, tables: Advanced features. (line 40)
* matching, of tags: Matching headline tags.
(line 6)
@@ -5971,14 +6056,14 @@ Index
(line 6)
* syntax, of formulas: Formula syntax for Calc.
(line 6)
-* table editor, builtin: Built-in table editor.
+* table editor, built-in: Built-in table editor.
(line 6)
* table editor, table.el: Cooperation. (line 37)
* table of contents: Export options. (line 25)
* table.el: Cooperation. (line 34)
* tables <1>: Export options. (line 25)
* tables: Tables. (line 6)
-* tables, export: Enhancing text. (line 21)
+* tables, export: Enhancing text. (line 24)
* tag completion: Completion. (line 6)
* tag searches: Tag searches. (line 6)
* tags: Tags. (line 6)
@@ -5988,11 +6073,11 @@ Index
* targets, for links: Internal links. (line 6)
* targets, radio: Radio targets. (line 6)
* tasks, breaking down: Breaking down tasks. (line 6)
-* templates, for remember: Remember. (line 23)
+* templates, for remember: Remember templates. (line 6)
* TeX interpretation: Embedded LaTeX. (line 6)
* TeX macros <1>: Export options. (line 25)
* TeX macros: Math symbols. (line 6)
-* TeX macros, export: Enhancing text. (line 18)
+* TeX macros, export: Enhancing text. (line 21)
* TeX symbol completion: Completion. (line 6)
* TeX-like syntax for sub- and superscripts: Export options. (line 25)
* thanks: History and Acknowledgments.
@@ -6099,9 +6184,9 @@ Key Index
* C-a a L: Timeline. (line 10)
* C-c !: Creating timestamps. (line 21)
* C-c #: Checkboxes. (line 56)
-* C-c %: Handling links. (line 83)
-* C-c &: Handling links. (line 87)
-* C-c ': Editing and debuggung formulas.
+* C-c %: Handling links. (line 81)
+* C-c &: Handling links. (line 85)
+* C-c ': Editing and debugging formulas.
(line 24)
* C-c *: Updating the table. (line 13)
* C-c +: Built-in table editor.
@@ -6111,16 +6196,16 @@ Key Index
(line 92)
* C-c .: Creating timestamps. (line 10)
* C-c /: Sparse trees. (line 15)
-* C-c :: Enhancing text. (line 29)
+* C-c :: Enhancing text. (line 32)
* C-c ;: Comment lines. (line 11)
* C-c <: Creating timestamps. (line 25)
* C-c <TAB>: Built-in table editor.
(line 163)
-* C-c = <1>: Editing and debuggung formulas.
+* C-c = <1>: Editing and debugging formulas.
(line 10)
* C-c =: Column formulas. (line 24)
* C-c >: Creating timestamps. (line 29)
-* C-c ?: Editing and debuggung formulas.
+* C-c ?: Editing and debugging formulas.
(line 20)
* C-c [: Agenda files. (line 12)
* C-c \: Tag searches. (line 9)
@@ -6152,7 +6237,7 @@ Key Index
(line 15)
* C-c C-c <4>: Setting tags. (line 10)
* C-c C-c <5>: Checkboxes. (line 37)
-* C-c C-c <6>: Editing and debuggung formulas.
+* C-c C-c <6>: Editing and debugging formulas.
(line 32)
* C-c C-c <7>: Built-in table editor.
(line 54)
@@ -6178,9 +6263,9 @@ Key Index
* C-c C-l: Handling links. (line 27)
* C-c C-n: Motion. (line 8)
* C-c C-o <1>: Creating timestamps. (line 33)
-* C-c C-o: Handling links. (line 60)
+* C-c C-o: Handling links. (line 58)
* C-c C-p: Motion. (line 9)
-* C-c C-q <1>: Editing and debuggung formulas.
+* C-c C-q <1>: Editing and debugging formulas.
(line 34)
* C-c C-q: Built-in table editor.
(line 125)
@@ -6201,7 +6286,9 @@ Key Index
* C-c C-x C-k: Structure editing. (line 39)
* C-c C-x C-l: Processing LaTeX fragments.
(line 9)
+* C-c C-x C-n: Handling links. (line 91)
* C-c C-x C-o: Clocking work time. (line 14)
+* C-c C-x C-p: Handling links. (line 91)
* C-c C-x C-r: Clocking work time. (line 43)
* C-c C-x C-s: Moving subtrees. (line 10)
* C-c C-x C-t: Custom time format. (line 12)
@@ -6227,17 +6314,17 @@ Key Index
* C-TAB: ARCHIVE tag. (line 38)
* C-u C-c *: Updating the table. (line 18)
* C-u C-c .: Creating timestamps. (line 16)
-* C-u C-c = <1>: Editing and debuggung formulas.
+* C-u C-c = <1>: Editing and debugging formulas.
(line 10)
* C-u C-c =: Field formulas. (line 24)
* C-u C-c C-c: Updating the table. (line 19)
-* C-u C-c C-l: Handling links. (line 45)
+* C-u C-c C-l: Handling links. (line 43)
* C-u C-c C-x C-a: ARCHIVE tag. (line 31)
* C-u C-c C-x C-s: Moving subtrees. (line 12)
* C-u C-c C-x C-u <1>: Dynamic blocks. (line 22)
* C-u C-c C-x C-u: Clocking work time. (line 70)
* C-u C-u C-c *: Updating the table. (line 24)
-* C-u C-u C-c =: Editing and debuggung formulas.
+* C-u C-u C-c =: Editing and debugging formulas.
(line 14)
* D: Agenda commands. (line 74)
* d: Agenda commands. (line 71)
@@ -6249,7 +6336,7 @@ Key Index
* l: Agenda commands. (line 57)
* L: Agenda commands. (line 32)
* M: Agenda commands. (line 204)
-* M-<down> <1>: Editing and debuggung formulas.
+* M-<down> <1>: Editing and debugging formulas.
(line 42)
* M-<down>: Built-in table editor.
(line 82)
@@ -6264,7 +6351,7 @@ Key Index
* M-<TAB> <1>: Completion. (line 10)
* M-<TAB> <2>: Setting tags. (line 6)
* M-<TAB>: Per file keywords. (line 17)
-* M-<up> <1>: Editing and debuggung formulas.
+* M-<up> <1>: Editing and debugging formulas.
(line 42)
* M-<up>: Built-in table editor.
(line 82)
@@ -6294,11 +6381,11 @@ Key Index
* mouse-1 <1>: Agenda commands. (line 35)
* mouse-1 <2>: The date/time prompt.
(line 33)
-* mouse-1: Handling links. (line 74)
+* mouse-1: Handling links. (line 72)
* mouse-2 <1>: Agenda commands. (line 35)
-* mouse-2: Handling links. (line 74)
+* mouse-2: Handling links. (line 72)
* mouse-3 <1>: Agenda commands. (line 28)
-* mouse-3: Handling links. (line 79)
+* mouse-3: Handling links. (line 77)
* n: Agenda commands. (line 19)
* O: Agenda commands. (line 180)
* o: Agenda commands. (line 65)
@@ -6314,7 +6401,7 @@ Key Index
(line 42)
* S-<down> <3>: Creating timestamps. (line 58)
* S-<down> <4>: Priorities. (line 25)
-* S-<down> <5>: Editing and debuggung formulas.
+* S-<down> <5>: Editing and debugging formulas.
(line 37)
* S-<down>: Plain lists. (line 55)
* S-<left> <1>: Agenda commands. (line 169)
@@ -6337,7 +6424,7 @@ Key Index
(line 45)
* S-<up> <3>: Creating timestamps. (line 58)
* S-<up> <4>: Priorities. (line 25)
-* S-<up> <5>: Editing and debuggung formulas.
+* S-<up> <5>: Editing and debugging formulas.
(line 37)
* S-<up>: Plain lists. (line 55)
* T: Agenda commands. (line 126)
@@ -6350,171 +6437,175 @@ Key Index

Tag Table:
Node: Top970
-Node: Introduction10946
-Node: Summary11361
-Node: Installation14262
-Node: Activation15640
-Node: Feedback16889
-Node: Document structure18965
-Node: Outlines19739
-Node: Headlines20399
-Node: Visibility cycling21022
-Ref: Visibility cycling-Footnote-123113
-Ref: Visibility cycling-Footnote-223171
-Ref: Visibility cycling-Footnote-323221
-Node: Motion23490
-Node: Structure editing24274
-Node: Archiving27100
-Node: ARCHIVE tag27658
-Node: Moving subtrees29451
-Node: Sparse trees30762
-Ref: Sparse trees-Footnote-132893
-Ref: Sparse trees-Footnote-233075
-Node: Plain lists33190
-Ref: Plain lists-Footnote-136715
-Ref: Plain lists-Footnote-237072
-Node: Tables37256
-Node: Built-in table editor37770
-Node: Narrow columns44766
-Ref: Narrow columns-Footnote-146698
-Node: orgtbl-mode46744
-Node: The spreadsheet47238
-Node: References48056
-Node: Formula syntax for Calc51313
-Node: Formula syntax for Lisp53630
-Node: Field formulas54858
-Node: Column formulas56169
-Node: Editing and debuggung formulas57592
-Node: Updating the table60300
-Node: Advanced features61331
-Node: Hyperlinks65756
-Node: Link format66529
-Node: Internal links67822
-Ref: Internal links-Footnote-169811
-Node: Radio targets69943
-Node: CamelCase links70658
-Node: External links71252
-Node: Handling links73656
-Ref: Handling links-Footnote-178424
-Ref: Handling links-Footnote-278661
-Node: Link abbreviations78735
-Node: Search options80414
-Ref: Search options-Footnote-182194
-Node: Custom searches82275
-Node: Remember83323
-Node: TODO items87017
-Node: TODO basics87999
-Node: TODO extensions89526
-Node: Workflow states90321
-Node: TODO types91306
-Ref: TODO types-Footnote-192964
-Node: Per file keywords93046
-Ref: Per file keywords-Footnote-194500
-Node: Priorities94701
-Node: Breaking down tasks95945
-Ref: Breaking down tasks-Footnote-196464
-Node: Checkboxes96560
-Node: Timestamps99315
-Node: Time stamps99849
-Ref: Time stamps-Footnote-1103343
-Ref: Time stamps-Footnote-2103459
-Node: Creating timestamps103614
-Node: The date/time prompt106240
-Ref: The date/time prompt-Footnote-1108006
-Node: Custom time format108112
-Node: Repeating items109670
-Node: Progress logging111480
-Node: Closing items112126
-Ref: Closing items-Footnote-1113060
-Ref: Closing items-Footnote-2113129
-Node: Tracking TODO state changes113202
-Node: Clocking work time114058
-Ref: Clocking work time-Footnote-1117704
-Ref: Clocking work time-Footnote-2117782
-Node: Tags117908
-Node: Tag inheritance118670
-Node: Setting tags119607
-Ref: Setting tags-Footnote-1123806
-Ref: Setting tags-Footnote-2123918
-Node: Tag searches124001
-Node: Agenda views126712
-Node: Agenda files128657
-Ref: Agenda files-Footnote-1129623
-Ref: Agenda files-Footnote-2129772
-Node: Agenda dispatcher129965
-Node: Built-in agenda views131656
-Node: Weekly/Daily agenda132234
-Node: Global TODO list134363
-Node: Matching headline tags136536
-Node: Timeline137607
-Node: Stuck projects138273
-Node: Presentation and sorting139972
-Node: Categories140763
-Node: Time-of-day specifications141427
-Node: Sorting of agenda items143398
-Node: Agenda commands144680
-Node: Custom agenda views151333
-Node: Storing searches152008
-Node: Block agenda153920
-Node: Setting Options155150
-Node: Batch processing157862
-Node: Embedded LaTeX158992
-Ref: Embedded LaTeX-Footnote-1160084
-Node: Math symbols160274
-Node: Subscripts and Superscripts161039
-Node: LaTeX fragments161883
-Ref: LaTeX fragments-Footnote-1163991
-Node: Processing LaTeX fragments164253
-Node: CDLaTeX mode165199
-Ref: CDLaTeX mode-Footnote-1167683
-Node: Exporting167831
-Node: ASCII export169145
-Node: HTML export170435
-Node: Export commands171054
-Node: Quoting HTML tags171778
-Node: Links172121
-Node: Images172818
-Ref: Images-Footnote-1173689
-Node: CSS support173750
-Ref: CSS support-Footnote-1175069
-Node: XOXO export175182
-Node: iCalendar export175621
-Node: Text interpretation177444
-Node: Comment lines177923
-Node: Enhancing text178394
-Node: Export options180086
-Node: Publishing181753
-Ref: Publishing-Footnote-1182549
-Node: Configuration182745
-Node: Project alist183463
-Node: Sources and destinations184529
-Node: Selecting files185259
-Node: Publishing action186007
-Node: Publishing options187240
-Node: Publishing links189392
-Node: Project page index190905
-Node: Sample configuration191683
-Node: Simple example192175
-Node: Complex example192848
-Node: Triggering publication194924
-Node: Miscellaneous195609
-Node: Completion196243
-Node: Customization197714
-Node: In-buffer settings198297
-Node: The very busy C-c C-c key202537
-Node: Clean view204181
-Node: TTY keys206758
-Node: Interaction208367
-Node: Cooperation208764
-Node: Conflicts211505
-Node: Bugs213097
-Node: Extensions and Hacking214491
-Node: Extensions214995
-Node: Dynamic blocks216938
-Node: Special agenda views218894
-Ref: Special agenda views-Footnote-1221173
-Node: History and Acknowledgments221433
-Node: Index226792
-Node: Key Index256794
+Node: Introduction11179
+Node: Summary11594
+Node: Installation14495
+Node: Activation15873
+Node: Feedback17122
+Node: Document structure19198
+Node: Outlines19972
+Node: Headlines20632
+Node: Visibility cycling21255
+Ref: Visibility cycling-Footnote-123346
+Ref: Visibility cycling-Footnote-223404
+Ref: Visibility cycling-Footnote-323454
+Node: Motion23723
+Node: Structure editing24507
+Node: Archiving27333
+Node: ARCHIVE tag27891
+Node: Moving subtrees29684
+Node: Sparse trees30995
+Ref: Sparse trees-Footnote-133127
+Ref: Sparse trees-Footnote-233309
+Node: Plain lists33424
+Ref: Plain lists-Footnote-136949
+Ref: Plain lists-Footnote-237306
+Node: Tables37490
+Node: Built-in table editor38004
+Node: Narrow columns45000
+Ref: Narrow columns-Footnote-146932
+Node: orgtbl-mode46978
+Node: The spreadsheet47472
+Node: References48290
+Node: Formula syntax for Calc51547
+Node: Formula syntax for Lisp53864
+Node: Field formulas55092
+Node: Column formulas56403
+Node: Editing and debugging formulas57826
+Node: Updating the table60534
+Node: Advanced features61565
+Node: Hyperlinks65990
+Node: Link format66763
+Node: Internal links68056
+Ref: Internal links-Footnote-170045
+Node: Radio targets70177
+Node: CamelCase links70892
+Node: External links71486
+Node: Handling links73890
+Ref: Handling links-Footnote-178982
+Ref: Handling links-Footnote-279219
+Node: Link abbreviations79293
+Node: Search options80972
+Ref: Search options-Footnote-182752
+Node: Custom searches82833
+Node: Remember83881
+Node: Setting up remember84868
+Node: Remember templates85450
+Ref: Remember templates-Footnote-188765
+Node: Storing notes88863
+Node: TODO items90671
+Node: TODO basics91653
+Node: TODO extensions93180
+Node: Workflow states93975
+Node: TODO types94960
+Ref: TODO types-Footnote-196618
+Node: Per file keywords96700
+Ref: Per file keywords-Footnote-198154
+Node: Priorities98355
+Node: Breaking down tasks99599
+Ref: Breaking down tasks-Footnote-1100118
+Node: Checkboxes100214
+Node: Timestamps102969
+Node: Time stamps103503
+Ref: Time stamps-Footnote-1106997
+Ref: Time stamps-Footnote-2107113
+Node: Creating timestamps107268
+Node: The date/time prompt109894
+Ref: The date/time prompt-Footnote-1111660
+Node: Custom time format111766
+Node: Repeating items113324
+Node: Progress logging115134
+Node: Closing items115780
+Ref: Closing items-Footnote-1116714
+Ref: Closing items-Footnote-2116783
+Node: Tracking TODO state changes116856
+Node: Clocking work time117712
+Ref: Clocking work time-Footnote-1121358
+Ref: Clocking work time-Footnote-2121436
+Node: Tags121562
+Node: Tag inheritance122324
+Node: Setting tags123261
+Ref: Setting tags-Footnote-1127460
+Ref: Setting tags-Footnote-2127572
+Node: Tag searches127655
+Node: Agenda views130366
+Node: Agenda files132311
+Ref: Agenda files-Footnote-1133277
+Ref: Agenda files-Footnote-2133426
+Node: Agenda dispatcher133619
+Node: Built-in agenda views135310
+Node: Weekly/Daily agenda135888
+Node: Global TODO list138017
+Node: Matching headline tags140190
+Node: Timeline141261
+Node: Stuck projects141927
+Node: Presentation and sorting143626
+Node: Categories144417
+Node: Time-of-day specifications145081
+Node: Sorting of agenda items147052
+Node: Agenda commands148334
+Node: Custom agenda views154987
+Node: Storing searches155662
+Node: Block agenda157574
+Node: Setting Options158804
+Node: Batch processing161516
+Node: Embedded LaTeX162646
+Ref: Embedded LaTeX-Footnote-1163738
+Node: Math symbols163928
+Node: Subscripts and Superscripts164693
+Node: LaTeX fragments165537
+Ref: LaTeX fragments-Footnote-1167645
+Node: Processing LaTeX fragments167907
+Node: CDLaTeX mode168853
+Ref: CDLaTeX mode-Footnote-1171337
+Node: Exporting171485
+Node: ASCII export172799
+Node: HTML export174089
+Node: Export commands174708
+Node: Quoting HTML tags175432
+Node: Links175895
+Node: Images176592
+Ref: Images-Footnote-1177463
+Node: CSS support177524
+Ref: CSS support-Footnote-1178843
+Node: XOXO export178956
+Node: iCalendar export179395
+Node: Text interpretation180498
+Node: Comment lines180977
+Node: Enhancing text181448
+Node: Export options183266
+Node: Publishing184933
+Ref: Publishing-Footnote-1185729
+Node: Configuration185925
+Node: Project alist186643
+Node: Sources and destinations187709
+Node: Selecting files188439
+Node: Publishing action189187
+Node: Publishing options190420
+Node: Publishing links192572
+Node: Project page index194085
+Node: Sample configuration194863
+Node: Simple example195355
+Node: Complex example196028
+Node: Triggering publication198104
+Node: Miscellaneous198789
+Node: Completion199423
+Node: Customization200894
+Node: In-buffer settings201477
+Node: The very busy C-c C-c key205717
+Node: Clean view207361
+Node: TTY keys209938
+Node: Interaction211547
+Node: Cooperation211944
+Node: Conflicts214684
+Node: Bugs216276
+Node: Extensions and Hacking217772
+Node: Extensions218276
+Node: Dynamic blocks220219
+Node: Special agenda views222175
+Ref: Special agenda views-Footnote-1224454
+Node: History and Acknowledgments224714
+Node: Index230218
+Node: Key Index260293

End Tag Table
diff --git a/org-install.el b/org-install.el
index 167d16f..650a4ec 100644
--- a/org-install.el
+++ b/org-install.el
@@ -13,6 +13,7 @@
(autoload 'org-todo-list "org" "Produce global TODO list." t)
(autoload 'org-tags-view "org" "Produce global TAGS agenda view." t)
(autoload 'org-agenda-list-stuck-projects "org" "List stuck projects." t)
+(autoload 'org-remember "org" "Call remember or re-apply template" t)
(autoload 'org-remember-annotation "org")
(autoload 'org-remember-apply-template "org")
(autoload 'org-remember-handler "org")
diff --git a/org-mouse.el b/org-mouse.el
index 0c3367a..3d45538 100644
--- a/org-mouse.el
+++ b/org-mouse.el
@@ -3,8 +3,8 @@
;; Copyright (c) 2006 Piotr Zielinski
;;
;; Author: Piotr Zielinski <piotr dot zielinski at gmail dot com>
-;; Version: 0.21
-;; $Id: org-mouse.el 347 2006-11-12 23:57:50Z pz215 $
+;; Version: 0.23
+;; $Id: org-mouse.el 806 2007-01-30 23:16:24Z pz215 $
;;
;; The latest version of this file is available from
;;
@@ -67,7 +67,7 @@
;;
;; (require 'org-mouse)
;;
-;; Tested with Emacs 22.0.50, org-mode 4.33
+;; Tested with Emacs 22.0.50, org-mode 4.58
;; Fixme:
;; + deal with folding / unfolding issues
@@ -87,6 +87,13 @@
;; History:
;;
+;; Version 0.23
+;; + preliminary support for tables and calculation marks
+;; + context menu support for org-agenda-undo & org-sort-entries
+;;
+;; Version 0.22
+;; + handles undo support for the agenda buffer (requires org-mode >=4.58)
+;;
;; Version 0.21
;; + selected text activates its context menu
;; + shift-middleclick or right-drag inserts the text from the clipboard in the form of a link
@@ -138,7 +145,7 @@
;;
;; Versions 0.01 -- 0.07: (I don't remember)
-(eval-when-compile (require 'cl))
+(require 'cl)
(defvar org-mouse-plain-list-regexp "\\([ \t]*\\)\\([-+*]\\|[0-9]+[.)]\\) ")
(defvar org-mouse-direct t)
@@ -217,13 +224,12 @@
(defun org-mouse-timestamp-today (&optional shift units)
(interactive)
- (flet ((org-read-date (x &optional y) (current-time)))
+ (flet ((org-read-date (&rest rest) (current-time)))
(org-time-stamp nil))
(when shift
(org-timestamp-change shift units)))
(defun org-mouse-keyword-menu (keywords function &optional selected itemformat)
- (message "kmenu: %S" selected)
(mapcar
`(lambda (keyword)
(vector (cond
@@ -256,10 +262,12 @@
(just-one-space)))
-(defun org-mouse-keyword-replace-menu (keywords &optional group itemformat)
+(defun org-mouse-keyword-replace-menu (keywords &optional group itemformat
+ nosurround)
(setq group (or group 0))
(let ((replace (org-mouse-match-closure
- 'org-mouse-replace-match-and-surround)))
+ (if nosurround 'replace-match
+ 'org-mouse-replace-match-and-surround))))
(append
(org-mouse-keyword-menu
keywords
@@ -329,11 +337,8 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
(defun org-mouse-priority-list ()
- (let ((ret) (current org-lowest-priority))
- (while (>= current ?A)
- (push (char-to-string current) ret)
- (decf current))
- ret))
+ (loop for priority from ?A to org-lowest-priority
+ collect (char-to-string priority)))
(defun org-mouse-tag-menu () ;todo
(append
@@ -476,15 +481,12 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
:visible (org-at-item-p)])))
-; ["Jump" org-goto])))
-
(defun org-mouse-get-context (contextlist context)
- (let ((contextdata (find-if (lambda (x) (eq (car x) context)) contextlist)))
+ (let ((contextdata (assq context contextlist)))
(when contextdata
(save-excursion
- (goto-char (nth 1 contextdata))
-; (looking-at regexp)))))
- (re-search-forward ".*" (nth 2 contextdata))))))
+ (goto-char (second contextdata))
+ (re-search-forward ".*" (third contextdata))))))
(defun org-mouse-for-each-item (function)
(save-excursion
@@ -587,7 +589,8 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
,@(org-mouse-list-options-menu (mapcar 'car org-startup-options)
'org-mode-restart))))
((or (eolp)
- (and (looking-at " \\|\t") (looking-back " \\|\t")))
+ (and (looking-at "\\( \\|\t\\)\\(+:[0-9a-zA-Z_:]+\\)?\\( \\|\t\\)+$")
+ (looking-back " \\|\t")))
(org-mouse-popup-global-menu))
((get-context :checkbox)
(popup-menu
@@ -630,7 +633,7 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
)))
((org-mouse-looking-at org-mouse-priority-regexp "[]A-Z#") ; priority
(popup-menu `(nil ,@(org-mouse-keyword-replace-menu
- (org-mouse-priority-list) 1 "Priority %s"))))
+ (org-mouse-priority-list) 1 "Priority %s" t))))
((org-mouse-at-link)
(popup-menu
'(nil
@@ -642,6 +645,9 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
(progn
(kill-region (match-beginning 0) (match-end 0))
(just-one-space))]
+ "--"
+ ["Grep for TODOs"
+ (grep (format "grep -nH -i 'todo\\|fixme' %s*" (match-string 2)))]
; ["Paste file link" ((insert "file:") (yank))]
)))
((org-mouse-looking-at ":\\([A-Za-z0-9_]+\\):" "A-Za-z0-9_" -1) ;tags
@@ -674,6 +680,64 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
["- 1 Day" (org-timestamp-change -1 'day)]
["- 1 Week" (org-timestamp-change -7 'day)]
["- 1 Month" (org-timestamp-change -1 'month)])))
+ ((get-context :table-special)
+ (let ((mdata (match-data)))
+ (incf (car mdata) 2)
+ (store-match-data mdata))
+ (message "match: %S" (match-string 0))
+ (popup-menu `(nil ,@(org-mouse-keyword-replace-menu
+ '(" " "!" "^" "_" "$" "#" "*" "'") 0
+ (lambda (mark)
+ (case (string-to-char mark)
+ (? "( ) Nothing Special")
+ (?! "(!) Column Names")
+ (?^ "(^) Field Names Above")
+ (?_ "(^) Field Names Below")
+ (?$ "($) Formula Parameters")
+ (?# "(#) Recalculation: Auto")
+ (?* "(*) Recalculation: Manual")
+ (?' "(') Recalculation: None"))) t))))
+ ((assq :table contextlist)
+ (popup-menu
+ '(nil
+ ["Align Table" org-ctrl-c-ctrl-c]
+ ["Blank Field" org-table-blank-field]
+ ["Edit Field" org-table-edit-field]
+ "--"
+ ("Column"
+ ["Move Column Left" org-metaleft]
+ ["Move Column Right" org-metaright]
+ ["Delete Column" org-shiftmetaleft]
+ ["Insert Column" org-shiftmetaright]
+ "--"
+ ["Enable Narrowing" (setq org-table-limit-column-width (not org-table-limit-column-width)) :selected org-table-limit-column-width :style toggle])
+ ("Row"
+ ["Move Row Up" org-metaup]
+ ["Move Row Down" org-metadown]
+ ["Delete Row" org-shiftmetaup]
+ ["Insert Row" org-shiftmetadown]
+ ["Sort lines in region" org-table-sort-lines (org-at-table-p)]
+ "--"
+ ["Insert Hline" org-table-insert-hline])
+ ("Rectangle"
+ ["Copy Rectangle" org-copy-special]
+ ["Cut Rectangle" org-cut-special]
+ ["Paste Rectangle" org-paste-special]
+ ["Fill Rectangle" org-table-wrap-region])
+ "--"
+ ["Set Column Formula" org-table-eval-formula]
+ ["Set Named Field Formula" (org-table-eval-formula '(4))]
+ ["Edit Formulas" org-table-edit-formulas]
+ ["Recalculate line" org-table-recalculate]
+ ["Recalculate all" (org-table-recalculate '(4))]
+ ["Toggle Recalculate Mark" org-table-rotate-recalc-marks]
+ ["Sum Column/Rectangle" org-table-sum
+ :active (or (org-at-table-p) (org-region-active-p))]
+ ["Which Column?" org-table-current-column]
+ ["Debug Formulas"
+ (setq org-table-formula-debug (not org-table-formula-debug))
+ :style toggle :selected org-table-formula-debug]
+ )))
((and (assq :headline contextlist) (not (eolp)))
(let ((priority (org-mouse-get-priority t)))
(popup-menu
@@ -713,6 +777,14 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
["Cut Subtree" org-cut-special]
["Copy Subtree" org-copy-special]
["Paste Subtree" org-paste-special :visible org-mouse-direct]
+ ("Sort Children"
+ ["Alphabetically" (org-sort-entries nil ?a)]
+ ["Numerically" (org-sort-entries nil ?n)]
+ ["By Time/Date" (org-sort-entries nil ?t)]
+ "--"
+ ["Reverse Alphabetically" (org-sort-entries nil ?A)]
+ ["Reverse Numerically" (org-sort-entries nil ?N)]
+ ["Reverse By Time/Date" (org-sort-entries nil ?T)])
"--"
["Move Trees" org-mouse-move-tree :active nil]
))))
@@ -875,23 +947,26 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
(outline-end-of-subtree)
(forward-char 1)
(copy-marker (point)))))
- (with-current-buffer buffer
- (widen)
- (goto-char pos)
- (org-show-hidden-entry)
+ (org-with-remote-undo buffer
+ (with-current-buffer buffer
+ (widen)
+ (goto-char pos)
+ (org-show-hidden-entry)
+ (save-excursion
+ (and (outline-next-heading)
+ (org-flag-heading nil))) ; show the next heading
+ (org-back-to-heading)
+ (setq marker (copy-marker (point)))
+ (goto-char (max (point-at-bol) (- (point-at-eol) anticol)))
+ (funcall command)
+ (message "_cmd: %S" _cmd)
+ (message "this-command: %S" this-command)
+ (unless (eq (marker-position marker) (marker-position endmarker))
+ (setq newhead (org-get-heading))))
+
+ (beginning-of-line 1)
(save-excursion
- (and (outline-next-heading)
- (org-flag-heading nil))) ; show the next heading
- (org-back-to-heading)
- (setq marker (copy-marker (point)))
- (goto-char (max (point-at-bol) (- (point-at-eol) anticol)))
- (funcall command)
- (unless (eq (marker-position marker) (marker-position endmarker))
- (setq newhead (org-get-heading))))
-
- (beginning-of-line 1)
- (save-excursion
- (org-agenda-change-all-lines newhead hdmarker 'fixface)))
+ (org-agenda-change-all-lines newhead hdmarker 'fixface))))
t))))
(defun org-mouse-agenda-context-menu (&optional event)
@@ -900,6 +975,10 @@ SCHEDULED: or DEADLINE: or ANYTHINGLIKETHIS:"
'("Agenda"
("Agenda Files")
"--"
+ ["Undo" (progn (message "last command: %S" last-command) (setq this-command 'org-agenda-undo) (org-agenda-undo))
+ :visible (if (eq last-command 'org-agenda-undo)
+ org-agenda-pending-undo-list
+ org-agenda-undo-list)]
["Rebuild Buffer" org-agenda-redo t]
["New Diary Entry"
org-agenda-diary-entry (org-agenda-check-type nil 'agenda 'timeline) t]
diff --git a/org.el b/org.el
index a6ed6b5..8512aed 100644
--- a/org.el
+++ b/org.el
@@ -5,7 +5,7 @@
;; Author: Carsten Dominik <dominik at science dot uva dot nl>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
-;; Version: 4.62
+;; Version: 4.64a
;;
;; This file is part of GNU Emacs.
;;
@@ -59,81 +59,8 @@
;; excellent reference card made by Philip Rooke. This card can be found
;; in the etc/ directory of Emacs 22.
;;
-;; Recent changes
-;; --------------
-;; Version 4.62
-;; - Many changes to the spreadsheet functions in the table editor.
-;; For deatils, please re-read the manual section 3.4.
-;; + New Features
-;; - It is much easier to assign formulas to individual fields.
-;; - References to arbitrary fields and ranges.
-;; - Absolute references are modified in row-editing commands.
-;; - Formula editor that highlights referenced fields.
-;; + Incompatible changes
-;; - Empty fields are excluded in range references, see "E" mode flag.
-;; - &... ranges no longer supported, use new @... ranges.
-;; - Variable insertion into Lisp formulas work differently.
-;; - Selected text becomes the default description for C-c C-l links.(Scott)
-;; - The date format in the agenda/timeline views is now customizable.
-;; See the new option `org-agenda-date-format'. (request by Victor)
-;; - Link abbreviations no longer need a double colon, single colon is fine.
-;; - Bug fixes.
-;;
-;; Version 4.61
-;; - Avoiding keybinding clashes with flyspell
-;; - Archiving is now also on `C-C C-x C-s' (was just `C-c $')
-;; - Cycling through agenda files is now also on "C-'" (was just "C-,")
-;; - Colon is considered part of number, to align times in clock tables.
-;; - Fixed bug for list of stuck projects.
-;; - Fixed several bugs/problems concerning linking to gnus.
-;; - Block agendas can contain the list of stuck projects.
-;; - #+ARCHIVE may now appear several times in the buffer.
-;; - More bug fixes.
-;;
-;; Version 4.60
-;; - HTML export: inlining images, clickable images (manual 10.2.4).
-;; - Incremental search now shows proper context when exiting.
-;; - Tables calculation and Calc package.
-;; - Calc is no longer needed when using only elisp formulas.
-;; - Proper error messages when calc is needed and not available.
-;; - Tracking TODO state changes with time stamps and notes.
-;; - Empty entries go full circle.
-;; - Links in iCalendar export cleaned up.
-;; - Bug fixes.
-;;
-;; Version 4.59
-;; - Cleanup code, bug fixes.
-;;
-;; Version 4.58
-;; - Full undo support in the agenda buffer.
-;; - Listing stuck GTD projects (projects without any NEXT ACTIONS).
-;; Configure `org-stuck-projects' before using it.
-;; - C-c C-x b shows the current subtree in an indirect buffer, in
-;; another, dedicated frame.
-;; - Custom agenda commands take precedence over builtin commands.
-;; - auto-fill for comments works on the Emacs side, XEmacs not yet.
-;;
-;; 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
-;; - `C-k' in agenda kills current line and corresponding subtree in file.
-;; - XEmacs compatibility issues fixed, in particular tag alignment.
-;; - M-left/right now in/outdents plain list items, no Shift needed.
-;; - Bug fixes.
+;; A list of recent changes can be found at
+;; http://www.astro.uva.nl/~dominik/Tools/org/Changes
;;
;;; Code:
@@ -156,7 +83,7 @@
;;; Version
-(defvar org-version "4.62"
+(defvar org-version "4.64a"
"The version number of the file org.el.")
(defun org-version ()
(interactive)
@@ -1021,6 +948,39 @@ Changing this variable requires a restart of Emacs to become effective."
:tag "Org Store Link"
:group 'org-link)
+;; FIXME: separate format for gnus?
+(defcustom org-email-link-description-format "Email %c: %.30s"
+ "Format of the description part of a link to an email or usenet message.
+The following %-excapes will be replaced by corresponding information:
+
+%F full \"From\" field
+%f name, taken from \"From\" field, address if no name
+%T full \"To\" field
+%t first name in \"To\" field, address if no name
+%c correspondent. Unually \"from NAME\", but if you sent it yourself, it
+ will be \"to NAME\". See also the variable `org-from-is-user-regexp'.
+%s subject
+%m message-id.
+
+You may use normal field width specification between the % and the letter.
+This is for example useful to limit the length of the subject.
+
+Examples: \"%f on: %.30s\", \"Email from %f\", \"Email %c\""
+ :group 'org-link-store
+ :type 'string)
+
+(defcustom org-from-is-user-regexp
+ (let (r1 r2)
+ (when (and user-mail-address (not (string= user-mail-address "")))
+ (setq r1 (concat "\\<" (regexp-quote user-mail-address) "\\>")))
+ (when (and user-full-name (not (string= user-full-name "")))
+ (setq r2 (concat "\\<" (regexp-quote user-full-name) "\\>")))
+ (if (and r1 r2) (concat r1 "\\|" r2) (or r1 r2)))
+ "Regexp mached against the \"From:\" header of an email or usenet message.
+It should match if the message is from the user him/herself."
+ :group 'org-link-store
+ :type 'regexp)
+
(defcustom org-context-in-file-links t
"Non-nil means, file links from `org-store-link' contain context.
A search string will be added to the file name with :: as separator and
@@ -1293,39 +1253,83 @@ Used by the hooks for remember.el."
(defcustom org-default-notes-file "~/.notes"
"Default target for storing notes.
Used by the hooks for remember.el. This can be a string, or nil to mean
-the value of `remember-data-file'."
+the value of `remember-data-file'.
+You can set this on a per-template basis with the variable
+`org-remember-templates'."
:group 'org-remember
:type '(choice
(const :tag "Default from remember-data-file" nil)
file))
+(defcustom org-remember-default-headline ""
+ "The headline that should be the default location in the notes file.
+When filing remember notes, the cursor will start at that position.
+You can set this on a per-template basis with the variable
+`org-remember-templates'."
+ :group 'org-remember
+ :type 'string)
+
(defcustom org-remember-templates nil
"Templates for the creation of remember buffers.
When nil, just let remember make the buffer.
-When not nil, this is a list of 3-element lists. In each entry, the first
+When not nil, this is a list of 4-element lists. In each entry, the first
element is a character, a unique key to select this template.
The second element is the template. The third element is optional and can
specify a destination file for remember items created with this template.
-The default file is given by `org-default-notes-file'.
+The default file is given by `org-default-notes-file'. An optional third
+element can specify the headline in that file that should be offered
+first when the user is asked to file the entry. The default headline is
+given in the variable `org-remember-default-headline'.
The template specifies the structure of the remember buffer. It should have
a first line starting with a star, to act as the org-mode headline.
Furthermore, the following %-escapes will be replaced with content:
- %t time stamp, date only
- %T time stamp with date and time
- %u inactive time stamp, date only
- %U inactive time stamp with date and time
- %n user name
- %a annotation, normally the link created with org-store-link
- %i initial content, the region when remember is called with C-u.
- If %i is indented, the entire inserted text will be indented as well.
- %? This will be removed, and the cursor placed at this position."
+
+ %^{prompt} prompt the user for a string and replace this sequence with it.
+ %t time stamp, date only
+ %T time stamp with date and time
+ %u, %U like the above, but inactive time stamps
+ %^t like %t, but prompt for date. Similarly %^T, %^u, %^U
+ You may define a prompt like %^{Please specify birthday}t
+ %n user name (taken from `user-full-name')
+ %a annotation, normally the link created with org-store-link
+ %i initial content, the region when remember is called with C-u.
+ If %i is indented, the entire inserted text will be indented
+ as well.
+
+ %? After completing the template, position cursor here.
+
+Apart from these general escapes, you can access information specific to the
+link type that is created. For example, calling `remember' in emails or gnus
+will record the author and the subject of the message, which you can access
+with %:author and %:subject, respectively. Here is a complete list of what
+is recorded for each link type.
+
+Link type | Available information
+-------------------+------------------------------------------------------
+bbdb | %:type %:name %:company
+vm, wl, mh, rmail | %:type %:subject %:message-id
+ | %:from %:fromname %:fromaddress
+ | %:to %:toname %:toaddress
+ | %:fromto (either \"to NAME\" or \"from NAME\")
+gnus | %:group, for messages also all email fields
+w3, w3m | %:type %:url
+info | %:type %:file %:node
+calendar | %:type %:date"
:group 'org-remember
- :type '(repeat :tag "enabled"
- (list :value (?a "\n" nil)
- (character :tag "Selection Key")
- (string :tag "Template")
- (file :tag "Destination file (optional)"))))
+ :get (lambda (var) ; Make sure all entries have 4 elements
+ (mapcar (lambda (x)
+ (cond ((= (length x) 3) (append x '("")))
+ ((= (length x) 2) (append x '("" "")))
+ (t x)))
+ (default-value var)))
+ :type '(repeat
+ :tag "enabled"
+ (list :value (?a "\n" nil nil)
+ (character :tag "Selection Key")
+ (string :tag "Template")
+ (file :tag "Destination file (optional)")
+ (string :tag "Destination headline (optional)"))))
(defcustom org-reverse-note-order nil
"Non-nil means, store new notes at the beginning of a file or entry.
@@ -1958,7 +1962,8 @@ When nil, only the days which actually have entries are shown."
(defcustom org-agenda-date-format "%A %d %B %Y"
"Format string for displaying dates in the agenda.
Used by the daily/weekly agenda and by the timeline. This should be
-a format string understood by `format-time-string'."
+a format string understood by `format-time-string'.
+FIXME: Not used currently, because of timezone problem."
:group 'org-agenda-daily/weekly
:type 'string)
@@ -3694,6 +3699,12 @@ that will be added to PLIST. Returns the string that was modified."
; 4: [desc]
; 5: desc
+(defconst org-any-link-re
+ (concat "\\(" org-bracket-link-regexp "\\)\\|\\("
+ org-angle-link-re "\\)\\|\\("
+ org-plain-link-re "\\)")
+ "Regular expression matching any link.")
+
(defconst org-ts-lengths
(cons (length (format-time-string (car org-time-stamp-formats)))
(length (format-time-string (cdr org-time-stamp-formats))))
@@ -4337,8 +4348,13 @@ or nil."
(org-startup-with-deadline-check nil))
(org-mode))
(setq buffer-read-only t)
- (if (boundp 'org-goto-start-pos)
- (goto-char org-goto-start-pos)
+ (if (and (boundp 'org-goto-start-pos)
+ (integer-or-marker-p org-goto-start-pos))
+ (let ((org-show-hierarchy-above t)
+ (org-show-siblings t)
+ (org-show-following-heading t))
+ (goto-char org-goto-start-pos)
+ (and (org-invisible-p) (org-show-context)))
(goto-char (point-min)))
(org-beginning-of-line)
(message "Select location and press RET")
@@ -7224,9 +7240,13 @@ When NAMED is non-nil, look for a named equation."
(setq alist (sort alist (lambda (a b) (string< (car a) (car b)))))
(save-excursion
(goto-char (org-table-end))
- (if (looking-at "\\([ \t]*\n\\)*#\\+TBLFM:.*\n?")
- (delete-region (point) (match-end 0)))
- (insert "#+TBLFM: "
+ (if (looking-at "\\([ \t]*\n\\)*#\\+TBLFM:\\(.*\n?\\)")
+ (progn
+ ;; don't overwrite TBLFM, we might use text properties to store stuff
+ (goto-char (match-beginning 2))
+ (delete-region (match-beginning 2) (match-end 0)))
+ (insert "#+TBLFM:"))
+ (insert " "
(mapconcat (lambda (x)
(concat
(if (equal (string-to-char (car x)) ?@) "" "$")
@@ -7862,6 +7882,7 @@ With prefix arg ALL, do this for all lines in the table."
(org-table-eval-formula nil (cdr eq) 'noalign 'nocst
'nostore 'noanalysis)))
;; back to initial position
+ (message "Re-applying formulas...done")
(goto-line thisline)
(org-table-goto-column thiscol)
(or noalign (and org-table-may-need-update (org-table-align))
@@ -8440,7 +8461,7 @@ to execute outside of tables."
["Fill Rectangle" org-table-wrap-region :active (org-at-table-p)])
"--"
["Set Column Formula" org-table-eval-formula :active (org-at-table-p) :keys "C-c ="]
- ["Set Named Field Formula" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
+ ["Set Field Formula" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
["Edit Formulas" org-table-edit-formulas :active (org-at-table-p) :keys "C-c '"]
["Recalculate line" org-table-recalculate :active (org-at-table-p) :keys "C-c *"]
["Recalculate all" (org-table-recalculate '(4)) :active (org-at-table-p) :keys "C-u C-c *"]
@@ -8530,6 +8551,9 @@ overwritten, and the table is not marked as requiring realignment."
(defvar org-stored-links nil
"Contains the links stored with `org-store-link'.")
+(defvar org-store-link-plist nil
+ "Plist with info about the most recently link created with `org-store-link'.")
+
;;;###autoload
(defun org-store-link (arg)
"\\<org-mode-map>Store an org-link to the current location.
@@ -8539,22 +8563,25 @@ For some link types, a prefix arg is interpreted:
For links to usenet articles, arg negates `org-usenet-links-prefer-google'.
For file links, arg negates `org-context-in-file-links'."
(interactive "P")
+ (setq org-store-link-plist nil) ; reset
(let (link cpltxt desc description search txt (pos (point)))
(cond
((eq major-mode 'bbdb-mode)
- (setq cpltxt (concat
- "bbdb:"
- (or (bbdb-record-name (bbdb-current-record))
- (bbdb-record-company (bbdb-current-record))))
- link (org-make-link cpltxt)))
-
+ (let ((name (bbdb-record-name (bbdb-current-record)))
+ (company (bbdb-record-company (bbdb-current-record))))
+ (setq cpltxt (concat "bbdb:" (or name company))
+ link (org-make-link cpltxt))
+ (org-store-link-props :type "bbdb" :name name :company company)))
+
((eq major-mode 'Info-mode)
(setq link (org-make-link "info:"
(file-name-nondirectory Info-current-file)
":" Info-current-node))
(setq cpltxt (concat (file-name-nondirectory Info-current-file)
- ":" Info-current-node)))
+ ":" Info-current-node))
+ (org-store-link-props :type "info" :file Info-current-file
+ :node Info-current-node))
((eq major-mode 'calendar-mode)
(let ((cd (calendar-cursor-to-date)))
@@ -8563,7 +8590,8 @@ For file links, arg negates `org-context-in-file-links'."
(car org-time-stamp-formats)
(apply 'encode-time
(list 0 0 0 (nth 1 cd) (nth 0 cd) (nth 2 cd)
- nil nil nil))))))
+ nil nil nil))))
+ (org-store-link-props :type "calendar" :date cd)))
((or (eq major-mode 'vm-summary-mode)
(eq major-mode 'vm-presentation-mode))
@@ -8574,14 +8602,17 @@ For file links, arg negates `org-context-in-file-links'."
(let* ((message (car vm-message-pointer))
(folder buffer-file-name)
(subject (vm-su-subject message))
- (author (vm-su-full-name message))
+ (to (vm-get-header-contents message "To")) ; FIXME: untested
+ (from (vm-get-header-contents message "From")) ; FIXME: untested
(message-id (vm-su-message-id message)))
+ (org-store-link-props :type "vm" :from from :to to :subject subject
+ :message-id message-id)
(setq message-id (org-remove-angle-brackets message-id))
(setq folder (abbreviate-file-name folder))
(if (string-match (concat "^" (regexp-quote vm-folder-directory))
folder)
(setq folder (replace-match "" t t folder)))
- (setq cpltxt (concat author " on: " subject))
+ (setq cpltxt (org-email-link-description))
(setq link (org-make-link "vm:" folder "#" message-id)))))
((eq major-mode 'wl-summary-mode)
@@ -8594,23 +8625,26 @@ For file links, arg negates `org-context-in-file-links'."
wl-summary-buffer-elmo-folder msgnum)
(elmo-msgdb-overview-get-entity
msgnum (wl-summary-buffer-msgdb))))
- ;; FIXME: How to get author and subject in wl???
- (author (wl-summary-line-from)) ; ?
- (subject "???"))
+ (from (wl-summary-line-from))
+ (subject (wl-summary-line-subject))) ; FIXME: untested
+ (org-store-link-props :type "wl" :from from :to "???"
+ :subject subject :message-id message-id)
(setq message-id (org-remove-angle-brackets message-id))
- (setq cpltxt (concat author " on: " subject))
+ (setq cpltxt (org-email-link-description))
(setq link (org-make-link "wl:" wl-summary-buffer-folder-name
"#" message-id))))
((or (equal major-mode 'mh-folder-mode)
(equal major-mode 'mh-show-mode))
- (let ((from-header (org-mhe-get-header "From:"))
- (to-header (org-mhe-get-header "To:"))
+ (let ((from (org-mhe-get-header "From:"))
+ (to (org-mhe-get-header "To:"))
+ (message-id (org-mhe-get-header "Message-Id:"))
(subject (org-mhe-get-header "Subject:")))
- (setq cpltxt (concat from-header " on: " subject))
+ (org-store-link-props :type "mh" :from from :to to
+ :subject subject :message-id message-id)
+ (setq cpltxt (org-email-link-description))
(setq link (org-make-link "mhe:" (org-mhe-get-message-real-folder) "#"
- (org-remove-angle-brackets
- (org-mhe-get-header "Message-Id:"))))))
+ (org-remove-angle-brackets message-id)))))
((eq major-mode 'rmail-mode)
(save-excursion
@@ -8618,10 +8652,14 @@ For file links, arg negates `org-context-in-file-links'."
(rmail-narrow-to-non-pruned-header)
(let ((folder buffer-file-name)
(message-id (mail-fetch-field "message-id"))
- (author (mail-fetch-field "from"))
+ (from (mail-fetch-field "from"))
+ (to (mail-fetch-field "to"))
(subject (mail-fetch-field "subject")))
+ (org-store-link-props
+ :type "rmail" :from from :to to
+ :subject subject :message-id message-id)
(setq message-id (org-remove-angle-brackets message-id))
- (setq cpltxt (concat author " on: " subject))
+ (setq cpltxt (org-email-link-description))
(setq link (org-make-link "rmail:" folder "#" message-id))))))
((eq major-mode 'gnus-group-mode)
@@ -8631,6 +8669,7 @@ For file links, arg negates `org-context-in-file-links'."
(gnus-group-name))
(t "???"))))
(unless group (error "Not on a group"))
+ (org-store-link-props :type "gnus" :group group)
(setq cpltxt (concat
(if (org-xor arg org-usenet-links-prefer-google)
"http://groups.google.com/groups?group="
@@ -8643,11 +8682,13 @@ For file links, arg negates `org-context-in-file-links'."
(let* ((group gnus-newsgroup-name)
(article (gnus-summary-article-number))
(header (gnus-summary-article-header article))
- (author (mail-header-from header))
+ (from (mail-header-from header))
(message-id (mail-header-id header))
(date (mail-header-date header))
(subject (gnus-summary-subject-string)))
- (setq cpltxt (concat author " on: " subject))
+ (org-store-link-props :type "gnus" :from from :subject subject
+ :message-id message-id :group group)
+ (setq cpltxt (org-email-link-description))
(if (org-xor arg org-usenet-links-prefer-google)
(setq link
(concat
@@ -8659,10 +8700,13 @@ For file links, arg negates `org-context-in-file-links'."
((eq major-mode 'w3-mode)
(setq cpltxt (url-view-url t)
- link (org-make-link cpltxt)))
+ link (org-make-link cpltxt))
+ (org-store-link-props :type "w3" :url (url-view-url t)))
+
((eq major-mode 'w3m-mode)
(setq cpltxt (or w3m-current-title w3m-current-url)
- link (org-make-link w3m-current-url)))
+ link (org-make-link w3m-current-url))
+ (org-store-link-props :type "w3m" :url (url-view-url t)))
((setq search (run-hook-with-args-until-success
'org-create-file-search-functions))
@@ -8673,7 +8717,8 @@ For file links, arg negates `org-context-in-file-links'."
((eq major-mode 'image-mode)
(setq cpltxt (concat "file:"
(abbreviate-file-name buffer-file-name))
- link (org-make-link cpltxt)))
+ link (org-make-link cpltxt))
+ (org-store-link-props :type "image" :file buffer-file-name))
((eq major-mode 'dired-mode)
;; link to the file in the current line
@@ -8712,7 +8757,7 @@ For file links, arg negates `org-context-in-file-links'."
(if (string-match "::\\'" cpltxt)
(setq cpltxt (substring cpltxt 0 -2)))
(setq link (org-make-link cpltxt)))
-
+
(buffer-file-name
;; Just link to this file here.
(setq cpltxt (concat "file:"
@@ -8749,6 +8794,51 @@ For file links, arg negates `org-context-in-file-links'."
(message "Stored: %s" (or cpltxt link)))
(org-make-link-string link desc))))
+(defun org-store-link-props (&rest plist)
+ "Store link properties, extract names and addresses."
+ (let (x adr)
+ (when (setq x (plist-get plist :from))
+ (setq adr (mail-extract-address-components x))
+ (plist-put plist :fromname (car adr))
+ (plist-put plist :fromaddress (nth 1 adr)))
+ (when (setq x (plist-get plist :to))
+ (setq adr (mail-extract-address-components x))
+ (plist-put plist :toname (car adr))
+ (plist-put plist :toaddress (nth 1 adr))))
+ (let ((from (plist-get plist :from))
+ (to (plist-get plist :to)))
+ (when (and from to org-from-is-user-regexp)
+ (plist-put plist :fromto
+ (if (string-match org-from-is-user-regexp from)
+ (concat "to %t")
+ (concat "from %f")))))
+ (setq org-store-link-plist plist))
+
+(defun org-email-link-description (&optional fmt)
+ "Return the description part of an email link.
+This takes information from `org-store-link-plist' and formats it
+according to FMT (default from `org-email-link-description-format')."
+ (setq fmt (or fmt org-email-link-description-format))
+ (let* ((p org-store-link-plist)
+ (to (plist-get p :toaddress))
+ (from (plist-get p :fromaddress))
+ (table
+ (list
+ (cons "%c" (plist-get p :fromto))
+ (cons "%F" (plist-get p :from))
+ (cons "%f" (or (plist-get p :fromname) (plist-get p :fromaddress) "?"))
+ (cons "%T" (plist-get p :to))
+ (cons "%t" (or (plist-get p :toname) (plist-get p :toaddress) "?"))
+ (cons "%s" (plist-get p :subject))
+ (cons "%m" (plist-get p :message-id)))))
+ (when (string-match "%c" fmt)
+ ;; Check if the user wrote this message
+ (if (and org-from-is-user-regexp from to
+ (save-match-data (string-match org-from-is-user-regexp from)))
+ (setq fmt (replace-match "to %t" t t fmt))
+ (setq fmt (replace-match "from %f" t t fmt))))
+ (org-replace-escapes fmt table)))
+
(defun org-make-org-heading-search-string (&optional string heading)
"Make search string for STRING or current headline."
(interactive)
@@ -8906,10 +8996,10 @@ is in the current directory or below.
With three \\[universal-argument] prefixes, negate the meaning of
`org-keep-stored-link-after-insertion'."
(interactive "P")
- (let ((region (if (and nil (org-region-active-p))
+ (let ((region (if (org-region-active-p)
(prog1 (buffer-substring (region-beginning) (region-end))
(delete-region (region-beginning) (region-end)))))
- link desc entry remove file (pos (point)))
+ link desc entry remove file (pos (point)) tmphist)
(cond
((save-excursion
(skip-chars-forward "^]\n\r")
@@ -8943,11 +9033,15 @@ With three \\[universal-argument] prefixes, negate the meaning of
(t (setq link (org-make-link "file:" file))))))
(t
;; Read link, with completion for stored links.
+ ;; Fake a link history
+ (setq tmphist (append (mapcar 'car org-stored-links)
+ org-insert-link-history))
(setq link (org-completing-read
"Link: " org-stored-links nil nil nil
- org-insert-link-history
+ 'tmphist
(or (car (car org-stored-links)))))
(setq entry (assoc link org-stored-links))
+ (or entry (push link org-insert-link-history))
(if (funcall (if (equal complete-file '(64)) 'not 'identity)
(not org-keep-stored-link-after-insertion))
(setq org-stored-links (delq (assoc link org-stored-links)
@@ -9005,6 +9099,47 @@ With three \\[universal-argument] prefixes, negate the meaning of
(apply 'completing-read args)))
;;; Opening/following a link
+(defvar org-link-search-failed nil)
+
+(defun org-next-link ()
+ "Move forward to the next link.
+If the link is in hidden text, expose it."
+ (interactive)
+ (when (and org-link-search-failed (eq this-command last-command))
+ (goto-char (point-min))
+ (message "Link search wrapped back to beginning of buffer"))
+ (setq org-link-search-failed nil)
+ (let* ((pos (point))
+ (ct (org-context))
+ (a (assoc :link ct)))
+ (if a (goto-char (nth 2 a)))
+ (if (re-search-forward org-any-link-re nil t)
+ (progn
+ (goto-char (match-beginning 0))
+ (if (org-invisible-p) (org-show-context)))
+ (goto-char pos)
+ (setq org-link-search-failed t)
+ (error "No further link found"))))
+
+(defun org-previous-link ()
+ "Move backward to the previous link.
+If the link is in hidden text, expose it."
+ (interactive)
+ (when (and org-link-search-failed (eq this-command last-command))
+ (goto-char (point-max))
+ (message "Link search wrapped back to end of buffer"))
+ (setq org-link-search-failed nil)
+ (let* ((pos (point))
+ (ct (org-context))
+ (a (assoc :link ct)))
+ (if a (goto-char (nth 1 a)))
+ (if (re-search-backward org-any-link-re nil t)
+ (progn
+ (goto-char (match-beginning 0))
+ (if (org-invisible-p) (org-show-context)))
+ (goto-char pos)
+ (setq org-link-search-failed t)
+ (error "No further link found"))))
(defun org-find-file-at-mouse (ev)
"Open file link or URL at mouse."
@@ -9867,31 +10002,51 @@ RET on headline -> Store as sublevel entry to current headline
<left>/<right> -> before/after current headline, same headings level")
;;;###autoload
-(defun org-remember-apply-template ()
+(defun org-remember-apply-template (&optional use-char skip-interactive)
"Initialize *remember* buffer with template, invoke `org-mode'.
This function should be placed into `remember-mode-hook' and in fact requires
to be run from that hook to fucntion properly."
(if org-remember-templates
- (let* ((entry (if (= (length org-remember-templates) 1)
- (cdar org-remember-templates)
- (message "Select template: %s"
- (mapconcat
- (lambda (x) (char-to-string (car x)))
- org-remember-templates " "))
- (cdr (assoc (read-char-exclusive) org-remember-templates))))
+ (let* ((char (or use-char
+ (if (= (length org-remember-templates) 1)
+ (caar org-remember-templates)
+ (message "Select template: %s"
+ (mapconcat
+ (lambda (x) (char-to-string (car x)))
+ org-remember-templates " "))
+ (read-char-exclusive))))
+ (entry (cdr (assoc char org-remember-templates)))
(tpl (car entry))
- (file (if (consp (cdr entry)) (nth 1 entry)))
+ (plist-p (if org-store-link-plist t nil))
+ (file (if (and (nth 1 entry) (stringp (nth 1 entry))
+ (string-match "\\S-" (nth 1 entry)))
+ (nth 1 entry)
+ org-default-notes-file))
+ (headline (nth 2 entry))
(v-t (format-time-string (car org-time-stamp-formats) (org-current-time)))
(v-T (format-time-string (cdr org-time-stamp-formats) (org-current-time)))
(v-u (concat "[" (substring v-t 1 -1) "]"))
(v-U (concat "[" (substring v-T 1 -1) "]"))
- (v-a annotation) ; defined in `remember-mode'
(v-i initial) ; defined in `remember-mode'
+ (v-a (if (equal annotation "[[]]") "" annotation)) ; likewise
(v-n user-full-name)
- )
+ (org-startup-folded nil)
+ (org-startup-with-deadline-check nil)
+ org-time-was-given x prompt char time)
+ (setq org-store-link-plist
+ (append (list :annotation v-a :initial v-i)))
(unless tpl (setq tpl "") (message "No template") (ding))
+ (erase-buffer)
+ (insert (substitute-command-keys
+ (format
+ "## `C-c C-c' to file interactively, `C-u C-c C-c' to file directly.
+## Target file \"%s\", headline \"%s\"
+## To switch templates, use `\\[org-remember]'.\n\n"
+ (abbreviate-file-name (or file org-default-notes-file))
+ (or headline ""))))
(insert tpl) (goto-char (point-min))
+ ;; Simple %-escapes
(while (re-search-forward "%\\([tTuTai]\\)" nil t)
(when (and initial (equal (match-string 0) "%i"))
(save-match-data
@@ -9903,17 +10058,61 @@ to be run from that hook to fucntion properly."
(replace-match
(or (eval (intern (concat "v-" (match-string 1)))) "")
t t))
- (let ((org-startup-folded nil)
- (org-startup-with-deadline-check nil))
- (org-mode))
+ ;; From the property list
+ (when plist-p
+ (goto-char (point-min))
+ (while (re-search-forward "%\\(:[-a-zA-Z]+\\)" nil t)
+ (and (setq x (plist-get org-store-link-plist
+ (intern (match-string 1))))
+ (replace-match x t t))))
+ ;; Turn on org-mode in the remember buffer, set local variables
+ (org-mode)
+ (org-set-local 'org-finish-function 'remember-buffer)
(if (and file (string-match "\\S-" file) (not (file-directory-p file)))
(org-set-local 'org-default-notes-file file))
+ (if (and headline (stringp headline) (string-match "\\S-" headline))
+ (org-set-local 'org-remember-default-headline headline))
+ ;; Interactive template entries
(goto-char (point-min))
- (if (re-search-forward "%\\?" nil t) (replace-match "")))
- (let ((org-startup-folded nil)
- (org-startup-with-deadline-check nil))
- (org-mode)))
- (org-set-local 'org-finish-function 'remember-buffer))
+ (while (re-search-forward "%^\\({\\([^}]*\\)}\\)?\\([uUtT]\\)?" nil t)
+ (setq char (if (match-end 3) (match-string 3))
+ prompt (if (match-end 2) (match-string 2)))
+ (goto-char (match-beginning 0))
+ (replace-match "")
+ (if char
+ (progn
+ (setq org-time-was-given (equal (upcase char) char))
+ (setq time (org-read-date (equal (upcase char) "U") t nil
+ prompt))
+ (org-insert-time-stamp time org-time-was-given
+ (member char '("u" "U"))))
+ (insert (read-string
+ (if prompt (concat prompt ": ") "Enter string")))))
+ (goto-char (point-min))
+ (if (re-search-forward "%\\?" nil t)
+ (replace-match "")
+ (and (re-search-forward "^[^#\n]" nil t) (backward-char 1))))
+ (org-mode)
+ (org-set-local 'org-finish-function 'remember-buffer)))
+
+;;;###autoload
+(defun org-remember ()
+ "Call `remember'. If this is already a remember buffer, re-apply template.
+If there is an active region, amke sure remember uses it as initial content
+of the remember buffer."
+ (interactive)
+ (if (eq org-finish-function 'remember-buffer)
+ (progn
+ (when (< (length org-remember-templates) 2)
+ (error "No other template available"))
+ (erase-buffer)
+ (let ((annotation (plist-get org-store-link-plist :annotation))
+ (initial (plist-get org-store-link-plist :initial)))
+ (org-remember-apply-template))
+ (message "Press C-c C-c to remember data"))
+ (if (org-region-active-p)
+ (remember (buffer-substring (point) (mark)))
+ (call-interactively 'remember))))
;;;###autoload
(defun org-remember-handler ()
@@ -9949,22 +10148,24 @@ also indented so that it starts in the same column as the headline
\(i.e. after the stars).
See also the variable `org-reverse-note-order'."
+ (goto-char (point-min))
+ (while (looking-at "^[ \t]*\n\\|^##.*\n")
+ (replace-match ""))
(catch 'quit
(let* ((txt (buffer-substring (point-min) (point-max)))
(fastp current-prefix-arg)
(file (if fastp org-default-notes-file (org-get-org-file)))
+ (heading org-remember-default-headline)
(visiting (find-buffer-visiting file))
(org-startup-with-deadline-check nil)
(org-startup-folded nil)
(org-startup-align-all-tables nil)
+ (org-goto-start-pos 1)
spos level indent reversed)
;; Modify text so that it becomes a nice subtree which can be inserted
;; into an org tree.
(let* ((lines (split-string txt "\n"))
first)
- ;; remove empty lines at the beginning
- (while (and lines (string-match "^[ \t]*\n" (car lines)))
- (setq lines (cdr lines)))
(setq first (car lines) lines (cdr lines))
(if (string-match "^\\*+" first)
;; Is already a headline
@@ -9989,10 +10190,20 @@ See also the variable `org-reverse-note-order'."
(save-excursion
(save-restriction
(widen)
+
+ ;; Find the default location
+ (when (and heading (stringp heading) (string-match "\\S-" heading))
+ (goto-char (point-min))
+ (if (re-search-forward
+ (concat "^\\*+[ \t]+" (regexp-quote heading)
+ "\\([ \t]+:[@a-zA-Z0-9_:]*\\)?[ \t]*$")
+ nil t)
+ (setq org-goto-start-pos (match-beginning 0))))
+
;; Ask the User for a location
- (setq spos (if fastp 1 (org-get-location
- (current-buffer)
- org-remember-help)))
+ (setq spos (if fastp
+ org-goto-start-pos
+ (org-get-location (current-buffer) org-remember-help)))
(if (not spos) (throw 'quit nil)) ; return nil to show we did
; not handle this note
(goto-char spos)
@@ -10013,11 +10224,11 @@ See also the variable `org-reverse-note-order'."
(org-paste-subtree 1 txt)))
((and (org-on-heading-p nil) (not current-prefix-arg))
;; Put it below this entry, at the beg/end of the subtree
- (org-back-to-heading)
+ (org-back-to-heading t)
(setq level (funcall outline-level))
(if reversed
(outline-end-of-heading)
- (outline-end-of-subtree))
+ (org-end-of-subtree t))
(if (not (bolp)) (newline))
(beginning-of-line 1)
(org-paste-subtree (org-get-legal-level level 1) txt))
@@ -10612,15 +10823,15 @@ that the match should indeed be shown."
cnt))
;; FIXME: Remove the siblings argument, or add args for the others too?
-(defun org-show-context (&optional key siblings)
+(defun org-show-context (&optional key)
"Make sure point and context and visible.
How much context is shown depends upon the variables
`org-show-hierarchy-above' and `org-show-following-heading'.
When SIBLINGS is non-nil, show all siblings on each hierarchy level."
- (let ((heading-p (org-on-heading-p t))
+ (let ((heading-p (org-on-heading-p t))
(hierarchy-p (org-get-alist-option org-show-hierarchy-above key))
(following-p (org-get-alist-option org-show-following-heading key))
- (siblings-p (or siblings (org-get-alist-option org-show-siblings key))))
+ (siblings-p (org-get-alist-option org-show-siblings key)))
(catch 'exit
;; Show heading or entry text
(if heading-p
@@ -10654,8 +10865,9 @@ siblings are shown. This repairs the tree structure to what it would
look like when opened with hierarchical calls to `org-cycle'."
(interactive "P")
(let ((org-show-hierarchy-above t)
- (org-show-following-heading t))
- (org-show-context nil siblings)))
+ (org-show-following-heading t)
+ (org-show-siblings (if siblings t org-show-siblings)))
+ (org-show-context nil)))
(defun org-highlight-new-match (beg end)
"Highlight from BEG to END and mark the highlight is an occur headline."
@@ -11284,7 +11496,7 @@ So these are more for recording a certain time/date."
(defvar org-ans1) ; dynamically scoped parameter
(defvar org-ans2) ; dynamically scoped parameter
-(defun org-read-date (&optional with-time to-time from-string)
+(defun org-read-date (&optional with-time to-time from-string prompt)
"Read a date and make things smooth for the user.
The prompt will suggest to enter an ISO date, but you can also enter anything
which will at least partially be understood by `parse-time-string'.
@@ -11337,7 +11549,8 @@ used to insert the time stamp into the buffer to include the time."
(view-calendar-holidays-initially nil)
(timestr (format-time-string
(if with-time "%Y-%m-%d %H:%M" "%Y-%m-%d") default-time))
- (prompt (format "YYYY-MM-DD [%s]: " timestr))
+ (prompt (concat (if prompt (concat prompt " ") "")
+ (format "YYYY-MM-DD [%s]: " timestr)))
ans org-ans1 org-ans2 (deltadays 0)
second minute hour day month year tl wday wday1)
@@ -11499,7 +11712,6 @@ The command returns the inserted time stamp."
(org-parse-time-string (buffer-substring beg end) t)))
(w1 (- end beg))
(with-hm (and (nth 1 t1) (nth 2 t1)))
- (inactive (= (char-before (1- beg)) ?\[))
(tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats))
(time (org-fix-decoded-time t1))
(str (org-add-props
@@ -12273,9 +12485,10 @@ The following commands are available:
(org-add-hook 'post-command-hook 'org-agenda-post-command-hook nil 'local)
(org-add-hook 'pre-command-hook 'org-unhighlight nil 'local)
;; Make sure properties are removed when copying text
- (org-set-local 'buffer-substring-filters
- (cons (lambda (x) (set-text-properties 0 (length x) nil x) x)
- buffer-substring-filters))
+ (when (boundp 'buffer-substring-filters)
+ (org-set-local 'buffer-substring-filters
+ (cons (lambda (x) (set-text-properties 0 (length x) nil x) x)
+ buffer-substring-filters)))
(unless org-agenda-keep-modes
(setq org-agenda-follow-mode org-agenda-start-with-follow-mode
org-agenda-show-log nil))
@@ -13126,9 +13339,14 @@ dates."
entry date args)))
(if (or rtn (equal d today) org-timeline-show-empty-dates)
(progn
- (insert (format-time-string org-agenda-date-format
- (calendar-time-from-absolute d 0))
- "\n")
+ (insert (calendar-day-name date) " "
+ (number-to-string (extract-calendar-day date)) " "
+ (calendar-month-name (extract-calendar-month date)) " "
+ (number-to-string (extract-calendar-year date)) "\n")
+; FIXME: this gives a timezone problem
+; (insert (format-time-string org-agenda-date-format
+; (calendar-time-from-absolute d 0))
+; "\n")
(put-text-property s (1- (point)) 'face 'org-level-3)
(put-text-property s (1- (point)) 'org-date-line t)
(if (equal d today)
@@ -13294,8 +13512,14 @@ NDAYS defaults to `org-agenda-ndays'."
(setq rtnall (append rtnall rtn))))
(if (or rtnall org-agenda-show-all-dates)
(progn
- (insert (format-time-string org-agenda-date-format
- (calendar-time-from-absolute d 0)) "\n")
+ (insert (format "%-9s %2d %s %4d\n"
+ (calendar-day-name date)
+ (extract-calendar-day date)
+ (calendar-month-name (extract-calendar-month date))
+ (extract-calendar-year date)))
+; FIXME: this gives a timezone problem
+; (insert (format-time-string org-agenda-date-format
+; (calendar-time-from-absolute d 0)) "\n")
(put-text-property s (1- (point)) 'face 'org-level-3)
(put-text-property s (1- (point)) 'org-date-line t)
(if todayp (put-text-property s (1- (point)) 'org-today t))
@@ -13999,7 +14223,7 @@ the documentation of `org-diary'."
(regexp org-scheduled-time-regexp)
(todayp (equal date (calendar-current-date))) ; DATE bound by calendar
(d1 (calendar-absolute-from-gregorian date)) ; DATE bound by calendar
- d2 diff pos pos1 category tags donep
+ d2 diff pos pos1 category tags
ee txt head)
(goto-char (point-min))
(while (re-search-forward regexp nil t)
@@ -14655,7 +14879,6 @@ and by additional input from the age of a schedules or deadline entry."
(or (eq major-mode 'org-agenda-mode) (error "Not in agenda"))
(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 (n 0) conf)
@@ -16278,7 +16501,7 @@ underlined headlines. The default is 3."
(email (plist-get opt-plist :email))
(language (plist-get opt-plist :language))
(quote-re0 (concat "^[ \t]*" org-quote-string "\\>"))
- (quote-re (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)"))
+; (quote-re (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)"))
(text nil)
(todo nil)
(lang-words nil))
@@ -16899,6 +17122,10 @@ lang=\"%s\" xml:lang=\"%s\">
(insert "</pre>\n"))
(throw 'nextline nil))
+ ;; Horizontal line
+ (when (string-match "^[ \t]*-\\{5,\\}[ \t]*$" line)
+ (insert "\n<hr/>\n")
+ (throw 'nextline nil))
;; make targets to anchors
(while (string-match "<<<?\\([^<>]*\\)>>>?\\((INVISIBLE)\\)?[ \t]*\n?" line)
@@ -17874,6 +18101,8 @@ The XOXO buffer is named *xoxo-<source buffer name>*"
(define-key org-mode-map "\C-c\\" 'org-tags-sparse-tree) ; Minor-mode res.
(define-key org-mode-map "\C-c\C-m" 'org-insert-heading)
(define-key org-mode-map "\M-\C-m" 'org-insert-heading)
+(define-key org-mode-map "\C-c\C-x\C-n" 'org-next-link)
+(define-key org-mode-map "\C-c\C-x\C-p" 'org-previous-link)
(define-key org-mode-map "\C-c\C-l" 'org-insert-link)
(define-key org-mode-map "\C-c\C-o" 'org-open-at-point)
(define-key org-mode-map "\C-c%" 'org-mark-ring-push)
@@ -18341,7 +18570,7 @@ See the individual commands for more information."
"--"
("Calculate"
["Set Column Formula" org-table-eval-formula (org-at-table-p)]
- ["Set Named Field Formula" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
+ ["Set Field Formula" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
["Edit Formulas" org-table-edit-formulas (org-at-table-p)]
"--"
["Recalculate line" org-table-recalculate (org-at-table-p)]
@@ -18487,6 +18716,9 @@ See the individual commands for more information."
["Insert Link" org-insert-link t]
["Follow Link" org-open-at-point t]
"--"
+ ["Next link" org-next-link t]
+ ["Previous link" org-previous-link t]
+ "--"
["Descriptive Links"
(progn (org-add-to-invisibility-spec '(org-link)) (org-restart-font-lock))
:style radio :selected (member '(org-link) buffer-invisibility-spec)]
@@ -18601,7 +18833,7 @@ contexts are:
:table in an org-mode table
:table-special on a special filed in a table
:table-table in a table.el table
-:link on a hyperline
+:link on a hyperlink
:keyword on a keyword: SCHEDULED, DEADLINE, CLOSE,COMMENT, QUOTE.
:target on a <<target>>
:radio-target on a <<<radio-target>>>
@@ -18721,7 +18953,8 @@ return nil."
(defun org-replace-escapes (string table)
;; FIXME: document and make safer
- (let (e re rpl)
+ (let ((case-fold-search nil)
+ e re rpl)
(while (setq e (pop table))
(setq re (concat "%-?[0-9.]*" (substring (car e) 1)))
(while (string-match re string)
@@ -18730,6 +18963,7 @@ return nil."
(setq string (replace-match rpl t t string))))
string))
+
(defun org-sublist (list start end)
"Return a section of LIST, from START to END.
Counting starts at 1."
@@ -19089,4 +19323,3 @@ This function should be run in the `org-after-todo-state-change-hook'."
;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
;;; org.el ends here
-
diff --git a/org.pdf b/org.pdf
index 76d8632..a2b991d 100644
--- a/org.pdf
+++ b/org.pdf
Binary files differ
diff --git a/org.texi b/org.texi
index 73d5738..b9682a7 100644
--- a/org.texi
+++ b/org.texi
@@ -3,12 +3,12 @@
@setfilename ../info/org
@settitle Org Mode Manual
-@set VERSION 4.62
-@set DATE January 2007
+@set VERSION 4.64
+@set DATE February 2007
@dircategory Emacs
@direntry
-* Org Mode: (org). outline-based notes management and organizer
+* Org Mode: (org). Outline-based notes management and organizer
@end direntry
@c Version and Contact Info
@@ -132,7 +132,7 @@ The spreadsheet
* Formula syntax for Lisp:: Writing formulas in Emacs Lisp
* Field formulas:: Formulas valid for a single field
* Column formulas:: Formulas valid for an entire column
-* Editing and debuggung formulas:: Fixing formulas
+* Editing and debugging formulas:: Fixing formulas
* Updating the table:: Recomputing all dependent fields
* Advanced features:: Field names, parameters and automatic recalc
@@ -152,6 +152,12 @@ Internal links
* Radio targets:: Make targets trigger links in plain text.
* CamelCase links:: Activating CamelCase words as links
+Remember
+
+* Setting up remember:: Some code for .emacs to get things going
+* Remember templates:: Define the outline of different note types
+* Storing notes:: Directly get the note to where it belongs
+
TODO items
* TODO basics:: Marking and displaying TODO entries
@@ -330,7 +336,7 @@ iCalendar file. It can also serve as a publishing tool for a set of
linked webpages.
An important design aspect that distinguishes Org-mode from for example
-Planner/Muse is that it encougages to store every piece of information
+Planner/Muse is that it encourages to store every piece of information
only once. In Planner, you have project pages, day pages and possibly
other files, duplicating some information such as tasks. In Org-mode,
you only have notes files. In your notes you mark entries as tasks,
@@ -913,7 +919,7 @@ match is in the body of an entry, headline and body are made visible.
In order to provide minimal context, also the full hierarchy of
headlines above the match is shown, as well as the headline following
the match. Each match is also highlighted; the highlights disappear
-when the bufer is changes an editing command, or by pressing @kbd{C-c
+when the buffer is changes an editing command, or by pressing @kbd{C-c
C-c}. When called with a @kbd{C-u} prefix argument, previous highlights
are kept, so several calls to this command can be stacked.
@end table
@@ -1067,7 +1073,7 @@ Emacs @file{calc} package.
@node Built-in table editor, Narrow columns, Tables, Tables
@section The built-in table editor
-@cindex table editor, builtin
+@cindex table editor, built-in
Org-mode makes it easy to format tables in plain ASCII. Any line with
@samp{|} as the first non-white character is considered part of a
@@ -1351,7 +1357,7 @@ derive fields from other fields.
* Formula syntax for Lisp:: Writing formulas in Emacs Lisp
* Field formulas:: Formulas valid for a single field
* Column formulas:: Formulas valid for an entire column
-* Editing and debuggung formulas:: Fixing formulas
+* Editing and debugging formulas:: Fixing formulas
* Updating the table:: Recomputing all dependent fields
* Advanced features:: Field names, parameters and automatic recalc
@end menu
@@ -1527,7 +1533,7 @@ used when we do computations in lisp.
@cindex formula, for individual table field
To assign a formula to a particular field, type it directly into the
-field, preceded by @samp{=:}, for example @samp{=:$1+$2}. When you
+field, preceded by @samp{:=}, for example @samp{:=$1+$2}. When you
press @key{TAB} or @key{RET} or @kbd{C-c C-c} with the cursor still in
the field, the formula will be stored as the formula for this field,
evaluated, and the current field replaced with the result.
@@ -1553,7 +1559,7 @@ formula, with default taken from the @samp{#+TBLFM:} line, applies
it to the current field and stores it.
@end table
-@node Column formulas, Editing and debuggung formulas, Field formulas, The spreadsheet
+@node Column formulas, Editing and debugging formulas, Field formulas, The spreadsheet
@subsection Column formulas
@cindex column formula
@cindex formula, for table column
@@ -1587,7 +1593,7 @@ will apply it to that many consecutive fields in the current column.
@end table
-@node Editing and debuggung formulas, Updating the table, Column formulas, The spreadsheet
+@node Editing and debugging formulas, Updating the table, Column formulas, The spreadsheet
@subsection Editing and Debugging formulas
@cindex formula editing
@cindex editing, of table formulas
@@ -1662,7 +1668,7 @@ turn on formula debugging in the @code{Tbl} menu and repeat the
calculation, for example by pressing @kbd{C-c = @key{RET}} in a field.
Detailed information will be displayed.
-@node Updating the table, Advanced features, Editing and debuggung formulas, The spreadsheet
+@node Updating the table, Advanced features, Editing and debugging formulas, The spreadsheet
@subsection Updating the Table
@cindex recomputing table fields
@cindex updating, table
@@ -2029,22 +2035,25 @@ The key binding @kbd{C-c l} is only a suggestion - see @ref{Installation}.
@item C-c C-l
Insert a link. This prompts for a link to be inserted into the buffer.
You can just type a link, using text for an internal link, or one of the
-link type prefixes mentioned in the examples above. Through completion,
-all links stored during the current session can be
-accessed@footnote{After insertion of a stored link, the link will be
+link type prefixes mentioned in the examples above. All links stored
+during the current session are part of the history for this prompt, so
+you can access them with @key{up} and @key{down}, or with
+completion@footnote{After insertion of a stored link, the link will be
removed from the list of stored links. To keep it in the list later
use, use a triple @kbd{C-u} prefix to @kbd{C-c C-l}, or configure the
option @code{org-keep-stored-link-after-insertion}.}. The link will be
inserted into the buffer, along with a descriptive text. If some text
-was selecten when this command is called, the selected text becomes the
+was selected when this command is called, the selected text becomes the
default description.@* Note that you don't have to use this command to
insert a link. Links in Org-mode are plain text, and you can type or
paste them straight into the buffer. By using this command, the links
are automatically enclosed in double brackets, and you will be asked for
-the optional descriptive text. If the link is a @samp{file:} link and
-the linked file is located in the same directory as the current file or
-a subdirectory of it, the path of the file will be inserted relative to
-the current directory.
+the optional descriptive text.
+
+@c If the link is a @samp{file:} link and
+@c the linked file is located in the same directory as the current file or
+@c a subdirectory of it, the path of the file will be inserted relative to
+@c the current directory.
@kindex C-u C-c C-l
@cindex file name completion
@@ -2105,10 +2114,26 @@ Jump back to a recorded position. A position is recorded by the
commands following internal links, and by @kbd{C-c %}. Using this
command several times in direct succession moves through a ring of
previously recorded positions.
+
+@kindex C-c C-x C-n
+@kindex C-c C-x C-p
+@cindex links, finding next/previous
+@item C-c C-x C-n
+@itemx C-c C-x C-p
+Move forward/backward to the next link in the buffer. At the limit of
+the buffer, the search fails once, and then wraps around. The key
+bindings for this are really too long, you might want to bind this also
+to @kbd{C-n} and @kbd{C-p}
+@lisp
+(add-hook 'org-load-hook
+ (lambda ()
+ (define-key 'org-mode-map "\C-n" 'org-next-link)
+ (define-key 'org-mode-map "\C-p" 'org-previous-link)))
+@end lisp
@end table
@node Link abbreviations, Search options, Handling links, Hyperlinks
-@section Link abbreviatons
+@section Link abbreviations
@cindex link abbreviations
@cindex abbreviation, links
@@ -2117,7 +2142,7 @@ needed in a document. For this you can use link abbreviations. An
abbreviated link looks like this
@example
-[[linkword::tag][description]]
+[[linkword:tag][description]]
@end example
@noindent
@@ -2141,9 +2166,9 @@ in order to create the link. You may also specify a function that will
be called with the tag as the only argument to create the link.
With the above setting, you could link to a specific bug with
-@code{[[bugzilla::129]]}, search the web for OrgMode with
-@code{[[google::OrgMode]]} and find out what the Org-mode author is
-doing besides Emacs hacking with @code{[[ads::Dominik,C]]}.
+@code{[[bugzilla:129]]}, search the web for @samp{OrgMode} with
+@code{[[google:OrgMode]]} and find out what the Org-mode author is
+doing besides Emacs hacking with @code{[[ads:Dominik,C]]}.
If you need special abbreviations just for a single Org-mode buffer, you
can define them in the file with
@@ -2235,15 +2260,27 @@ file.
@cindex @file{remember.el}
Another way to create org entries with links to other files is through
-the @emph{Remember} package by John Wiegley. @emph{Remember} lets you
-store quick notes with little interruption of your work flow. See
+the @i{remember} package by John Wiegley. @i{Remember} lets you store
+quick notes with little interruption of your work flow. See
@uref{http://www.emacswiki.org/cgi-bin/wiki/RememberMode} for more
-information. The notes produced by @emph{Remember} can be stored in
-different ways, and Org-mode files are a good target. Org-mode allows
-you to file away notes either to a default file, or directly to the correct
-location in your Org-mode outline tree. The following customization
-will tell @emph{Remember} to use org files as target, and to create
-annotations compatible with Org-mode links.
+information. The notes produced by @i{Remember} can be stored in
+different ways, and Org-mode files are a good target. Org-mode
+significantly expands the possibilities of @i{remember}: You may define
+templates for different note types, and to associate target files and
+headlines with specific templates. It also allows you to select the
+location where a note should be stored interactively, on the fly.
+
+@menu
+* Setting up remember:: Some code for .emacs to get things going
+* Remember templates:: Define the outline of different note types
+* Storing notes:: Directly get the note to where it belongs
+@end menu
+
+@node Setting up remember, Remember templates, Remember, Remember
+@subsection Setting up remember
+
+The following customization will tell @i{remember} to use org files as
+target, and to create annotations compatible with Org-mode links.
@example
(setq org-directory "~/path/to/my/orgfiles/")
@@ -2253,25 +2290,35 @@ annotations compatible with Org-mode links.
(add-hook 'remember-mode-hook 'org-remember-apply-template)
@end example
+@node Remember templates, Storing notes, Setting up remember, Remember
+@subsection Remember templates
@cindex templates, for remember
+
In combination with Org-mode, you can use templates to generate
-different types of remember notes. For example, if you would like to
-use one template to create general TODO entries, and another one for
-journal entries, you could use:
+different types of @i{remember} notes. For example, if you would like
+to use one template to create general TODO entries, another one for
+journal entries, and a third one for collecting random ideas, you could
+use:
@example
(setq org-remember-templates
- '((?t "* TODO %?\n %i\n %a" "~/org/TODO.org")
- (?j "* %U %?\n\n %i\n %a" "~/org/JOURNAL.org")))
+ '((?t "* TODO %?\n %i\n %a" "~/org/TODO.org")
+ (?j "* %U %?\n\n %i\n %a" "~/org/JOURNAL.org")
+ (?i "* %^@{Title@}\n %i\n %a" "~/org/JOURNAL.org" "New Ideas")))
@end example
@noindent In these entries, the character specifies how to select the
-template, the first string specifies the template, and the (optional)
-second string specifies a default file (overruling
-@code{org-default-notes-file}) as a target for this note.
-
-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
+template. The first string specifies the template. Two more (optional)
+strings give the file in which, and the headline under which the new
+note should be stored. The file defaults to
+@code{org-default-notes-file}, the heading to
+@code{org-remember-default-headline}. Both defaults help to get to the
+storing location quickly, but you can change the location interactively
+while storing the note.
+
+When you call @kbd{M-x remember} (or @kbd{M-x org-remember}) to remember
+something, org will prompt for a key to select the template (if you have
+more than one template) and then prepare the buffer like
@example
* TODO
[[file:link to where you called remember]]
@@ -2285,17 +2332,66 @@ for a key to select the template and then prepare the buffer like
[[file:link to where you called remember]]
@end example
-@noindent See the variable @code{org-remember-templates} for more details.
+@noindent
+During expansion of the template, special @kbd{%}-escapes allow dynamic
+insertion of content:
+@example
+%^@{prompt@} @r{prompt the user for a string and replace this sequence with it.}
+%t @r{time stamp, date only}
+%T @r{time stamp with date and time}
+%u, %U @r{like the above, but inactive time stamps}
+%^t @r{like @code{%t}, but prompt for date. Similarly @code{%^T}, @code{%^u}, @code{%^U}}
+ @r{You may define a prompt like @code{%^@{Birthday@}t}}
+%n @r{user name (taken from @code{user-full-name})}
+%a @r{annotation, normally the link created with @code{org-store-link}}
+%i @r{initial content, the region when remember is called with C-u.}
+ @r{The entire text will be indented like @code{%i} itself.}
+%:keyword @r{specific information for certain link types, see below}
+@end example
+
+@noindent
+For specific link types, the following keywords will be defined:
-When you are finished composing a note with remember, you have to press
+@example
+Link type | Available keywords
+-------------------+----------------------------------------------
+bbdb | %:name %:company
+vm, wl, mh, rmail | %:type %:subject %:message-id
+ | %:from %:fromname %:fromaddress
+ | %:to %:toname %:toaddress
+ | %:fromto @r{(either "to NAME" or "from NAME")@footnote{This will always be the other, not the user. See the variable @code{org-from-is-user-regexp}.}}
+gnus | %:group, @r{for messages also all email fields}
+w3, w3m | %:url
+info | %:file %:node
+calendar | %:date"
+@end example
+
+@noindent
+If you would like to have the cursor in a specific position after the
+template has been expanded:
+
+@example
+%? @r{After completing the template, position cursor here.}
+@end example
+
+@noindent
+If you change you mind about which template to use, call
+@code{org-remember} in the remember buffer. You may then select a new
+template that will be filled with the previoous context information.
+
+@node Storing notes, , Remember templates, Remember
+@subsection Storing notes
+
+When you are finished preparing a note with @i{remember}, you have to press
@kbd{C-c C-c} to file the note away. The handler first prompts for a
-target file - if you press @key{RET}, the value of
-@code{org-default-notes-file} is used. Then the command offers the
-headings tree of the selected file. You can either immediately press
-@key{RET} to get the note appended to the file. Or you can use vertical
-cursor motion (@key{up} and @key{down}) and visibility cycling
-(@key{TAB}) to find a better place. Pressing @key{RET} or @key{left} or
-@key{right} leads to the following result.
+target file - if you press @key{RET}, the value specified for the
+template is used. Then the command offers the headings tree of the
+selected file, with the cursor position at the default headline (if you
+had specified one in the template). You can either immediately press
+@key{RET} to get the note placed there. Or you can use vertical cursor
+motion (@key{up} and @key{down}) and visibility cycling (@key{TAB}) to
+find a better place. Pressing @key{RET} or @key{left} or @key{right}
+then leads to the following result.
@multitable @columnfractions 0.2 0.1 0.7
@item @b{Cursor position} @tab @b{Key} @tab @b{Note gets inserted}
@@ -2308,11 +2404,10 @@ cursor motion (@key{up} and @key{down}) and visibility cycling
Or use prefix arg to specify level manually.
@end multitable
-So a fast way to store the note is to press @kbd{C-c C-c @key{RET}
-@key{RET}} to append it to the default file. Even shorter would be
-@kbd{C-u C-c C-c}, which does the same without even showing the tree.
-But with little extra effort, you can push it directly to the correct
-location.
+So a fast way to store the note to its default location is to press
+@kbd{C-c C-c @key{RET} @key{RET}}. Even shorter would be @kbd{C-u C-c
+C-c}, which does the same without even asking for a file or showing the
+tree.
Before inserting the text into a tree, the function ensures that the
text has a headline, i.e. a first line that starts with a @samp{*}.
@@ -3742,7 +3837,7 @@ indicate a project that should not be considered yet. Lets further
assume that the todo keyword DONE marks finished projects, and that NEXT
and TODO indicate next actions. Finally, the tag @@SHOP indicates
shopping and is a next action even without the NEXT tag. In this case
-you would start by identifying elegible projects with a tags/todo match
+you would start by identifying eligible projects with a tags/todo match
@samp{+PROJECT/-MAYBE-DONE}, and then check for TODO, NEXT and @@SHOP in
the subtree to identify projects that are not stuck. The correct
customization for this is
@@ -4682,9 +4777,11 @@ creates two levels of headings and does the rest as items.
@subsection Quoting HTML tags
If you want to include HTML tags which should be interpreted as such,
-mark them with @samp{@@} as in @samp{@@<b>bold text@@</b>}.
-Plain @samp{<} and @samp{>} are always transformed to @samp{&lt;} and
-@samp{&gt;} in HTML export.
+mark them with @samp{@@} as in @samp{@@<b>bold text@@</b>}. Note that
+this wirks only for simple tags, but not for complex ones like a
+@samp{<span>} that contains, for example a link. Plain @samp{<} and
+@samp{>} are always transformed to @samp{&lt;} and @samp{&gt;} in HTML
+export.
@node Links, Images, Quoting HTML tags, HTML export
@subsection Links
@@ -4813,25 +4910,8 @@ Create a single large iCalendar file from all files in
@end table
How this calendar is best read and updated, depends on the application
-you are using. For example, when using iCal under Apple MacOS X, you
-could create a new calendar @samp{OrgMode} (the default name for the
-calendar created by @kbd{C-c C-e c}, see the variables
-@code{org-icalendar-combined-name} and
-@code{org-combined-agenda-icalendar-file}). Then set Org-mode to
-overwrite the corresponding file
-@file{~/Library/Calendars/OrgMode.ics}. You may even use AppleScript
-to make iCal re-read the calendar files each time a new version of
-@file{OrgMode.ics} is produced. Here is the setup needed for this:
-
-@cindex applescript, for calendar update
-@lisp
-(setq org-combined-agenda-icalendar-file
- "~/Library/Calendars/OrgMode.ics")
-(add-hook 'org-after-save-iCalendar-file-hook
- (lambda ()
- (shell-command
- "osascript -e 'tell application \"iCal\" to reload calendars'")))
-@end lisp
+you are using. The FAQ covers this issue.
+
@node Text interpretation, , iCalendar export, Exporting
@section Text interpretation by the exporter
@@ -4887,6 +4967,11 @@ backend supports lists. See @xref{Plain lists}.
You can make words @b{*bold*}, @i{/italic/}, _underlined_,
@code{=code=}, and @samp{+strikethrough+}.
+@cindex horizontal rules, in exported files
+@item
+A line consisting of only dashes, and at least 5 of them, will be
+exported as a horizontal line (@samp{<hr/>} in HTML).
+
@cindex LaTeX fragments, export
@cindex TeX macros, export
@item
@@ -5392,7 +5477,7 @@ Elsewhere, complete dictionary words using ispell.
@cindex options, for customization
@cindex variables, for customization
-There are more than 170 variables that can be used to customize
+There are more than 180 variables that can be used to customize
Org-mode. For the sake of compactness of the manual, I am not
describing the variables here. A structured overview of customization
variables is available with @kbd{M-x org-customize}. Or select
@@ -5703,7 +5788,7 @@ with other code out there.
@cindex @file{calc.el}
@item @file{calc.el} by Dave Gillespie
Org-mode uses the calc package for implementing spreadsheet
-functionality in its tables (@pxref{The spreadsheet}). Org-modes
+functionality in its tables (@pxref{The spreadsheet}). Org-mode
checks for the availability of calc by looking for the function
@code{calc-eval} which should be autoloaded in your setup if calc has
been installed properly. As of Emacs 22, calc is part of the Emacs
@@ -5831,7 +5916,9 @@ the file), it does so silently. No error message is displayed.
@item
Recalculating a table line applies the formulas from left to right.
If a formula uses @emph{calculated} fields further down the row,
-multiple recalculation may be needed to get all fields consistent.
+multiple recalculation may be needed to get all fields consistent. You
+may use the command @code{org-table-iterate} (@kbd{C-u C-c *}) to
+recalculate until convergence.
@item
A single letter cannot be made bold, for example @samp{*a*}.
@item
@@ -6012,17 +6099,17 @@ MATCH is being ignored."
@cindex thanks
Org-mode was borne in 2003, out of frustration over the user interface
-of the Emacs outline-mode. All I wanted was to make working with an
-outline tree possible without having to remember more than 10 commands
-just for hiding and unhiding parts of the outline tree, and to allow to
-restructure a tree easily. Visibility cycling and structure editing
-were originally implemented in the package @file{outline-magic.el}, but
-quickly moved to the more general @file{org.el}. TODO entries, basic
-time stamps, and table support were added next, and highlight the two
-main goals that Org-mode still has today: To create a new,
-outline-based, plain text mode with innovative and intuitive editing
-features, and to incorporate project planning functionality directly
-into a notes file.
+of the Emacs outline-mode. All I initially wanted was to make working
+with an outline tree possible without having to remember more than 10
+commands just for hiding and unhiding parts of the outline tree, and to
+allow to restructure a tree easily. Visibility cycling and structure
+editing were originally implemented in the package
+@file{outline-magic.el}, but quickly moved to the more general
+@file{org.el}. TODO entries, basic time stamps, and table support were
+added next, and highlight the two main goals that Org-mode still has
+today: To create a new, outline-based, plain text mode with innovative
+and intuitive editing features, and to incorporate project planning
+functionality directly into a notes file.
Since the first release, hundreds of emails to me or on
@code{emacs-orgmode@@gnu.org} have provided a constant stream of bug
@@ -6055,7 +6142,9 @@ calculations and improved XEmacs compatibility, in particular by porting
@item
@i{Eddward DeVilla} proposed and tested checkbox statistics.
@item
-@i{Kees Dullemond} inspired the use of narrowed tabled columns.
+@i{Kees Dullemond} used to edit projects lists directly in HTML and so
+inspired some of the early development, including HTML export. He also
+asked for a way to narrow wide table columns.
@item
@i{Christian Egli} converted the documentation into TeXInfo format,
patched CSS formatting into the HTML exporter, and inspired the agenda.
diff --git a/orgcard.pdf b/orgcard.pdf
index 6cbcd40..95f5448 100644
--- a/orgcard.pdf
+++ b/orgcard.pdf
Binary files differ
diff --git a/orgcard.tex b/orgcard.tex
index 9313519..38dd773 100644
--- a/orgcard.tex
+++ b/orgcard.tex
@@ -1,5 +1,5 @@
% Reference Card for Org Mode
-\def\orgversionnumber{4.62}
+\def\orgversionnumber{4.64}
\def\year{2007}
%
%**start of header
@@ -432,6 +432,8 @@ formula, \kbd{:=} a named-field formula.
\key{...force open in emacs/other window}{mouse-3}
\key{record a position in mark ring}{C-c \%}
\key{jump back to last followed link(s)}{C-c \&}
+\key{Find next link}{C-c C-x C-n}
+\key{Find previous link}{C-c C-x C-p}
{\bf Internal Links}