Browse Source

Merge branch 'master' of ssh://repo.or.cz/srv/git/org-mode

Conflicts:

	ChangeLog
Phil Jackson 17 years ago
parent
commit
280c235062
14 changed files with 1188 additions and 235 deletions
  1. 20 5
      ChangeLog
  2. 1 1
      Makefile
  3. 315 43
      ORGWEBPAGE/Changes.html
  4. 26 5
      ORGWEBPAGE/Changes.org
  5. 636 84
      ORGWEBPAGE/Changes.txt
  6. 3 3
      ORGWEBPAGE/index.org
  7. 69 3
      ORGWEBPAGE/tmp/Changes.html
  8. 6 6
      ORGWEBPAGE/tmp/index.html
  9. 10 4
      README_GIT
  10. 1 1
      TODO
  11. 10 4
      org-mac-message.el
  12. 51 52
      org.el
  13. 39 23
      org.texi
  14. 1 1
      orgcard.tex

+ 20 - 5
ChangeLog

@@ -4,6 +4,22 @@
 	* org-irc.el (org-irc-get-erc-link): Fixed to allow the extraction
 	* org-irc.el (org-irc-get-erc-link): Fixed to allow the extraction
 	of a nick from both CVS and stable versions of erc.
 	of a nick from both CVS and stable versions of erc.
 
 
+2008-02-19  Carsten Dominik  <dominik@science.uva.nl>
+
+	* org.el (org-set-regexps-and-options): Parse the new logging
+	options.
+	(org-extract-log-state-settings): New function.
+	(org-todo): Handle the new ways of recording state change stuff.
+	(org-local-logging): New function.
+
+2008-02-18  Carsten Dominik  <dominik@science.uva.nl>
+
+	* org.el (org-columns-open-link): Fixed bug with opening link in
+	column view.
+
+	* org-mac-message.el (org-mac-message-get-link): New function for
+	non-interactive use.
+
 2008-02-17  Carsten Dominik  <dominik@science.uva.nl>
 2008-02-17  Carsten Dominik  <dominik@science.uva.nl>
 
 
 	* org.el (org-local-logging): New function
 	* org.el (org-local-logging): New function
@@ -26,9 +42,8 @@
 	(org-add-log-note): Check if we really need to ask for a note.
 	(org-add-log-note): Check if we really need to ask for a note.
 	(org-get-current-options): Digest the new keyword.
 	(org-get-current-options): Digest the new keyword.
 
 
-	* org.texi (Progress logging): Document the new variable
-	`org-log-progress' and the new possibilities for per-keyword
-	settings.
+	* org.texi (Progress logging): Document the new progress logging
+	stuff.
 
 
 2008-02-13  Carsten Dominik  <dominik@science.uva.nl>
 2008-02-13  Carsten Dominik  <dominik@science.uva.nl>
 
 
@@ -140,7 +155,7 @@
 	in each buffer, to make sure that also unused tags will be
 	in each buffer, to make sure that also unused tags will be
 	available for completion.
 	available for completion.
 
 
-2008-01-24  Carsten Dominik  <dominik@carsten-dominiks-macbook-pro.local>
+2008-01-24  Carsten Dominik  <dominik@science.uva.nl>
 
 
 	* org.el (org-columns-edit-value)
 	* org.el (org-columns-edit-value)
 	(org-columns-next-allowed-value): Only update if not in agenda.
 	(org-columns-next-allowed-value): Only update if not in agenda.
@@ -633,7 +648,7 @@ Installed as 5.09
 	(org-todo): Respect org-todo-log-states.
 	(org-todo): Respect org-todo-log-states.
 	(org-up-heading-safe): New function.
 	(org-up-heading-safe): New function.
 	(org-entry-get-with-inheritance): Use `org-up-heading-safe'.
 	(org-entry-get-with-inheritance): Use `org-up-heading-safe'.
-	
+
 	* org.texi: Change links to webpage and maintained email.
 	* org.texi: Change links to webpage and maintained email.
 	(Remember): Promoted to Chapter, significant changes.
 	(Remember): Promoted to Chapter, significant changes.
 	(Fast access to TODO states): New section.
 	(Fast access to TODO states): New section.

+ 1 - 1
Makefile

@@ -244,5 +244,5 @@ push:
 	git-push git+ssh://repo.or.cz/srv/git/org-mode.git master
 	git-push git+ssh://repo.or.cz/srv/git/org-mode.git master
 
 
 pushtag:
 pushtag:
-	git-tag -m "adding tag" -a $(TAG)
+	git-tag -m "Adding tag" -a $(TAG)
 	git-push git+ssh://repo.or.cz/srv/git/org-mode.git $(TAG)
 	git-push git+ssh://repo.or.cz/srv/git/org-mode.git $(TAG)

+ 315 - 43
ORGWEBPAGE/Changes.html

@@ -6,7 +6,7 @@ lang="en" xml:lang="en">
 <title>Org-mode list of User-visible changes</title>
 <title>Org-mode list of User-visible changes</title>
 <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
 <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
 <meta name="generator" content="Org-mode"/>
 <meta name="generator" content="Org-mode"/>
-<meta name="generated" content="2008/01/25 14:14:58"/>
+<meta name="generated" content="2008/02/19 08:08:42"/>
 <meta name="author" content="Carsten Dominik"/>
 <meta name="author" content="Carsten Dominik"/>
 <style type="text/css">
 <style type="text/css">
   html {
   html {
@@ -35,6 +35,104 @@ lang="en" xml:lang="en">
 </head><body>
 </head><body>
 <h1 class="title">Org-mode list of User-visible changes</h1>
 <h1 class="title">Org-mode list of User-visible changes</h1>
 
 
+<div class="outline-2">
+<h2>Version 5.22</h2>
+
+
+
+<div class="outline-3">
+<h3>Incompatible changes</h3>
+
+
+<ul>
+<li>
+The variable `org-log-done' is now less complex.
+</li>
+<li>
+The in-buffer settings for logging have changed.  Some
+options no longer exists, some new ones have been added.
+
+</li>
+</ul></div>
+
+<div class="outline-3">
+<h3>Details</h3>
+
+
+
+<div class="outline-4">
+<h4>Changes to logging progress</h4>
+
+
+<p>
+There is now more control over which state changes are being
+logged in what way.  Please read carefully the corresponding
+sections in the manual.  Basically: 
+</p>
+<ul>
+<li>
+The variable `org-log-done' has been simplified, it no
+longer influences logging state changes and clocking out.
+</li>
+<li>
+There is a new variable for triggering note-taking when
+clocking out an item: `org-log-note-clock-out'.
+</li>
+<li>
+Logging of state changes now has to be configured on a
+pre-keyword basis, either in `org-todo-keywords' or in the
+#+TODO in-buffer setting.
+</li>
+<li>
+These per-keyword settings allow more control.  For example
+<pre>
+ WAIT(w@)    Record a note when entering this state.
+ WAIT(w!)    Record a timestamp when entering this state.
+ WAIT(w@/!)  Recore a note when entering and timestamp
+             when leaving this state.  This is great for
+             getting a record when switching *back* from
+              WAIT to TODO.
+ WAIT(/!)    Record a timestamp when leaving this state.
+             Here we not even define a fast access
+             character, but just the logging stuff.
+</pre>
+
+
+</li>
+</ul></div>
+
+<div class="outline-4">
+<h4>Misc</h4>
+
+
+<ul>
+<li>
+M-RET no longer brakes a line in the middle, it will make a
+new line ofter the current or (if cursor is at the beginning
+of the line) before the current line.
+
+</li>
+<li>
+RET, when executed in a headline after the main text and
+before the tags will leave the tags in the current line and
+create a new line below the current one.
+
+</li>
+</ul></div>
+</div>
+</div>
+
+<div class="outline-2">
+<h2>Version 5.21</h2>
+
+
+<p>
+Bug fixes, in particular the long-hunted bug about wrong window
+positions after pressing SPACE in the agenda.  Hopefully this
+is really fixed.
+</p>
+</div>
+
 <div class="outline-2">
 <div class="outline-2">
 <h2>Version 5.20</h2>
 <h2>Version 5.20</h2>
 
 
@@ -44,65 +142,239 @@ lang="en" xml:lang="en">
 <h3>Overview</h3>
 <h3>Overview</h3>
 
 
 
 
+
+<div class="outline-4">
+<h4>Remember/Refile/Goto</h4>
+
+
+<ul>
+<li>
+The use of prefix arguments for the commands `org-remember'
+and `org-refile' has been normalized.
+
+</li>
+<li>
+The clock can now safely be used in a remember buffer.
+
+</li>
+<li>
+The variable `org-remember-use-refile-when-interactive'
+introduced only in 5.19 is already obsolete.  Please use
+`org-remember-interactive-interface' instead.
+
+</li>
+<li>
+It is no longer necessary to update the refiling targets.
+
+</li>
+<li>
+Automatic isearch in `org-goto'.
+
+</li>
+<li>
+Outline-path-completion as alternative org-goto interface.
+
+</li>
+</ul></div>
+
+<div class="outline-4">
+<h4>Misc</h4>
+
+
+<ul>
+<li>
+Checkboxes now work hierarchically.
+
+</li>
+<li>
+`C-k' can now behave specially in headlines.
+
+</li>
+<li>
+Repeater for tasks in plain timestamps.
+
+</li>
+<li>
+All clock intervals of an item show in agenda/timeline.
+
+</li>
+<li>
+New parameter <code>:step</code> for clocktable, to get daily reports.
+
+</li>
+<li>
+Never loose a repeaded scheduled item from the agenda.
+
+</li>
+<li>
+Archiving a subtree now stores the outline path in a property.
+
+</li>
+<li>
+Links to messages in Apple Mail.
+
+</li>
+<li>
+Bug fixes.
+
+</li>
+</ul></div>
 </div>
 </div>
 
 
 <div class="outline-3">
 <div class="outline-3">
 <h3>Incompatible Changes</h3>
 <h3>Incompatible Changes</h3>
 
 
 
 
-</div>
+<ul>
+<li>
+The variable `org-remember-use-refile-when-interactive'
+introduced only in 5.19 is already obsolete.  Please use
+`org-remember-interactive-interface' instead.
+
+</li>
+</ul></div>
 
 
 <div class="outline-3">
 <div class="outline-3">
 <h3>Details</h3>
 <h3>Details</h3>
 
 
 
 
-<p>
-+&mdash;&mdash;&mdash;&mdash;+&ndash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;+-&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;+-&mdash;&mdash;&mdash;&mdash;+
-+&mdash;&mdash;&mdash;&mdash;+&ndash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;+-&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;+-&mdash;&mdash;&mdash;&mdash;+
-+&mdash;&mdash;&mdash;&mdash;+&ndash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;+-&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;+-&mdash;&mdash;&mdash;&mdash;+
-+&mdash;&mdash;&mdash;&mdash;+&ndash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;+-&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;+-&mdash;&mdash;&mdash;&mdash;+
-+&mdash;&mdash;&mdash;&mdash;+&ndash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;+-&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;+-&mdash;&mdash;&mdash;&mdash;+
-</p>
+
+<div class="outline-4">
+<h4>Remember/Refile/Goto</h4>
+
+
 <ul>
 <ul>
 <li>
 <li>
+The use of prefix arguments for the commands `org-remember'
+and `org-refile' has been normalized:
+
+<ul>
+<li>
+when called without prefix argument, the command does its
+normal job, starting a remember note or refiling a tree.
+
+</li>
+<li>
+when called with a single C-u prefix, these commands can be
+used to select a target location and to jump there.  In
+the case of `org-remember', you will be prompted for a
+template and then Emacs jumps to the default target
+location or this template.  In the case of `org-refile',
+you select a location from the refile target list and jump
+there.
+
+</li>
+<li>
+when called with two prefixes (`C-u C-u'), the command
+jumps to the location last used for storing a note or a
+moved tree.
+
+</li>
+</ul></li>
+<li>
+When the clock is running inside an remember buffer, storing
+the remember buffer with `C-c C-c' will automatically clock
+out.  This was inspired by a request by Rainer Stengle. 
+
+</li>
+<li>
 The variable `org-remember-use-refile-when-interactive'
 The variable `org-remember-use-refile-when-interactive'
-introduced only in 5.19 is obsolete.  Please use
+introduced only in 5.19 is already obsolete.  Please use
 `org-remember-interactive-interface' instead.  This new
 `org-remember-interactive-interface' instead.  This new
 variable does select the interface that is used to select
 variable does select the interface that is used to select
-the target for a remember note.  Possible values are:
-FIXME:
+the target for a remember note in an interactive way.
+Possible values are:
 
 
+<ul>
+<li>
+`outline': Use an outline of the document to select a
+location.  
 </li>
 </li>
 <li>
 <li>
-You can now also have a plain (as opposed to deadline or
-scheduled) repeater timestamp in a task.  Switching the task
-to DONE will now also shift a plain time stamp.  This was a
-request by Austin Frank.
+`outline-path-completion': Use completion of an outline
+path to select a location.
+</li>
+<li>
+`refile': Offer the `org-refile-targets' as possible
+targets.
 
 
 </li>
 </li>
+</ul></li>
 <li>
 <li>
 It is no longer necessary to update the refiling targets -
 It is no longer necessary to update the refiling targets -
 they are always current.
 they are always current.
 
 
 </li>
 </li>
 <li>
 <li>
-`C-u C-c C-w' allows you to jump to a refiling location.
+In `org-goto', typing characters now automatically starts
+isearch from the beginning of the buffer.  The isearch is
+special also because it only matches in headline.  This
+goes some way toward saving org-goto from being removed
+from Org-mode.  Thanks to Piotr Zielinski for the code, and
+sorry that it took me so long to put it in.  If you prefer
+to use single letters n,p,f,b,u,q for navigation as before,
+configure the variable `org-goto-auto-isearch'.
+
+</li>
+<li>
+Outline-path-completion is now available as an alternative
+interface in the command `org-goto'.  Please select the
+default interface you'd like to use with the new variable
+`org-goto-interface'.  You can then select the alternative
+interface with a prefix argument to `C-c C-j' (org-goto).  I
+am considering to make outline-path-completion the default
+interface.  Comments?
+
 
 
 </li>
 </li>
+</ul></div>
+
+<div class="outline-4">
+<h4>Misc</h4>
+
+
+<ul>
 <li>
 <li>
-`C-u C-u C-c C-w' uses the refile interface to jum to any
-headline in the current file.
+Checkboxes now work hierarchically.  When a plain-list item
+with a checkbox has children with checkboxes, the status of
+the item's checkbox is calculated from the children, each
+time a checkbox is toggled with C-c C-c.  Thanks to Miguel
+A. Figueroa-Villanueva for a patch to this effect.
 
 
 </li>
 </li>
 <li>
 <li>
-In `org-goto', typing characters now automatically starts
-isearch from the beginning of the buffer.  The isearch is
-special also because it only matches in headline.  This goes
-some way toward saving org-goto from being removed from
-Org-mode.  Thanks to Piotr Zielinski for the code, and sorry
-that it took me o long to ut it in.  If you prefer to use
-single letters n,p,f,b,u,q for navigation as before,
-configure the variable `org-goto-auto-isearch'.
+There is a new variable `org-special-ctrl-k'.  When set,
+`C-k' will behave specially in headlines:
+
+<ul>
+<li>
+When the cursor is at the beginning of a headline, kill
+the entire line and possible the folded subtree below the
+line.
+</li>
+<li>
+When in the middle of the headline text, kill the
+headline up to the tags.
+</li>
+<li>
+When after the headline text, kill the tags.
+
+</li>
+</ul>
+<p>This is following a proposal by Piotr Zielinski.
+</p>
+</li>
+<li>
+You can now also have a plain (as opposed to deadline or
+scheduled) repeater timestamp in a task.  Switching the task
+to DONE will now also shift a plain time stamp.  This was a
+request by Austin Frank.
+
+</li>
+<li>
+If an entry is clocked multiple times, it will now show up
+several times in the agenda and timeline buffers, when
+log-mode is on.  This was a proposal by Jurgen Defurne.
 
 
 </li>
 </li>
 <li>
 <li>
@@ -117,7 +389,7 @@ A time-stamp with a repeater now no longer refers to the
 date <b>closest</b> to the current day.  Instead, it means either
 date <b>closest</b> to the current day.  Instead, it means either
 today or the most recent match.  This change makes sure that
 today or the most recent match.  This change makes sure that
 overdue scheduled or deadline items never disappear from the
 overdue scheduled or deadline items never disappear from the
-agenda.  With the previous convention, an overdue sheduled
+agenda.  With the previous convention, an overdue scheduled
 item would disappear.  For example, a weekly item scheduled
 item would disappear.  For example, a weekly item scheduled
 for Sunday would appear as overdue until Wednesday, and the
 for Sunday would appear as overdue until Wednesday, and the
 suddenly disappear until next Sunday.  Now the item will
 suddenly disappear until next Sunday.  Now the item will
@@ -128,7 +400,7 @@ Bernt.
 
 
 </li>
 </li>
 <li>
 <li>
-Archving a subtree now creates an additional property,
+Archiving a subtree now creates an additional property,
 <code>ARCHIVE_OLPATH</code>.  This property contains the "path" in the
 <code>ARCHIVE_OLPATH</code>.  This property contains the "path" in the
 outline tree to the archived entry, as it was in the
 outline tree to the archived entry, as it was in the
 original file.  For example, archiving <code>Fix the door</code> in the
 original file.  For example, archiving <code>Fix the door</code> in the
@@ -155,9 +427,20 @@ Note that you can configure (i.e. limit) the information
 that gets stored upon archiving with the variable
 that gets stored upon archiving with the variable
 `org-archive-save-context-info'.
 `org-archive-save-context-info'.
 </p>
 </p>
+</li>
+<li>
+New file `org-mac-message.el' by John Wiegley to create
+links for messages in Apple Mail, and to follow these
+links.
+
+</li>
+<li>
+Bug fixes.
+
 </li>
 </li>
 </ul></div>
 </ul></div>
 </div>
 </div>
+</div>
 
 
 <div class="outline-2">
 <div class="outline-2">
 <h2>Version 5.19</h2>
 <h2>Version 5.19</h2>
@@ -934,19 +1217,8 @@ You can now export special strings in HTML.  Here is the
 list of newly performed conversions:
 list of newly performed conversions:
 
 
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
 <table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides">
-<col align="left"></col><col align="left"></col><col align="left"></col><col align="left"></col>
+<col align="left"></col><col align="left"></col><col align="left"></col>
 <thead>
 <thead>
-<tr><th>Command</th><th></th><th>C-u</th><th>C-u C-u</th></tr>
-<tr><th>org-remember</th><th>select template and</th><th>select template and</th><th>goto location</th></tr>
-<tr><th></th><th>store a note</th><th>go to its default</th><th>last used by</th></tr>
-<tr><th></th><th></th><th>target</th><th>remember</th></tr>
-<tr><th>org-refile</th><th>select a targer and</th><th>goto a target</th><th>goto location</th></tr>
-<tr><th></th><th>refile subtree</th><th></th><th>last used by</th></tr>
-<tr><th></th><th></th><th></th><th>refile</th></tr>
-<tr><th>org-goto</th><th>go to a headline</th><th>Use outline-path-</th><th></th></tr>
-<tr><th></th><th>selected from</th><th>completion to</th><th></th></tr>
-<tr><th></th><th>outline f current</th><th>select the</th><th></th></tr>
-<tr><th></th><th>buffer.</th><th>headline</th><th></th></tr>
 <tr><th>Org</th><th>Description</th><th>HTML</th></tr>
 <tr><th>Org</th><th>Description</th><th>HTML</th></tr>
 </thead>
 </thead>
 <tbody>
 <tbody>
@@ -5144,7 +5416,7 @@ The prefix and the sorting strategy for agenda items can depend
 upon the agenda type.
 upon the agenda type.
 </li>
 </li>
 <li>
 <li>
-The handling of `<a href="mailto:'">mailto:'</a> links can be customized, see the new
+The handling of `mailto:' links can be customized, see the new
 variable `org-link-mailto-program'.
 variable `org-link-mailto-program'.
 </li>
 </li>
 <li>
 <li>
@@ -6349,6 +6621,6 @@ HTML exporter upgrade, in particular table of contents
 <div id="postamble"><p class="author"> Author: Carsten Dominik
 <div id="postamble"><p class="author"> Author: Carsten Dominik
 <a href="mailto:carsten at orgmode dot org">&lt;carsten at orgmode dot org&gt;</a>
 <a href="mailto:carsten at orgmode dot org">&lt;carsten at orgmode dot org&gt;</a>
 </p>
 </p>
-<p class="date"> Date: 2008/01/25 14:14:58</p>
+<p class="date"> Date: 2008/02/19 08:08:42</p>
 </div></body>
 </div></body>
 </html>
 </html>

+ 26 - 5
ORGWEBPAGE/Changes.org

@@ -9,7 +9,7 @@
 
 
 ** Incompatible changes
 ** Incompatible changes
 
 
-   - The variable `org-log-done' is not less complex.
+   - The variable `org-log-done' is now less complex.
    - The in-buffer settings for logging have changed.  Some
    - The in-buffer settings for logging have changed.  Some
      options no longer exists, some new ones have been added.
      options no longer exists, some new ones have been added.
 
 
@@ -19,12 +19,33 @@
 
 
     There is now more control over which state changes are being
     There is now more control over which state changes are being
     logged in what way.  Please read carefully the corresponding
     logged in what way.  Please read carefully the corresponding
-    sections in the manual.
-
-*** Misc
+    sections in the manual.  Basically: 
+
+    - The variable `org-log-done' has been simplified, it no
+      longer influences logging state changes and clocking out.
+    - There is a new variable for triggering note-taking when
+      clocking out an item: `org-log-note-clock-out'.
+    - Logging of state changes now has to be configured on a
+      pre-keyword basis, either in `org-todo-keywords' or in the
+      #+TODO in-buffer setting.
+    - These per-keyword settings allow more control.  For example
+
+      : WAIT(w@)    Record a note when entering this state.
+      : WAIT(w!)    Record a timestamp when entering this state.
+      : WAIT(w@/!)  Recore a note when entering and timestamp
+      :             when leaving this state.  This is great for
+      :             getting a record when switching *back* from
+      :              WAIT to TODO.
+      : WAIT(/!)    Record a timestamp when leaving this state.
+      :             Here we not even define a fast access
+      :             character, but just the logging stuff.
+
+    This was triggered by requests from Wanrong Lin and Bernt Hansen.
+
+*** Other
 
 
    - M-RET no longer brakes a line in the middle, it will make a
    - M-RET no longer brakes a line in the middle, it will make a
-     new line ofter the current or (if cursor is at the beginning
+     new line after the current or (if cursor is at the beginning
      of the line) before the current line.
      of the line) before the current line.
 
 
    - RET, when executed in a headline after the main text and
    - RET, when executed in a headline after the main text and

File diff suppressed because it is too large
+ 636 - 84
ORGWEBPAGE/Changes.txt


+ 3 - 3
ORGWEBPAGE/index.org

@@ -22,9 +22,9 @@ messages, BBDB entries, and any files related to the projects.  For
 printing and sharing of notes, an Org-mode file can be exported as a
 printing and sharing of notes, an Org-mode file can be exported as a
 structured ASCII file, HTML, and LaTeX.
 structured ASCII file, HTML, and LaTeX.
 
 
-* Current Version (5.21) and Compatibility
+* Current Version (5.22a) and Compatibility
 
 
-The current version is 5.21.  To see what has changed in recent
+The current version is 5.22a.  To see what has changed in recent
 releases, check this [[file:Changes.html][list of user-visible changes]].  These descriptions
 releases, check this [[file:Changes.html][list of user-visible changes]].  These descriptions
 are extensive, to avoid that people will be printing the manual after
 are extensive, to avoid that people will be printing the manual after
 each incremental release.  If you have an older version of the manual,
 each incremental release.  If you have an older version of the manual,
@@ -39,7 +39,7 @@ but may lag a bit behind the website release.
 * Downloads
 * Downloads
 
 
 **** Distribution
 **** Distribution
-Download as [[file:org-5.21.zip][zip file]] or [[file:org-5.21.tar.gz][gzipped tar archive]].  These archives contain
+Download as [[file:org-5.22a.zip][zip file]] or [[file:org-5.22a.tar.gz][gzipped tar archive]].  These archives contain
 both the Lisp file org.el and the documentation in PDF and (TeX)Info
 both the Lisp file org.el and the documentation in PDF and (TeX)Info
 formats.  A shell script to simplify upgrading to the newest release
 formats.  A shell script to simplify upgrading to the newest release
 has been posted [[http://www.philfam.co.uk/pete/GTD/org-mode/update-org.sh][here]].
 has been posted [[http://www.philfam.co.uk/pete/GTD/org-mode/update-org.sh][here]].

+ 69 - 3
ORGWEBPAGE/tmp/Changes.html

@@ -6,7 +6,7 @@ lang="en" xml:lang="en">
 <title>Org-mode list of User-visible changes</title>
 <title>Org-mode list of User-visible changes</title>
 <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
 <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
 <meta name="generator" content="Org-mode"/>
 <meta name="generator" content="Org-mode"/>
-<meta name="generated" content="2008/02/12 12:28:13"/>
+<meta name="generated" content="2008/02/19 09:12:40"/>
 <meta name="author" content="Carsten Dominik"/>
 <meta name="author" content="Carsten Dominik"/>
 <link rel=stylesheet href="freeshell2.css" type="text/css">
 <link rel=stylesheet href="freeshell2.css" type="text/css">
 </head><body>
 </head><body>
@@ -17,14 +17,79 @@ lang="en" xml:lang="en">
 
 
 
 
 
 
+<div class="outline-3">
+<h3>Incompatible changes</h3>
+
+
+<ul>
+<li>
+The variable `org-log-done' is now less complex.
+</li>
+<li>
+The in-buffer settings for logging have changed.  Some
+options no longer exists, some new ones have been added.
+
+</li>
+</ul></div>
+
 <div class="outline-3">
 <div class="outline-3">
 <h3>Details</h3>
 <h3>Details</h3>
 
 
 
 
+
+<div class="outline-4">
+<h4>Changes to logging progress</h4>
+
+
+<p>
+There is now more control over which state changes are being
+logged in what way.  Please read carefully the corresponding
+sections in the manual.  Basically: 
+</p>
+<ul>
+<li>
+The variable `org-log-done' has been simplified, it no
+longer influences logging state changes and clocking out.
+</li>
+<li>
+There is a new variable for triggering note-taking when
+clocking out an item: `org-log-note-clock-out'.
+</li>
+<li>
+Logging of state changes now has to be configured on a
+pre-keyword basis, either in `org-todo-keywords' or in the
+#+TODO in-buffer setting.
+</li>
+<li>
+These per-keyword settings allow more control.  For example
+
+<p>
+<pre>
+ WAIT(w@)    Record a note when entering this state.
+ WAIT(w!)    Record a timestamp when entering this state.
+ WAIT(w@/!)  Recore a note when entering and timestamp
+             when leaving this state.  This is great for
+             getting a record when switching *back* from
+              WAIT to TODO.
+ WAIT(/!)    Record a timestamp when leaving this state.
+             Here we not even define a fast access
+             character, but just the logging stuff.
+</pre>
+</p>
+</li>
+</ul>
+<p>This was triggered by requests from Wanrong Lin and Bernt Hansen.
+</p>
+</div>
+
+<div class="outline-4">
+<h4>Other</h4>
+
+
 <ul>
 <ul>
 <li>
 <li>
 M-RET no longer brakes a line in the middle, it will make a
 M-RET no longer brakes a line in the middle, it will make a
-new line ofter the current or (if cursor is at the beginning
+new line after the current or (if cursor is at the beginning
 of the line) before the current line.
 of the line) before the current line.
 
 
 </li>
 </li>
@@ -36,6 +101,7 @@ create a new line below the current one.
 </li>
 </li>
 </ul></div>
 </ul></div>
 </div>
 </div>
+</div>
 
 
 <div class="outline-2">
 <div class="outline-2">
 <h2>Version 5.21</h2>
 <h2>Version 5.21</h2>
@@ -6536,6 +6602,6 @@ HTML exporter upgrade, in particular table of contents
 <div id="postamble"><p class="author"> Author: Carsten Dominik
 <div id="postamble"><p class="author"> Author: Carsten Dominik
 <a href="mailto:carsten at orgmode dot org">&lt;carsten at orgmode dot org&gt;</a>
 <a href="mailto:carsten at orgmode dot org">&lt;carsten at orgmode dot org&gt;</a>
 </p>
 </p>
-<p class="date"> Date: 2008/02/12 12:28:13</p>
+<p class="date"> Date: 2008/02/19 09:12:40</p>
 </div></body>
 </div></body>
 </html>
 </html>

+ 6 - 6
ORGWEBPAGE/tmp/index.html

@@ -6,7 +6,7 @@ lang="en" xml:lang="en">
 <title>Org-Mode Homepage</title>
 <title>Org-Mode Homepage</title>
 <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
 <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1"/>
 <meta name="generator" content="Org-mode"/>
 <meta name="generator" content="Org-mode"/>
-<meta name="generated" content="2008/02/12 12:28:14"/>
+<meta name="generated" content="2008/02/19 09:14:54"/>
 <meta name="author" content="Carsten Dominik"/>
 <meta name="author" content="Carsten Dominik"/>
 <link rel=stylesheet href="freeshell2.css" type="text/css">
 <link rel=stylesheet href="freeshell2.css" type="text/css">
 </head><body>
 </head><body>
@@ -15,7 +15,7 @@ lang="en" xml:lang="en">
 <h2>Table of Contents</h2>
 <h2>Table of Contents</h2>
 <ul>
 <ul>
 <li><a href="#sec-1">Org - an Emacs Mode for Notes and Project Planning</a></li>
 <li><a href="#sec-1">Org - an Emacs Mode for Notes and Project Planning</a></li>
-<li><a href="#sec-2">Current Version (5.21) and Compatibility</a></li>
+<li><a href="#sec-2">Current Version (5.22a) and Compatibility</a></li>
 <li><a href="#sec-3">Downloads</a></li>
 <li><a href="#sec-3">Downloads</a></li>
 <li><a href="#sec-4">Documentation</a>
 <li><a href="#sec-4">Documentation</a>
 <ul>
 <ul>
@@ -68,11 +68,11 @@ structured ASCII file, HTML, and LaTeX.
 </div>
 </div>
 
 
 <div class="outline-2">
 <div class="outline-2">
-<h2 id="sec-2">Current Version (5.21) and Compatibility</h2>
+<h2 id="sec-2">Current Version (5.22a) and Compatibility</h2>
 
 
 
 
 <p>
 <p>
-The current version is 5.21.  To see what has changed in recent
+The current version is 5.22a.  To see what has changed in recent
 releases, check this <a href="Changes.html">list of user-visible changes</a>.  These descriptions
 releases, check this <a href="Changes.html">list of user-visible changes</a>.  These descriptions
 are extensive, to avoid that people will be printing the manual after
 are extensive, to avoid that people will be printing the manual after
 each incremental release.  If you have an older version of the manual,
 each incremental release.  If you have an older version of the manual,
@@ -93,7 +93,7 @@ but may lag a bit behind the website release.
 
 
 <ul>
 <ul>
 <li>Distribution<br/>
 <li>Distribution<br/>
-Download as <a href="org-5.21.zip">zip file</a> or <a href="org-5.21.tar.gz">gzipped tar archive</a>.  These archives contain
+Download as <a href="org-5.22a.zip">zip file</a> or <a href="org-5.22a.tar.gz">gzipped tar archive</a>.  These archives contain
 both the Lisp file org.el and the documentation in PDF and (TeX)Info
 both the Lisp file org.el and the documentation in PDF and (TeX)Info
 formats.  A shell script to simplify upgrading to the newest release
 formats.  A shell script to simplify upgrading to the newest release
 has been posted <a href="http://www.philfam.co.uk/pete/GTD/org-mode/update-org.sh">here</a>.
 has been posted <a href="http://www.philfam.co.uk/pete/GTD/org-mode/update-org.sh">here</a>.
@@ -415,6 +415,6 @@ somehow, when I get to it&hellip;
 <div id="postamble"><p class="author"> Author: Carsten Dominik
 <div id="postamble"><p class="author"> Author: Carsten Dominik
 <a href="mailto:carsten at orgmode dot org">&lt;carsten at orgmode dot org&gt;</a>
 <a href="mailto:carsten at orgmode dot org">&lt;carsten at orgmode dot org&gt;</a>
 </p>
 </p>
-<p class="date"> Date: 2008/02/12 12:28:14</p>
+<p class="date"> Date: 2008/02/19 09:14:54</p>
 </div></body>
 </div></body>
 </html>
 </html>

+ 10 - 4
README_GIT

@@ -25,14 +25,20 @@ development.
 
 
 3. An interested developer can also request push access to the
 3. An interested developer can also request push access to the
    central repository by sending his/her user-info at repo.or.cz
    central repository by sending his/her user-info at repo.or.cz
-   the maintainer of Org-mode.  By requesting push access, you
-   acknowledge that you have read and agreed with the following
-   rules:
+   the maintainer of Org-mode.
+
+   After you have been added as a user with push privileges,
+   clone the repository through ssh using
+
+        git+ssh://repo.or.cz/srv/git/org-mode.git
+
+   By requesting push access, you acknowledge that you have read
+   and agreed with the following rules:
 
 
    - Org-mode is part of Emacs.  Therefore we need to be very
    - Org-mode is part of Emacs.  Therefore we need to be very
      conscious about changes moving into the Org-mode core.
      conscious about changes moving into the Org-mode core.
      These can originate only from people who have signed the
      These can originate only from people who have signed the
-     appropriate papers with the free software foundation.  The
+     appropriate papers with the Free Software Foundation.  The
      files to which this applies are:
      files to which this applies are:
 
 
      - all *.el files in the root directory of the repository
      - all *.el files in the root directory of the repository

+ 1 - 1
TODO

@@ -1,6 +1,6 @@
           -*- mode:org -*-
           -*- mode:org -*-
 
 
-
+Radio links accross files?  Like in Pony?  Or HOWM.
 
 
 Ideas for time estimates:
 Ideas for time estimates:
 
 

+ 10 - 4
org-mac-message.el

@@ -53,6 +53,12 @@ This will use the command `open' with the message url."
 This will use applescript to get the message-id and the subject of the
 This will use applescript to get the message-id and the subject of the
 active mail in AppleMail and make a link out of it."
 active mail in AppleMail and make a link out of it."
   (interactive)
   (interactive)
+  (insert (org-mac-message-get-link)))
+
+(defun org-mac-message-get-link ()
+  "Insert a link to the messages currently selected in Apple Mail.
+This will use applescript to get the message-id and the subject of the
+active mail in AppleMail and make a link out of it."
   (let ((subject (do-applescript "tell application \"Mail\"
   (let ((subject (do-applescript "tell application \"Mail\"
 	set theMessages to selection
 	set theMessages to selection
 	subject of beginning of theMessages
 	subject of beginning of theMessages
@@ -61,10 +67,10 @@ end tell"))
 	set theMessages to selection
 	set theMessages to selection
 	message id of beginning of theMessages
 	message id of beginning of theMessages
 end tell")))
 end tell")))
-    (insert (org-make-link-string
-	     (concat "message://"
-		     (substring message-id 1 (1- (length message-id))))
-	     (substring subject 1 (1- (length subject)))))))
+    (org-make-link-string
+     (concat "message://"
+	     (substring message-id 1 (1- (length message-id))))
+     (substring subject 1 (1- (length subject))))))
 
 
 (provide 'org-mac-message)
 (provide 'org-mac-message)
 
 

+ 51 - 52
org.el

@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
 ;; Homepage: http://orgmode.org
-;; Version: 5.21+
+;; Version: 5.22a
 ;;
 ;;
 ;; This file is part of GNU Emacs.
 ;; This file is part of GNU Emacs.
 ;;
 ;;
@@ -84,7 +84,7 @@
 
 
 ;;; Version
 ;;; Version
 
 
-(defconst org-version "5.21+"
+(defconst org-version "5.22a"
   "The version number of the file org.el.")
   "The version number of the file org.el.")
 
 
 (defun org-version (&optional here)
 (defun org-version (&optional here)
@@ -1643,12 +1643,13 @@ the special #+SEQ_TODO and #+TYP_TODO lines.
 
 
 Each keyword can optionally specify a character for fast state selection
 Each keyword can optionally specify a character for fast state selection
 \(in combination with the variable `org-use-fast-todo-selection')
 \(in combination with the variable `org-use-fast-todo-selection')
-and a specifier for state change logging, using the same syntax
+and specifiers for state change logging, using the same syntax
 that is used in the \"#+TODO:\" lines.  For example, \"WAIT(w)\" says
 that is used in the \"#+TODO:\" lines.  For example, \"WAIT(w)\" says
 that the WAIT state can be selected with the \"w\" key. \"WAIT(w!)\"
 that the WAIT state can be selected with the \"w\" key. \"WAIT(w!)\"
 indicates to record a time stamp each time this state is selected.
 indicates to record a time stamp each time this state is selected.
 \"WAIT(w@)\" says that the user should in addition be prompted for a
 \"WAIT(w@)\" says that the user should in addition be prompted for a
-note.
+note, and \"WAIT(w@/@)\" says that a note should be taken both when
+entering and when leaving this state.
 
 
 For backward compatibility, this variable may also be just a list
 For backward compatibility, this variable may also be just a list
 of keywords - in this case the interptetation (sequence or type) will be
 of keywords - in this case the interptetation (sequence or type) will be
@@ -4248,6 +4249,7 @@ If it is less than 8, the level-1 face gets re-used for level N+1 etc."
 (declare-function rmail-narrow-to-non-pruned-header "rmail" ())
 (declare-function rmail-narrow-to-non-pruned-header "rmail" ())
 (declare-function rmail-show-message "rmail" (&optional n no-summary))
 (declare-function rmail-show-message "rmail" (&optional n no-summary))
 (declare-function rmail-what-message "rmail" ())
 (declare-function rmail-what-message "rmail" ())
+(defvar rmail-current-message)
 (defvar texmathp-why)
 (defvar texmathp-why)
 (declare-function vm-beginning-of-message "ext:vm-page" ())
 (declare-function vm-beginning-of-message "ext:vm-page" ())
 (declare-function vm-follow-summary-cursor "ext:vm-motion" ())
 (declare-function vm-follow-summary-cursor "ext:vm-motion" ())
@@ -4438,9 +4440,8 @@ means to push this value onto the list in the variable.")
 		 "STARTUP" "ARCHIVE" "TAGS" "LINK" "PRIORITIES"
 		 "STARTUP" "ARCHIVE" "TAGS" "LINK" "PRIORITIES"
 		 "CONSTANTS" "PROPERTY" "DRAWERS")))
 		 "CONSTANTS" "PROPERTY" "DRAWERS")))
 	  (splitre "[ \t]+")
 	  (splitre "[ \t]+")
-	  kwds kws0 kwsa key value cat arch tags const links hw dws
-	  tail sep kws1 prio props drawers
-	  ex note time)
+	  kwds kws0 kwsa key log value cat arch tags const links hw dws
+	  tail sep kws1 prio props drawers)
       (save-excursion
       (save-excursion
 	(save-restriction
 	(save-restriction
 	  (widen)
 	  (widen)
@@ -4522,18 +4523,14 @@ means to push this value onto the list in the variable.")
 		kwsa nil
 		kwsa nil
 		kws1 (mapcar
 		kws1 (mapcar
 		      (lambda (x)
 		      (lambda (x)
-			(if (string-match "^\\(.*?\\)\\(?:(\\(..?\\))\\)?$" x)
+			;;                     1              2
+			(if (string-match "^\\(.*?\\)\\(?:(\\([^!@/]\\)?.*?)\\)?$" x)
 			    (progn
 			    (progn
 			      (setq kw (match-string 1 x)
 			      (setq kw (match-string 1 x)
-				    ex (and (match-end 2) (match-string 2 x))
-				    note (and ex (string-match "@" ex))
-				    time (or note (and ex (string-match "!" ex)))
-				    key (and ex (substring ex 0 1)))
-			      (if (member key '("@" "!")) (setq key nil))
+				    key (and (match-end 2) (match-string 2 x))
+				    log (org-extract-log-state-settings x))
 			      (push (cons kw (and key (string-to-char key))) kwsa)
 			      (push (cons kw (and key (string-to-char key))) kwsa)
-			      (and (or note time)
-				   (push (cons kw (if note 'note 'time))
-					 org-todo-log-states))
+			      (and log (push log org-todo-log-states))
 			      kw)
 			      kw)
 			  (error "Invalid TODO keyword %s" x)))
 			  (error "Invalid TODO keyword %s" x)))
 		      kws0)
 		      kws0)
@@ -4657,6 +4654,20 @@ means to push this value onto the list in the variable.")
     (org-compute-latex-and-specials-regexp)
     (org-compute-latex-and-specials-regexp)
     (org-set-font-lock-defaults)))
     (org-set-font-lock-defaults)))
 
 
+(defun org-extract-log-state-settings (x)
+  "Extract the log state setting from a TODO keyword string.
+This will extract info from a string like \"WAIT(w@/!)\"."
+  (let (kw key log1 log2)
+    (when (string-match "^\\(.*?\\)\\(?:(\\([^!@/]\\)?\\([!@]\\)?\\(?:/\\([!@]\\)\\)?)\\)?$" x)
+      (setq kw (match-string 1 x)
+	    key (and (match-end 2) (match-string 2 x))
+	    log1 (and (match-end 3) (match-string 3 x))
+	    log2 (and (match-end 4) (match-string 4 x)))
+      (and (or log1 log2)
+	   (list kw
+		 (and log1 (if (equal log1 "!") 'time 'note))
+		 (and log2 (if (equal log2 "!") 'time 'note)))))))
+
 (defun org-remove-keyword-keys (list)
 (defun org-remove-keyword-keys (list)
   (mapcar (lambda (x)
   (mapcar (lambda (x)
 	    (if (string-match "(..?)$" x)
 	    (if (string-match "(..?)$" x)
@@ -6676,9 +6687,10 @@ If optional TXT is given, check this string instead of the current kill."
   "Narrow buffer to the current subtree."
   "Narrow buffer to the current subtree."
   (interactive)
   (interactive)
   (save-excursion
   (save-excursion
-    (narrow-to-region
-     (progn (org-back-to-heading) (point))
-     (progn (org-end-of-subtree t t) (point)))))
+    (save-match-data
+      (narrow-to-region
+       (progn (org-back-to-heading) (point))
+       (progn (org-end-of-subtree t t) (point))))))
 
 
 
 
 ;;; Outline Sorting
 ;;; Outline Sorting
@@ -7308,8 +7320,8 @@ so this really moves item trees."
 Subitems (items with larger indentation) are considered part of the item,
 Subitems (items with larger indentation) are considered part of the item,
 so this really moves item trees."
 so this really moves item trees."
   (interactive "p")
   (interactive "p")
-  (let (beg beg0 end end0 ind ind1 (pos (point)) txt
-	    ne-beg ne-end ne-ins ins-end)
+  (let (beg beg0 end ind ind1 (pos (point)) txt
+	    ne-beg ne-ins ins-end)
     (org-beginning-of-item)
     (org-beginning-of-item)
     (setq beg0 (point))
     (setq beg0 (point))
     (setq ind (org-get-indentation))
     (setq ind (org-get-indentation))
@@ -7318,7 +7330,6 @@ so this really moves item trees."
       (setq beg (point)))
       (setq beg (point)))
     (goto-char beg0)
     (goto-char beg0)
     (org-end-of-item)
     (org-end-of-item)
-    (setq ne-end (org-back-over-empty-lines))
     (setq end (point))
     (setq end (point))
     (goto-char beg0)
     (goto-char beg0)
     (catch 'exit
     (catch 'exit
@@ -11671,7 +11682,7 @@ Valid parameters are
             %s for the original field value.  For example, to wrap
             %s for the original field value.  For example, to wrap
             everything in dollars, you could use :fmt \"$%s$\".
             everything in dollars, you could use :fmt \"$%s$\".
             This may also be a property list with column numbers and
             This may also be a property list with column numbers and
-            formats. for example :fmt (2 \"$%s$\" 4 \"%s%%\")
+            formats. For example :fmt (2 \"$%s$\" 4 \"%s%%\")
 
 
 :hlstart :hlend :hlsep :hlfmt :hfmt
 :hlstart :hlend :hlsep :hlfmt :hfmt
             Same as above, specific for the header lines in the table.
             Same as above, specific for the header lines in the table.
@@ -11747,7 +11758,7 @@ LaTeX are:
 :fmt       A format to be used to wrap the field, should contain %s for the
 :fmt       A format to be used to wrap the field, should contain %s for the
            original field value.  For example, to wrap everything in dollars,
            original field value.  For example, to wrap everything in dollars,
            use :fmt \"$%s$\".  This may also be a property list with column
            use :fmt \"$%s$\".  This may also be a property list with column
-           numbers and formats. for example :fmt (2 \"$%s$\" 4 \"%s%%\")
+           numbers and formats.  For example :fmt (2 \"$%s$\" 4 \"%s%%\")
 
 
 :efmt      Format for transforming numbers with exponentials.  The format
 :efmt      Format for transforming numbers with exponentials.  The format
            should have %s twice for inserting mantissa and exponent, for
            should have %s twice for inserting mantissa and exponent, for
@@ -11810,7 +11821,7 @@ TeXInfo are:
                    %s for the original field value.  For example, to wrap
                    %s for the original field value.  For example, to wrap
                    everything in @kbd{}, you could use :fmt \"@kbd{%s}\".
                    everything in @kbd{}, you could use :fmt \"@kbd{%s}\".
                    This may also be a property list with column numbers and
                    This may also be a property list with column numbers and
-                   formats. For example :fmt (2 \"@kbd{%s}\" 4 \"@code{%s}\").
+                   formats.  For example :fmt (2 \"@kbd{%s}\" 4 \"@code{%s}\").
 
 
 :cf \"f1 f2..\"    The column fractions for the table.  By default these
 :cf \"f1 f2..\"    The column fractions for the table.  By default these
                    are computed automatically from the width of the columns
                    are computed automatically from the width of the columns
@@ -12466,7 +12477,6 @@ With three \\[universal-argument] prefixes, negate the meaning of
     (when (string-match "\\<file:\\(.*\\)" link)
     (when (string-match "\\<file:\\(.*\\)" link)
       (let* ((path (match-string 1 link))
       (let* ((path (match-string 1 link))
 	     (origpath path)
 	     (origpath path)
-	     (desc-is-link (equal link desc))
 	     (case-fold-search nil))
 	     (case-fold-search nil))
 	(cond
 	(cond
 	 ((eq org-link-file-path-type 'absolute)
 	 ((eq org-link-file-path-type 'absolute)
@@ -14061,7 +14071,6 @@ heading in the current buffer."
   (interactive "P")
   (interactive "P")
   (let* ((cbuf (current-buffer))
   (let* ((cbuf (current-buffer))
 	 (filename (buffer-file-name (buffer-base-buffer cbuf)))
 	 (filename (buffer-file-name (buffer-base-buffer cbuf)))
-	 (fname (and filename (file-truename filename)))
 	 pos it nbuf file re level reversed)
 	 pos it nbuf file re level reversed)
     (if (equal goto '(16))
     (if (equal goto '(16))
 	(org-refile-goto-last-stored)
 	(org-refile-goto-last-stored)
@@ -14123,8 +14132,7 @@ heading in the current buffer."
 			   (cdr x))
 			   (cdr x))
 		   x))
 		   x))
 	       org-refile-target-table))
 	       org-refile-target-table))
-	 (completion-ignore-case t)
-	 pos it nbuf file re level reversed)
+	 (completion-ignore-case t))
     (assoc (completing-read prompt tbl nil t nil 'org-refile-history)
     (assoc (completing-read prompt tbl nil t nil 'org-refile-history)
 	   tbl)))
 	   tbl)))
 
 
@@ -14584,7 +14592,8 @@ For calling through lisp, arg is also interpreted in the following way:
 	(when (and (or org-todo-log-states org-log-done)
 	(when (and (or org-todo-log-states org-log-done)
 		   (not (memq arg '(nextset previousset))))
 		   (not (memq arg '(nextset previousset))))
 	  ;; we need to look at recording a time and note
 	  ;; we need to look at recording a time and note
-	  (setq dolog (cdr (assoc state org-todo-log-states)))
+	  (setq dolog (or (nth 1 (assoc state org-todo-log-states))
+			  (nth 2 (assoc this org-todo-log-states))))
 	  (when (and state
 	  (when (and state
 		     (member state org-not-done-keywords)
 		     (member state org-not-done-keywords)
 		     (not (member this org-not-done-keywords)))
 		     (not (member this org-not-done-keywords)))
@@ -14594,8 +14603,7 @@ For calling through lisp, arg is also interpreted in the following way:
 	  (when (and now-done-p org-log-done)
 	  (when (and now-done-p org-log-done)
 	    ;; It is now done, and it was not done before
 	    ;; It is now done, and it was not done before
 	    (org-add-planning-info 'closed (org-current-time))
 	    (org-add-planning-info 'closed (org-current-time))
-	    (if (and (not dolog) (listp org-log-done)
-		     (member 'done org-log-done))
+	    (if (and (not dolog) (eq 'note org-log-done))
 		(org-add-log-maybe 'done state 'findpos 'note)))
 		(org-add-log-maybe 'done state 'findpos 'note)))
 	  (when (and state dolog)
 	  (when (and state dolog)
 	    ;; This is a non-nil state, and we need to log it
 	    ;; This is a non-nil state, and we need to log it
@@ -14621,25 +14629,22 @@ For calling through lisp, arg is also interpreted in the following way:
 	  (save-excursion
 	  (save-excursion
 	    (run-hook-with-args 'org-trigger-hook change-plist)))))))
 	    (run-hook-with-args 'org-trigger-hook change-plist)))))))
 
 
-(defun org-local-logging (property)
-  "Get logging settings from a property."
+(defun org-local-logging (value)
+  "Get logging settings from a property VALUE."
   (let* (words w a)
   (let* (words w a)
     ;; directly set the variables, they are already local.
     ;; directly set the variables, they are already local.
     (setq org-log-done nil
     (setq org-log-done nil
 	  org-log-repeat nil
 	  org-log-repeat nil
 	  org-todo-log-states nil)
 	  org-todo-log-states nil)
-    (setq words (org-split-string property))
+    (setq words (org-split-string value))
     (while (setq w (pop words))
     (while (setq w (pop words))
       (cond
       (cond
        ((setq a (assoc w org-startup-options))
        ((setq a (assoc w org-startup-options))
 	(and (member (nth 1 a) '(org-log-done org-log-repeat))
 	(and (member (nth 1 a) '(org-log-done org-log-repeat))
 	     (set (nth 1 a) (nth 2 a))))
 	     (set (nth 1 a) (nth 2 a))))
-       ((string-match "\\([a-zA-Z0-9]+\\)\\(([@!])\\)?" w)
-	(and (member (match-string 1 w) org-todo-keywords-1)
-	     (match-end 2)
-	     (push (cons (match-string 1 w)
-			 (if (equal (match-string 2 w) "(@)") 'note 'time))
-		   org-todo-log-states)))))))
+       ((setq a (org-extract-log-state-settings w))
+	(and (member (car a) org-todo-keywords-1)
+	     (push a org-todo-log-states)))))))
 
 
 (defun org-get-todo-sequence-head (kwd)
 (defun org-get-todo-sequence-head (kwd)
   "Return the head of the TODO sequence to which KWD belongs.
   "Return the head of the TODO sequence to which KWD belongs.
@@ -14727,6 +14732,7 @@ Returns the new TODO keyword, or nil if no state change should occur."
 
 
 (defvar org-last-changed-timestamp)
 (defvar org-last-changed-timestamp)
 (defvar org-log-post-message)
 (defvar org-log-post-message)
+(defvar org-log-note-purpose)
 (defun org-auto-repeat-maybe (done-word)
 (defun org-auto-repeat-maybe (done-word)
   "Check if the current headline contains a repeated deadline/schedule.
   "Check if the current headline contains a repeated deadline/schedule.
 If yes, set TODO state back to what it was and change the base date
 If yes, set TODO state back to what it was and change the base date
@@ -16844,9 +16850,8 @@ Where possible, use the standard interface for changing this line."
 
 
 (defun org-columns-open-link (&optional arg)
 (defun org-columns-open-link (&optional arg)
   (interactive "P")
   (interactive "P")
-  (let ((key (get-char-property (point) 'org-columns-key))
-	(value (get-char-property (point) 'org-columns-value)))
-    (org-open-link-from-string arg)))
+  (let ((value (get-char-property (point) 'org-columns-value)))
+    (org-open-link-from-string value arg)))
 
 
 (defun org-open-link-from-string (s &optional arg)
 (defun org-open-link-from-string (s &optional arg)
   "Open a link in the string S, as if it was in Org-mode."
   "Open a link in the string S, as if it was in Org-mode."
@@ -16878,7 +16883,7 @@ Where possible, use the standard interface for changing this line."
   (org-verify-version 'columns)
   (org-verify-version 'columns)
   (org-columns-remove-overlays)
   (org-columns-remove-overlays)
   (move-marker org-columns-begin-marker (point))
   (move-marker org-columns-begin-marker (point))
-  (let (beg end fmt cache maxwidths clocksump)
+  (let (beg end fmt cache maxwidths)
     (setq fmt (org-columns-get-format-and-top-level))
     (setq fmt (org-columns-get-format-and-top-level))
     (save-excursion
     (save-excursion
       (goto-char org-columns-top-level-marker)
       (goto-char org-columns-top-level-marker)
@@ -16890,7 +16895,6 @@ Where possible, use the standard interface for changing this line."
       ;; Get and cache the properties
       ;; Get and cache the properties
       (goto-char beg)
       (goto-char beg)
       (when (assoc "CLOCKSUM" org-columns-current-fmt-compiled)
       (when (assoc "CLOCKSUM" org-columns-current-fmt-compiled)
-	(setq clocksump t)
 	(save-excursion
 	(save-excursion
 	  (save-restriction
 	  (save-restriction
 	    (narrow-to-region beg end)
 	    (narrow-to-region beg end)
@@ -21963,11 +21967,6 @@ HH:MM."
 	      (insert (format org-agenda-todo-keyword-format s)))))
 	      (insert (format org-agenda-todo-keyword-format s)))))
       (setq re (concat (get-text-property 0 'org-todo-regexp x))
       (setq re (concat (get-text-property 0 'org-todo-regexp x))
 	    pl (get-text-property 0 'prefix-length x))
 	    pl (get-text-property 0 'prefix-length x))
-;      (and re (equal (string-match (concat "\\(\\.*\\)" re) x (or pl 0)) pl)
-;	   (add-text-properties
-;	    (or (match-end 1) (match-end 0)) (match-end 0)
-;	    (list 'face (org-get-todo-face (match-string 2 x)))
-;	    x))
       (when (and re
       (when (and re
 		 (equal (string-match (concat "\\(\\.*\\)" re "\\( +\\)")
 		 (equal (string-match (concat "\\(\\.*\\)" re "\\( +\\)")
 				      x (or pl 0)) pl))
 				      x (or pl 0)) pl))
@@ -24731,7 +24730,7 @@ Does include HTML export options as well as TODO and CATEGORY stuff."
    (if org-hide-leading-stars "hidestars" "showstars")
    (if org-hide-leading-stars "hidestars" "showstars")
    (if org-startup-align-all-tables "align" "noalign")
    (if org-startup-align-all-tables "align" "noalign")
    (cond ((eq org-log-done t) "logdone")
    (cond ((eq org-log-done t) "logdone")
-	 ((equal org-log-done '(done)) "lognotedone")
+	 ((equal org-log-done 'note) "lognotedone")
 	 ((not org-log-done) "nologdone"))
 	 ((not org-log-done) "nologdone"))
    (or (mapconcat (lambda (x)
    (or (mapconcat (lambda (x)
 		    (cond
 		    (cond

+ 39 - 23
org.texi

@@ -3,7 +3,7 @@
 @setfilename ../../info/org
 @setfilename ../../info/org
 @settitle Org Mode Manual
 @settitle Org Mode Manual
 
 
-@set VERSION 5.21
+@set VERSION 5.22a
 @set DATE February 2008
 @set DATE February 2008
 
 
 @dircategory Emacs
 @dircategory Emacs
@@ -1015,6 +1015,12 @@ If you would like to have a special ARCHIVE location for a single entry
 or a (sub)tree, give the entry an @code{:ARCHIVE:} property with the
 or a (sub)tree, give the entry an @code{:ARCHIVE:} property with the
 location as the value (@pxref{Properties and columns}).
 location as the value (@pxref{Properties and columns}).
 
 
+When a subtree is moved, it receives a number of special properties that
+record context information like the file from where the entry came, it's
+outline path the archiving time etc.  Configure the variable
+@code{org-archive-save-context-info} to adjust the amount of information
+added.
+
 @node Sparse trees, Plain lists, Archiving, Document structure
 @node Sparse trees, Plain lists, Archiving, Document structure
 @section Sparse trees
 @section Sparse trees
 @cindex sparse trees
 @cindex sparse trees
@@ -2742,10 +2748,12 @@ With this setup, the command @kbd{C-c C-t} will cycle an entry from TODO
 to FEEDBACK, then to VERIFY, and finally to DONE and DELEGATED.  You may
 to FEEDBACK, then to VERIFY, and finally to DONE and DELEGATED.  You may
 also use a prefix argument to quickly select a specific state.  For
 also use a prefix argument to quickly select a specific state.  For
 example @kbd{C-3 C-c C-t} will change the state immediately to VERIFY.
 example @kbd{C-3 C-c C-t} will change the state immediately to VERIFY.
-If you define many keywords, you can use in-buffer completion (see
-@ref{Completion}) to insert these words into the buffer.  Changing a
-todo state can be logged with a timestamp, see @ref{Tracking TODO state
-changes} for more information.
+Or you can use @kbd{S-left} to go backward through the sequence.  If you
+define many keywords, you can use in-buffer completion
+(@pxref{Completion}) or even a special one-key selection scheme
+(@pxref{Fast access to TODO states}) to insert these words into the
+buffer.  Changing a todo state can be logged with a timestamp, see
+@ref{Tracking TODO state changes} for more information.
 
 
 @node TODO types, Multiple sets in one file, Workflow states, TODO extensions
 @node TODO types, Multiple sets in one file, Workflow states, TODO extensions
 @subsection TODO keywords as types
 @subsection TODO keywords as types
@@ -2909,6 +2917,10 @@ special faces for some of them.  This can be done using the variable
         ("CANCELED"  . (:foreground "blue" :weight bold))))
         ("CANCELED"  . (:foreground "blue" :weight bold))))
 @end lisp
 @end lisp
 
 
+While using a list with face properties as shown for CANCELED
+@emph{should} work, this does not aways seem to be the case.  If
+necessary, define a special face and use that.
+
 @page
 @page
 @node Progress logging, Priorities, TODO extensions, TODO items
 @node Progress logging, Priorities, TODO extensions, TODO items
 @section Progress Logging
 @section Progress Logging
@@ -2939,12 +2951,11 @@ in-buffer setting is: @code{#+STARTUP: logdone}}.
 @end lisp
 @end lisp
 
 
 @noindent
 @noindent
-Then each time you turn an entry from an arbitrary TODO (not-done) state
-into any of the DONE states using the dedicated commands like @kbd{C-c
-C-t}, a line @samp{CLOSED: [timestamp]} will be inserted just after the
-headline.  If you turn the entry back into a TODO item through further
-state cycling, that line will be removed again.  If you want
-to record a note along with the timestamp, use@footnote{The
+Then each time you turn an entry from a TODO (not-done) state into any
+of the DONE states, a line @samp{CLOSED: [timestamp]} will be inserted
+just after the headline.  If you turn the entry back into a TODO item
+through further state cycling, that line will be removed again.  If you
+want to record a note along with the timestamp, use@footnote{The
 corresponding in-buffer setting is: @code{#+STARTUP: lognotedone}}
 corresponding in-buffer setting is: @code{#+STARTUP: lognotedone}}
 
 
 @lisp
 @lisp
@@ -2965,15 +2976,15 @@ giving you an overview of what has been done.
 
 
 When TODO keywords are used as workflow states (@pxref{Workflow
 When TODO keywords are used as workflow states (@pxref{Workflow
 states}), you might want to keep track of when a state change occurred
 states}), you might want to keep track of when a state change occurred
-and record a note about this change.  Since it is normally too much to
-record a note for every state, Org-mode expects configuration on a
+and maybe take a note about this change.  Since it is normally too much
+to record a note for every state, Org-mode expects configuration on a
 per-keyword basis for this.  This is achieved by adding special markers
 per-keyword basis for this.  This is achieved by adding special markers
-@samp{!} and @samp{@@} in parenthesis behind each keyword.  For example,
-with the setting
+@samp{!} (for a time stamp) and @samp{@@} (for a note) in parenthesis
+after each keyword.  For example, with the setting
 
 
 @lisp
 @lisp
 (setq org-todo-keywords
 (setq org-todo-keywords
-      '((sequence "TODO(t)" "WAIT(w@@)" "|" "DONE(d!)" "CANCELED(c@@)")))
+  '((sequence "TODO(t)" "WAIT(w@@/!)" "|" "DONE(d!)" "CANCELED(c@@)")))
 @end lisp
 @end lisp
 
 
 @noindent
 @noindent
@@ -2984,12 +2995,17 @@ when you are using both @code{org-log-done} and state change logging.
 However, it will never prompt for two notes - if you have configured
 However, it will never prompt for two notes - if you have configured
 both, the state change recording note will take precedence and cancel
 both, the state change recording note will take precedence and cancel
 the @samp{Closing Note}.}, and that a special note is recorded when
 the @samp{Closing Note}.}, and that a special note is recorded when
-switching to WAIT or CANCELED.
-
-You can use the exact same syntax for setting logging preferencs local
+switching to WAIT or CANCELED.  The setting for WAIT is even more
+special: The @samp{!} after the slash means that in addition to the note
+taken when entering the state, a time stamp should be recorded when
+@i{leaving} the WAIT state.  This allows you to get a record when
+switching from WAIT back to TODO, without getting one when first turning
+an entry into a TODO.
+
+You can use the exact same syntax for setting logging preferences local
 to a buffer:
 to a buffer:
 @example
 @example
-#+SEQ_TODO: TODO(t) WAIT(w@@) | DONE(d!) CANCELED(c@@)
+#+SEQ_TODO: TODO(t) WAIT(w@@/!) | DONE(d!) CANCELED(c@@)
 @end example
 @end example
 
 
 In order to define logging settings that are local to a subtree or a
 In order to define logging settings that are local to a subtree or a
@@ -3289,7 +3305,7 @@ these lines to activate any changes.
 
 
 If at least one tag has a selection key, pressing @kbd{C-c C-c} will
 If at least one tag has a selection key, pressing @kbd{C-c C-c} will
 automatically present you with a special interface, listing inherited
 automatically present you with a special interface, listing inherited
-tags, the tags of the current headline, and a list of all legal tags
+tags, the tags of the current headline, and a list of all valid tags
 with corresponding keys@footnote{Keys will automatically be assigned to
 with corresponding keys@footnote{Keys will automatically be assigned to
 tags which have no configured keys.}.  In this interface, you can use
 tags which have no configured keys.}.  In this interface, you can use
 the following keys:
 the following keys:
@@ -5309,7 +5325,7 @@ not remove the previously used indirect buffer.
 @kindex l
 @kindex l
 @item l
 @item l
 Toggle Logbook mode.  In Logbook mode, entries that where marked DONE while
 Toggle Logbook mode.  In Logbook mode, entries that where marked DONE while
-logging was on (variable @code{org-log-progress}) are shown in the agenda,
+logging was on (variable @code{org-log-done}) are shown in the agenda,
 as are entries that have been clocked on that day.
 as are entries that have been clocked on that day.
 
 
 @tsubheading{Change display}
 @tsubheading{Change display}
@@ -7422,7 +7438,7 @@ constcgs   @r{@file{constants.el} should use the c-g-s unit system}
 constSI    @r{@file{constants.el} should use the SI unit system}
 constSI    @r{@file{constants.el} should use the SI unit system}
 @end example
 @end example
 @item #+TAGS:  TAG1(c1) TAG2(c2)
 @item #+TAGS:  TAG1(c1) TAG2(c2)
-These lines (several such lines are allowed) specify the legal tags in
+These lines (several such lines are allowed) specify the valid tags in
 this file, and (potentially) the corresponding @emph{fast tag selection}
 this file, and (potentially) the corresponding @emph{fast tag selection}
 keys.  The corresponding variable is @code{org-tag-alist}.
 keys.  The corresponding variable is @code{org-tag-alist}.
 @item #+TBLFM:
 @item #+TBLFM:

+ 1 - 1
orgcard.tex

@@ -1,5 +1,5 @@
 % Reference Card for Org Mode
 % Reference Card for Org Mode
-\def\orgversionnumber{5.21}
+\def\orgversionnumber{5.22}
 \def\versionyear{2008}          % latest update
 \def\versionyear{2008}          % latest update
 \def\year{2008}                 % latest copyright year
 \def\year{2008}                 % latest copyright year
 
 

Some files were not shown because too many files changed in this diff