emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] emacs/lisp/org org-agenda.el org-archive.el org...


From: Carsten Dominik
Subject: [Emacs-diffs] emacs/lisp/org org-agenda.el org-archive.el org...
Date: Sun, 23 Nov 2008 13:37:47 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Carsten Dominik <cdominik>      08/11/23 13:37:47

Modified files:
        lisp/org       : org-agenda.el org-archive.el org-attach.el 
                         org-bbdb.el org-bibtex.el org-clock.el 
                         org-colview.el org-compat.el org-exp.el 
                         org-export-latex.el org-faces.el org-gnus.el 
                         org-id.el org-info.el org-irc.el org-jsinfo.el 
                         org-list.el org-mac-message.el org-macs.el 
                         org-mew.el org-mhe.el org-mouse.el org-plot.el 
                         org-publish.el org-remember.el org-rmail.el 
                         org-table.el org-vm.el org-wl.el org.el 

Log message:
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org-clock.el (org-dblock-write:clocktable): Make sure the
                clocktable sees the first line.
                (org-clock-in): Warn if the clock cannot be resumed.
        
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org.el (org-open-at-point): Fix mixup about interactive and
                non-interactive elisp links.
        
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org-exp.el (org-export-preprocess-string): Allow one comment
                line before the first headline to always be included.  This is
                to not miss a commented target.
        
                * org-mouse.el (org-mouse-insert-item): Call
                `org-indent-to-column' instead of `indent-to', for XEmacs
                compatibility.
        
                * org.el (org-refile-targets): Fix customize definition so
                that it works also in XEmacs.
                (org-fixup-indentation): Call `org-indent-to-column' instead
                of `indent-to', for XEmacs compatibility.
        
        2008-11-23  Tokuya Kameshima  <address@hidden>
        
                * org-mew.el (org-mew-store-link): Get the correct case folder
                for refiled messages.
        
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org-exp.el (org-export-as-ascii): Remove the "\\" forced
                line break indicators.
        
                * org.el (org-ido-completing-read): Remove the "i:" prefix for
                ido-completion propts.
        
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org-remember.el (org-remember-apply-template): Use
                `org-substring-no-properties'.
        
                * org-compat.el (org-substring-no-properties): New function.
        
                * org-remember.el (org-remember-apply-template): Use
                `org-substring-no-properties' for compatibility.
        
                * org-list.el (org-list-two-spaces-after-bullet-regexp): New
                option.
                (org-fix-bullet-type): respect
                `org-list-two-spaces-after-bullet-regexp'.
        
                * org-clock.el (org-clock-load): Clean up the code.
        
                * org.el (org-adaptive-fill-function): Allow two spaces after
                "1." as a list bullet.
        
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org-clock.el (org-clock-save, org-clock-load): Check for
                live buffers, existing files, and buffer file names to ensure
                consistent information.
                (org-clock-persist): Make `clock' a special value of this
                variable, and improve docstring.
        
                * org-list.el (org-cycle-list-bullet, org-fix-bullet-type)
                (org-get-string-indentation): Adapt indentation when the bullet
                width changes.
        
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org-remember.el (org-remember-finalize): Make interactive.
                (org-remember-kill): New command.
                (org-remember-finish-immediately): Call `org-remember-finalize'
                directly.
                (org-remember-finalize): Make `org-remember-finalize' an 
interactive
                function.
        
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org-remember.el (org-remember-apply-template): No ido 
completion
                for free prompts in remember templates.
                (org-remember-before-finalize-hook): New hook.
                (org-remember-mode): New minor mode.
                (org-remember-apply-template): Turn on `org-remember-mode'.
        
                * org-id.el (org-id-add-location): Avoid error when no file is
                given.
        
                * org-remember.el (org-remember-apply-template): Fix the way how
                the list of allowed properties is retrieved from the target 
file.
        
                * org.el (org-insert-link): Improve file link matching.
        
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org-colview.el (org-columns-display-here): New argument
                DATELINE, to trigger using the new face.
                (org-agenda-colview-summarize): Call `org-columns-display-here'
                with the new argument.
        
                * org-faces.el (org-agenda-column-dateline): New face.
        
                * org-publish.el (org-publish-org-index): Use index-title at 
page
                title, not as section.
        
                * org-exp.el (org-export-html-format-desc): Respect the
                org-protect property.
                (org-export-as-html): Protect image specifiers that are in the
                description part of a link.
        
                * org.el (org-sort-entries-or-items, org-completing-read)
                (org-refile-get-location, org-olpath-completing-read, org-todo)
                (org-show-todo-tree, org-sparse-tree, org-make-tags-matcher)
                (org-set-tags, org-change-tag-in-region, org-fast-tag-selection)
                (org-set-property, org-delete-property)
                (org-delete-property-globally): Use `org-ido-completing-read'.
        
                * org-remember.el (org-remember-apply-template): Use
                `org-ido-completing-read'.
        
                * org-publish.el (org-publish): Use `org-ido-completing-read'.
        
                * org-colview.el (org-columns-edit-value, org-columns-new)
                (org-insert-columns-dblock): Use `org-ido-completing-read'.
        
                * org-colview-xemacs.el (org-columns-edit-value)
                (org-columns-new, org-insert-columns-dblock): Use
                `org-ido-completing-read'.
        
                * org-attach.el (org-attach-delete-one, org-attach-open): Use
                `org-ido-completing-read'.
        
                * org-agenda.el (org-todo-list, org-agenda-filter-by-tag): Use
                `org-ido-completing-read'.
        
                * org.el (org-time-today): New function.
                (org-matcher-time): Use `org-time-today'.  Add special treatment
                for "<tomorrow>" and "<yesterday>".
                (org-ido-completing-read): New function.
                (org-completion-use-ido): New option.
        
                * org-exp.el (org-export-format-source-code): Fix bug in require
                htmlize code.
                (org-export-target-internal-links): Fix bug in search for text
                property.
        
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org-export-latex.el (org-export-latex-subcontent): Interprete
                target aliases as additonal labels.
        
                * org-exp.el (org-export-target-aliases): New variable.
                (org-export-preprocess-string)
                (org-export-handle-invisible-targets): Fill the alias alist.
                (org-export-as-html): Remove the &nbsp; from the anchor, and 
also
                assign an id.
                (org-html-level-start): Insert the target aliases as additonal
                anchors.
        
                * org.el (org-edit-fixed-width-region): Fix bug when starting a 
new
                picture area.
        
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org.el (org-open-at-mouse): Ensure correct link abbreviations
                when following a link with the mouse from the agenda.
        
                * org-exp.el (org-export-as-html): Avoid lone </div> when no
                headlines are created.
        
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org.el (org-link-translation-function): New option.
                (org-open-at-point): Call `org-link-translation-function' if
                non-nil.
                (org-translate-link): New function.
                (org-translate-link-from-planner): New function.
                (org-open-at-point): Allow interactive commands in elisp links.
        
                * org-exp.el (org-icalendar-cleanup-string): Restore the old
                iCalendar quoting.  The new one seems to caus problems with
                applications.
        
                * org.el (org-yank): Set `this-command' to `yank', so that
                `yank-pop' will work.
        
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org-exp.el (org-icalendar-cleanup-string): Improve RFC2455
                compliance as far as quoting is concerned.
        
                * org.el (org-link-expand-abbrev): Implement %h as an escape 
for a
                hexified version of the tag.
        
                * org-vm.el (org-vm-follow-link): Require `vm-search'.
        
                * org.el (org-up-heading-safe, org-forward-same-level): Always
                call `org-back-to-heading' instead of `outline-back-to-heading'.
                (org-back-to-heading): New wrapper around 
outline-back-to-heading,
                with a useful error message telling where the error happened.
        
                * org-list.el (org-update-checkbox-count): Always call
                `org-back-to-heading' instead of `outline-back-to-heading'.
        
                * org-exp.el (org-export-as-html): Make sure that each <img> tag
                has an `alt' attribute, to ensure XHTML validation.
        
        2008-11-23  Carsten Dominik  <address@hidden>
        
                * org-publish.el (org-publish-attachment): Allow publishing to
                overwrite attachment files.
        
                * org-agenda.el (org-agenda-timerange-leaders): New option.
                (org-agenda-get-blocks): Use `org-agenda-timerange-leaders'.
        
                * org.el (org-edit-src-exit): Untabify ASCII image before
                returning.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-agenda.el?cvsroot=emacs&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-archive.el?cvsroot=emacs&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-attach.el?cvsroot=emacs&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-bbdb.el?cvsroot=emacs&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-bibtex.el?cvsroot=emacs&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-clock.el?cvsroot=emacs&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-colview.el?cvsroot=emacs&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-compat.el?cvsroot=emacs&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-exp.el?cvsroot=emacs&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-export-latex.el?cvsroot=emacs&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-faces.el?cvsroot=emacs&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-gnus.el?cvsroot=emacs&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-id.el?cvsroot=emacs&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-info.el?cvsroot=emacs&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-irc.el?cvsroot=emacs&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-jsinfo.el?cvsroot=emacs&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-list.el?cvsroot=emacs&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-mac-message.el?cvsroot=emacs&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-macs.el?cvsroot=emacs&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-mew.el?cvsroot=emacs&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-mhe.el?cvsroot=emacs&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-mouse.el?cvsroot=emacs&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-plot.el?cvsroot=emacs&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-publish.el?cvsroot=emacs&r1=1.15&r2=1.16
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-remember.el?cvsroot=emacs&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-rmail.el?cvsroot=emacs&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-table.el?cvsroot=emacs&r1=1.11&r2=1.12
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-vm.el?cvsroot=emacs&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org-wl.el?cvsroot=emacs&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/emacs/lisp/org/org.el?cvsroot=emacs&r1=1.25&r2=1.26

Patches:
Index: org-agenda.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-agenda.el,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- org-agenda.el       13 Nov 2008 04:36:04 -0000      1.13
+++ org-agenda.el       23 Nov 2008 13:37:44 -0000      1.14
@@ -6,7 +6,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -878,6 +878,20 @@
   :group 'org-agenda-line-format
   :type 'string)
 
+(defcustom org-agenda-timerange-leaders '("" "(%d/%d): ")
+  "Text preceding timerange entries in the agenda view.
+This is a list with two strings.  The first applies when the range
+is entirely on one day.  The second applies if the range spans several days.
+The strings may have two \"%d\" format specifiers which will be filled
+with the sequence number of the days, and the total number of days in the
+range, respectively."
+  :group 'org-agenda-line-format
+  :type '(list
+         (string :tag "Deadline today   ")
+         (choice :tag "Deadline relative"
+                 (string :tag "Format string")
+                 (function))))
+
 (defcustom org-agenda-scheduled-leaders '("Scheduled: " "Sched.%2dx: ")
   "Text preceeding scheduled items in the agenda view.
 This is a list with two strings.  The first applies when the item is
@@ -2722,7 +2736,7 @@
         rtn rtnall files file pos)
     (when (equal arg '(4))
       (setq org-select-this-todo-keyword
-           (completing-read "Keyword (or KWD1|K2D2|...): "
+           (org-ido-completing-read "Keyword (or KWD1|K2D2|...): "
                             (mapcar 'list kwds) nil nil)))
     (and (equal 0 arg) (setq org-select-this-todo-keyword nil))
     (org-set-local 'org-last-arg arg)
@@ -3384,7 +3398,7 @@
          (push txt ee))))
     (nreverse ee)))
 
-(defalias 'org-get-closed 'org-agenda-get-progress)
+(defalias 'org-get-closed 'org-get-progress)
 (defun org-agenda-get-progress ()
   "Return the logged TODO entries for agenda display."
   (let* ((props (list 'mouse-face 'highlight
@@ -3677,7 +3691,9 @@
                         (org-entry-is-done-p)
                         (throw :skip t))
                    (setq txt (org-format-agenda-item
-                              (format (if (= d1 d2) "" "(%d/%d): ")
+                              (format
+                               (nth (if (= d1 d2) 0 1)
+                                    org-agenda-timerange-leaders)
                                       (1+ (- d0 d1)) (1+ (- d2 d1)))
                               head category tags
                               (if (= d0 d1) timestr))))
@@ -4255,7 +4271,7 @@
        (org-set-local 'org-global-tags-completion-table
                       (org-global-tags-completion-table)))
       (let ((completion-ignore-case t))
-       (setq tag (completing-read
+       (setq tag (org-ido-completing-read
                   "Tag: " org-global-tags-completion-table))))
     (cond
      ((equal char ?/) (org-agenda-filter-by-tag-show-all))

Index: org-archive.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-archive.el,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- org-archive.el      12 Nov 2008 08:01:06 -0000      1.10
+++ org-archive.el      23 Nov 2008 13:37:44 -0000      1.11
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;

Index: org-attach.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-attach.el,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- org-attach.el       12 Nov 2008 08:01:06 -0000      1.4
+++ org-attach.el       23 Nov 2008 13:37:44 -0000      1.5
@@ -4,7 +4,7 @@
 
 ;; Author: John Wiegley <address@hidden>
 ;; Keywords: org data task
-;; Version: 6.12a
+;; Version: 6.13
 
 ;; This file is part of GNU Emacs.
 ;;
@@ -153,6 +153,9 @@
   "Return the directory associated with the current entry.
 If the directory does not exist and CREATE-IF-NOT-EXISTS-P is non-nil,
 the directory and the corresponding ID will be created."
+  (when (and (not (buffer-file-name (buffer-base-buffer)))
+            (not (file-name-absolute-p org-attach-directory)))
+    (error "Need absolute `org-attach-directory' to attach in buffers without 
filename."))
   (let ((uuid (org-id-get (point) create-if-not-exists-p)))
     (when (or uuid create-if-not-exists-p)
       (unless uuid
@@ -245,7 +248,7 @@
   (let* ((attach-dir (org-attach-dir t))
         (files (org-attach-file-list attach-dir))
         (file (or file
-                  (completing-read
+                  (org-ido-completing-read
                    "Delete attachment: "
                    (mapcar (lambda (f)
                              (list (file-name-nondirectory f)))
@@ -320,7 +323,7 @@
         (files (org-attach-file-list attach-dir))
         (file (if (= (length files) 1)
                   (car files)
-                (completing-read "Open attachment: "
+                (org-ido-completing-read "Open attachment: "
                                  (mapcar 'list files) nil t))))
     (org-open-file (expand-file-name file attach-dir) in-emacs)))
 

Index: org-bbdb.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-bbdb.el,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- org-bbdb.el 12 Nov 2008 08:01:06 -0000      1.10
+++ org-bbdb.el 23 Nov 2008 13:37:44 -0000      1.11
@@ -6,7 +6,7 @@
 ;;         Thomas Baumann <thomas dot baumann at ch dot tum dot de>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;

Index: org-bibtex.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-bibtex.el,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- org-bibtex.el       12 Nov 2008 08:01:07 -0000      1.9
+++ org-bibtex.el       23 Nov 2008 13:37:44 -0000      1.10
@@ -5,7 +5,7 @@
 ;; Author: Bastien Guerry <bzg at altern dot org>
 ;;         Carsten Dominik <carsten dot dominik at gmail dot com>
 ;; Keywords: org, wp, remember
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;

Index: org-clock.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-clock.el,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- org-clock.el        12 Nov 2008 08:01:07 -0000      1.10
+++ org-clock.el        23 Nov 2008 13:37:44 -0000      1.11
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -104,9 +104,19 @@
 
 (defcustom org-clock-persist nil
   "When non-nil, save the running clock when emacs is closed, and
-  resume it next time emacs is started."
+  resume it next time emacs is started.
+When this is t, both the running clock, and the entire clock
+history are saved.  When this is the symbol `clock', only the
+running clock is saved.
+
+When Emacs restarts with saved clock information, the file containing the
+running clock as well as all files mentioned in the clock history will
+be visited."
   :group 'org-clock
-  :type 'boolean)
+  :type '(choice
+         (const :tag "Just the running clock" clock)
+         (const :tag "Clock and history" t)
+         (const :tag "No persistence" nil)))
 
 (defcustom org-clock-persist-file "~/.emacs.d/org-clock-save.el"
   "File to save clock data to"
@@ -246,7 +256,7 @@
                             'help-echo (concat help-text ": " 
org-clock-heading))
               (org-propertize clock-string 'help-echo help-text)))
           'local-map org-clock-mode-map
-          'mouse-face '(face mode-line-highlight)))
+          'mouse-face (if (featurep 'xemacs) 'highlight 'mode-line-highlight)))
     (force-mode-line-update)))
 
 (defvar org-clock-mode-line-entry nil
@@ -260,6 +270,7 @@
 is as the default task, a special task that will always be offered in
 the clocking selection, associated with the letter `d'."
   (interactive "P")
+  (catch 'abort
   (let ((interrupting (marker-buffer org-clock-marker))
        ts selected-task target-pos)
     (when (equal select '(4))
@@ -298,7 +309,8 @@
          (org-clock-history-push)
          (cond ((functionp org-clock-in-switch-to-state)
                 (looking-at org-complex-heading-regexp)
-                (let ((newstate (funcall org-clock-in-switch-to-state 
(match-string 2))))
+                  (let ((newstate (funcall org-clock-in-switch-to-state
+                                           (match-string 2))))
                   (if newstate (org-todo newstate))))
                ((and org-clock-in-switch-to-state
                      (not (looking-at (concat outline-regexp "[ \t]*"
@@ -308,7 +320,8 @@
          (setq org-clock-heading-for-remember
                (and (looking-at org-complex-heading-regexp)
                     (match-end 4)
-                    (org-trim (buffer-substring (match-end 1) (match-end 4)))))
+                      (org-trim (buffer-substring (match-end 1)
+                                                  (match-end 4)))))
          (setq org-clock-heading
                (cond ((and org-clock-heading-function
                            (functionp org-clock-heading-function))
@@ -316,18 +329,29 @@
                      ((looking-at org-complex-heading-regexp)
                       (match-string 4))
                      (t "???")))
-         (setq org-clock-heading (org-propertize org-clock-heading 'face nil))
+           (setq org-clock-heading (org-propertize org-clock-heading
+                                                   'face nil))
          (org-clock-find-position)
-         (if (and org-clock-in-resume
-                  (looking-at (concat "^[ \\t]* " org-clock-string
+           (cond
+            ((and org-clock-in-resume
+                  (looking-at
+                   (concat "^[ \\t]* " org-clock-string
                                       " 
\\[\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}"
-                                      " +\\sw+ 
+[012][0-9]:[0-5][0-9]\\)\\]$")))
-             (progn (message "Matched %s" (match-string 1))
+                           " +\\sw+ +[012][0-9]:[0-5][0-9]\\)\\][ \t]*$")))
+             (message "Matched %s" (match-string 1))
                     (setq ts (concat "[" (match-string 1) "]"))
                     (goto-char (match-end 1))
                     (setq org-clock-start-time
-                          (apply 'encode-time (org-parse-time-string 
(match-string 1)))))
-           (progn
+                   (apply 'encode-time
+                          (org-parse-time-string (match-string 1)))))
+            ((eq org-clock-in-resume 'auto-restart)
+             ;; called from org-clock-load during startup,
+             ;; do not interrupt, but warn!
+             (message "Cannot restart clock because task does not contain 
unfinished clock")
+             (ding)
+             (sit-for 2)
+             (throw 'abort nil))
+            (t
              (insert "\n") (backward-char 1)
              (org-indent-line-function)
              (insert org-clock-string " ")
@@ -341,7 +365,7 @@
          (org-update-mode-line)
          (setq org-mode-line-timer
                (run-with-timer 60 60 'org-update-mode-line))
-         (message "Clock started at %s" ts))))))
+           (message "Clock started at %s" ts)))))))
 
 (defun org-clock-find-position ()
   "Find the location where the next clock line should be inserted."
@@ -820,7 +844,7 @@
           (block (plist-get params :block))
           (link (plist-get params :link))
           ipos time p level hlc hdl content recalc formula pcol
-          cc beg end pos tbl tbl1 range-text rm-file-column scope-is-list)
+          cc beg end pos tbl tbl1 range-text rm-file-column scope-is-list st)
       (setq org-clock-file-total-minutes nil)
       (when step
        (unless (or block (and ts te))
@@ -902,7 +926,11 @@
        (unless scope-is-list
          (org-clock-sum ts te)
          (goto-char (point-min))
-         (while (setq p (next-single-property-change (point) 
:org-clock-minutes))
+         (setq st t)
+         (while (or (and (bobp) (prog1 st (setq st nil))
+                         (get-text-property (point) :org-clock-minutes)
+                         (setq p (point-min)))
+                    (setq p (next-single-property-change (point) 
:org-clock-minutes)))
            (goto-char p)
            (when (setq time (get-text-property p :org-clock-minutes))
              (save-excursion
@@ -1062,71 +1090,92 @@
        0))))
 
 (defun org-clock-save ()
-  "Persist various clock-related data to disk"
+  "Persist various clock-related data to disk.
+The details of what will be saved are regulated by the variable
+`org-clock-persist'."
+  (when org-clock-persist
+    (let (b)
   (with-current-buffer (find-file (expand-file-name org-clock-persist-file))
-    (progn (delete-region (point-min) (point-max))
+       (progn
+         (delete-region (point-min) (point-max))
           ;;Store clock
           (insert (format ";; org-persist.el - %s at %s\n"
                           system-name (format-time-string
                                        (cdr org-time-stamp-formats))))
-          (if (and org-clock-persist (marker-buffer org-clock-marker)
+         (if (and (setq b (marker-buffer org-clock-marker))
+                  (setq b (or (buffer-base-buffer b) b))
+                  (buffer-live-p b)
+                  (buffer-file-name b)
                    (or (not org-clock-persist-query-save)
                        (y-or-n-p (concat "Save current clock ("
                                          (substring-no-properties 
org-clock-heading)
-                                         ")"))))
+                                        ") "))))
               (insert "(setq resume-clock '(\""
                       (buffer-file-name (marker-buffer org-clock-marker))
                       "\" . " (int-to-string (marker-position 
org-clock-marker))
                       "))\n"))
-          ;;Store clocked task history. Tasks are stored reversed to make
-          ;;reading simpler
-          (if org-clock-history
-              (insert "(setq stored-clock-history '("
+         ;; Store clocked task history. Tasks are stored reversed to make
+         ;; reading simpler
+         (when (and org-clock-history (eq org-clock-persist t))
+           (insert
+            "(setq stored-clock-history '("
                       (mapconcat
                        (lambda (m)
-                         (when (marker-buffer m)
-                           (concat "(\"" (buffer-file-name (marker-buffer m))
+               (when (and (setq b (marker-buffer m))
+                          (setq b (or (buffer-base-buffer b) b))
+                          (buffer-live-p b)
+                          (buffer-file-name b))
+                 (concat "(\"" (buffer-file-name b)
                                    "\" . " (int-to-string (marker-position m))
                                ")")))
                        (reverse org-clock-history) " ") "))\n"))
           (save-buffer)
-          (kill-buffer (current-buffer)))))
+         (kill-buffer (current-buffer)))))))
 
-(defvar org-clock-loaded nil)
+(defvar org-clock-loaded nil
+  "Was the clock file loaded?")
 
 (defun org-clock-load ()
   "Load various clock-related data from disk, optionally resuming
 a stored clock"
-  (if (not org-clock-loaded)
+  (when (and org-clock-persist (not org-clock-loaded))
       (let ((filename (expand-file-name org-clock-persist-file))
-           (org-clock-in-resume t))
-       (if (file-readable-p filename)
-           (progn
+         (org-clock-in-resume 'auto-restart)
+         resume-clock stored-clock-history)
+      (if (not (file-readable-p filename))
+         (message "Not restoring clock data; %s not found"
+                  org-clock-persist-file)
              (message "%s" "Restoring clock data")
              (setq org-clock-loaded t)
              (load-file filename)
              ;; load history
-             (if (boundp 'stored-clock-history)
+       (when stored-clock-history
                  (save-window-excursion
                    (mapc (lambda (task)
+                   (if (file-exists-p (car task))
                            (org-clock-history-push (cdr task)
-                                                   (find-file (car task))))
+                                               (find-file (car task)))))
                          stored-clock-history)))
              ;; resume clock
-             (if (and (boundp 'resume-clock) org-clock-persist
+       (when (and resume-clock org-clock-persist
+                  (file-exists-p (car resume-clock))
                       (or (not org-clock-persist-query-resume)
                           (y-or-n-p 
                            (concat
                             "Resume clock ("
                             (with-current-buffer (find-file (car resume-clock))
-                              (progn (goto-char (cdr resume-clock))
-                                     (looking-at org-complex-heading-regexp)
-                                     (match-string 4))) ")"))))
+                          (save-excursion
+                            (goto-char (cdr resume-clock))
+                            (org-back-to-heading t)
+                            (and (looking-at org-complex-heading-regexp)
+                                 (match-string 4))))
+                        ") "))))
+         (when (file-exists-p (car resume-clock))
                  (with-current-buffer (find-file (car resume-clock))
-                   (progn (goto-char (cdr resume-clock))
-                          (org-clock-in)))))
-         (message "Not restoring clock data; %s not found"
-                  org-clock-persist-file)))))
+             (goto-char (cdr resume-clock))
+             (org-clock-in)
+             (if (org-invisible-p)
+                 (org-show-context)))))))))
 
 ;;;###autoload
 (defun org-clock-persistence-insinuate ()

Index: org-colview.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-colview.el,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- org-colview.el      12 Nov 2008 08:01:07 -0000      1.9
+++ org-colview.el      23 Nov 2008 13:37:45 -0000      1.10
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -130,7 +130,7 @@
     (push ov org-columns-overlays)
     ov))
 
-(defun org-columns-display-here (&optional props)
+(defun org-columns-display-here (&optional props dateline)
   "Overlay the current line with column display."
   (interactive)
   (let* ((fmt org-columns-current-fmt-compiled)
@@ -145,6 +145,7 @@
                       'default))
         (color (list :foreground (face-attribute ref-face :foreground)))
         (face (list color 'org-column ref-face))
+        (face1 (list color 'org-agenda-column-dateline ref-face))
         (pl (or (get-text-property (point-at-bol) 'prefix-length) 0))
         (cphr (get-text-property (point-at-bol) 'org-complex-heading-regexp))
         pom property ass width f string ov column val modval s1 s2 title)
@@ -189,7 +190,7 @@
       ;; Create the overlay
       (org-unmodified
        (setq ov (org-columns-new-overlay
-                beg (setq beg (1+ beg)) string face))
+                beg (setq beg (1+ beg)) string (if dateline face1 face)))
        (org-overlay-put ov 'keymap org-columns-map)
        (org-overlay-put ov 'org-columns-key property)
        (org-overlay-put ov 'org-columns-value (cdr ass))
@@ -425,7 +426,7 @@
      (t
       (setq allowed (org-property-get-allowed-values pom key 'table))
       (if allowed
-         (setq nval (completing-read "Value: " allowed nil t))
+         (setq nval (org-ido-completing-read "Value: " allowed nil t))
        (setq nval (read-string "Edit: " value)))
       (setq nval (org-trim nval))
       (when (not (equal nval value))
@@ -675,7 +676,7 @@
   (interactive)
   (let ((editp (and prop (assoc prop org-columns-current-fmt-compiled)))
        cell)
-    (setq prop (completing-read
+    (setq prop (org-ido-completing-read
                "Property: " (mapcar 'list (org-buffer-property-keys t nil t))
                nil nil prop))
     (setq title (read-string (concat "Column title [" prop "]: ") (or title 
prop)))
@@ -683,7 +684,7 @@
     (if (string-match "\\S-" width)
        (setq width (string-to-number width))
       (setq width nil))
-    (setq fmt (completing-read "Summary [none]: "
+    (setq fmt (org-ido-completing-read "Summary [none]: "
                               '(("none") ("add_numbers") ("currency") 
("add_times") ("checkbox") ("checkbox-n-of-m") ("checkbox-percent"))
                               nil t))
     (if (string-match "\\S-" fmt)
@@ -1151,7 +1152,7 @@
   "Create a dynamic block capturing a column view table."
   (interactive)
   (let ((defaults '(:name "columnview" :hlines 1))
-       (id (completing-read
+       (id (org-ido-completing-read
             "Capture columns (local, global, entry with :ID: property) 
[local]: "
             (append '(("global") ("local"))
                     (mapcar 'list (org-property-values "ID"))))))
@@ -1282,7 +1283,7 @@
                          0 (length lsum) 'face 'bold lsum)
                         (cons prop lsum))))
                     fmt))
-             (org-columns-display-here props)
+             (org-columns-display-here props 'dateline)
              (org-set-local 'org-agenda-columns-active t)))
          (if (bobp) (throw 'exit t))
          (beginning-of-line 0))))))

Index: org-compat.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-compat.el,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- org-compat.el       12 Nov 2008 08:01:07 -0000      1.9
+++ org-compat.el       23 Nov 2008 13:37:45 -0000      1.10
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -277,9 +277,16 @@
 
 (defun org-propertize (string &rest properties)
   (if (featurep 'xemacs)
+      (progn
       (add-text-properties 0 (length string) properties string)
+       string)
     (apply 'propertize string properties)))
 
+(defun org-substring-no-properties (string &optional from to)
+  (if (featurep 'xemacs)
+      (org-no-properties (substring string from to))
+    (substring-no-properties string from to)))
+
 (provide 'org-compat)
 
 ;; arch-tag: a0a0579f-e68c-4bdf-9e55-93768b846bbe

Index: org-exp.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-exp.el,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- org-exp.el  12 Nov 2008 08:01:07 -0000      1.12
+++ org-exp.el  23 Nov 2008 13:37:45 -0000      1.13
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -1415,6 +1415,9 @@
 
 ;;; General functions for all backends
 
+(defvar org-export-target-aliases nil
+  "Alist of targets with invisible aliases.")
+
 (defun org-export-preprocess-string (string &rest parameters)
   "Cleanup STRING so that that the true exported has a more consistent source.
 This function takes STRING, which should be a buffer-string of an org-file
@@ -1431,6 +1434,8 @@
         (outline-regexp "\\*+ ")
         target-alist rtn)
 
+    (setq org-export-target-aliases nil)
+
     (with-current-buffer (get-buffer-create " org-mode-tmp")
       (erase-buffer)
       (insert string)
@@ -1464,7 +1469,7 @@
       ;; Get the correct stuff before the first headline
       (when (plist-get parameters :skip-before-1st-heading)
        (goto-char (point-min))
-       (when (re-search-forward "^\\*+[ \t]" nil t)
+       (when (re-search-forward "\\(^#.*\n\\)^\\*+[ \t]" nil t)
          (delete-region (point-min) (match-beginning 0))
          (goto-char (point-min))
          (insert "\n")))
@@ -1576,7 +1581,7 @@
 (defun org-export-handle-invisible-targets (target-alist)
   "Find targets in comments and move them out of comments.
 Mark them as invisible targets."
-  (let (target tmp)
+  (let (target tmp a)
     (goto-char (point-min))
     (while (re-search-forward "^#.*?\\(<<<?\\([^>\r\n]+\\)>>>?\\).*" nil t)
       ;; Check if the line before or after is a headline with a target
@@ -1587,8 +1592,13 @@
            (setq tmp (match-string 2))
            (replace-match "")
            (and (looking-at "\n") (delete-char 1))
-           (push (cons (org-solidify-link-text tmp) target)
-                 target-alist))
+           (push (cons (setq tmp (org-solidify-link-text tmp)) target)
+                 target-alist)
+           (setq a (or (assoc target org-export-target-aliases)
+                       (progn
+                         (push (list target) org-export-target-aliases)
+                         (car org-export-target-aliases))))
+           (push tmp (cdr a)))
        ;; Make an invisible target
        (replace-match "\\1(INVISIBLE)"))))
   target-alist)
@@ -1622,8 +1632,8 @@
                   (or (get-text-property (point) 'target)
                       (get-text-property
                        (max (point-min)
-                            (1- (previous-single-property-change
-                                 (point) 'target)))
+                            (1- (or (previous-single-property-change
+                                     (point) 'target) 0)))
                        'target))))))))
        (when target
         (set-match-data md)
@@ -1885,7 +1895,8 @@
       (goto-char (1- (match-end 0)))
       (org-if-unprotected
        (let* ((xx (save-match-data
-                   (org-link-expand-abbrev (match-string 1))))
+                   (org-translate-link
+                    (org-link-expand-abbrev (match-string 1)))))
              (s (concat
                  "[[" xx "]"
                  (if (match-end 3)
@@ -2149,7 +2160,7 @@
     (cond
      (htmlp
       ;; We are exporting to HTML
-      (condition-case nil (require 'htmlize) (nil t))
+      (require 'htmlize nil t)
       (if (not (fboundp 'htmlize-region-for-paste))
          (progn
            ;; we do not have htmlize.el, or an old version of it
@@ -2423,6 +2434,9 @@
                   "\n") "\n")))
        (t
        (setq line (org-fix-indentation line org-ascii-current-indentation))
+       ;; Remove forced line breaks
+       (if (string-match "\\\\\\\\[ \t]*$" line)
+           (setq line (replace-match "" t t line)))
        (if (and org-export-with-fixed-width
                 (string-match "^\\([ \t]*\\)\\(:\\)" line))
            (setq line (replace-match "\\1" nil nil line)))
@@ -3183,9 +3197,10 @@
            (cond
             ((match-end 2)
              (setq line (replace-match
-                         (concat "@<a name=\""
+                         (format
+                          "@<a name=\"%s\" id=\"%s\">@</a>"
                                  (org-solidify-link-text (match-string 1 line))
-                                 "\">\\nbsp@</a>")
+                          (org-solidify-link-text (match-string 1 line)))
                          t t line)))
             ((and org-export-with-toc (equal (string-to-char line) ?*))
              ;; FIXME: NOT DEPENDENT on TOC?????????????????????
@@ -3233,7 +3248,9 @@
              (save-match-data
                (if (string-match "^file:" desc)
                    (setq desc (substring desc (match-end 0)))))
-             (setq desc (concat "<img src=\"" desc "\"/>")))
+             (setq desc (org-add-props
+                            (concat "<img src=\"" desc "\"/>")
+                            '(org-protected t))))
            ;; FIXME: do we need to unescape here somewhere?
            (cond
             ((equal type "internal")
@@ -3250,7 +3267,10 @@
              (if (and (or (eq t org-export-html-inline-images)
                           (and org-export-html-inline-images (not descp)))
                       (org-file-image-p path))
-                 (setq rpl (concat "<img src=\"" type ":" path "\"" attr "/>"))
+                 (setq rpl (concat "<img src=\"" type ":" path "\""
+                                   (if (string-match "\\<alt=" attr)
+                                       attr (concat attr " alt=\"" path "\""))
+                                   "/>"))
                (setq link (concat type ":" path))
                (setq rpl (concat "<a href=\"" 
                                  (org-export-html-format-href link)
@@ -3308,7 +3328,11 @@
                                   (or (eq t org-export-html-inline-images)
                                       (and org-export-html-inline-images
                                            (not descp))))
-                             (concat "<img src=\"" thefile "\"" attr "/>")
+                             (concat "<img src=\"" thefile "\""
+                                     (if (string-match "alt=" attr)
+                                         attr
+                                       (concat attr " alt=\""
+                                               thefile "\"")) "/>")
                            (concat "<a href=\"" thefile "\"" attr ">"
                                    (org-export-html-format-desc desc)
                                    "</a>")))
@@ -3503,7 +3527,7 @@
                            (and org-export-with-toc (<= level umax))
                            head-count)
       ;; the </div> to close the last text-... div.
-      (insert "</div>\n")
+      (when (and (> umax 0) first-heading-pos) (insert "</div>\n"))
 
       (save-excursion
        (goto-char (point-min))
@@ -3604,7 +3628,7 @@
 
 (defun org-export-html-format-desc (s)
   "Make sure the S is valid as a description in a link."
-  (if s
+  (if (and s (not (get-text-property 1 'org-protected s)))
       (save-match-data
        (org-html-do-expand s))
     s))
@@ -4143,7 +4167,13 @@
   "Insert a new level in HTML export.
 When TITLE is nil, just close all open levels."
   (org-close-par-maybe)
-  (let ((target (and title (org-get-text-property-any 0 'target title)))
+  (let* ((target (and title (org-get-text-property-any 0 'target title)))
+        (extra-targets
+         (mapconcat (lambda (x)
+                      (format "<a name=\"%s\" id=\"%s\"></a>"
+                              x x))
+                    (cdr (assoc target org-export-target-aliases))
+                    ""))
        (l org-level-max)
        snumber)
     (while (>= l level)
@@ -4173,13 +4203,13 @@
                (progn
                  (org-close-li)
                  (if target
-                     (insert (format "<li id=\"%s\">" target) title "<br/>\n")
+                     (insert (format "<li id=\"%s\">" target) extra-targets 
title "<br/>\n")
                    (insert "<li>" title "<br/>\n")))
              (aset org-levels-open (1- level) t)
              (org-close-par-maybe)
              (if target
                  (insert (format "<ul>\n<li id=\"%s\">" target)
-                         title "<br/>\n")
+                         extra-targets title "<br/>\n")
                (insert "<ul>\n<li>" title "<br/>\n"))))
        (aset org-levels-open (1- level) t)
        (setq snumber (org-section-number level))
@@ -4187,8 +4217,8 @@
            (setq title (concat snumber " " title)))
        (setq level (+ level org-export-html-toplevel-hlevel -1))
        (unless (= head-count 1) (insert "\n</div>\n"))
-       (insert (format "\n<div id=\"outline-container-%s\" 
class=\"outline-%d\">\n<h%d id=\"sec-%s\">%s</h%d>\n<div id=\"text-%s\">\n"
-                       snumber level level snumber title level snumber))
+       (insert (format "\n<div id=\"outline-container-%s\" 
class=\"outline-%d\">\n<h%d id=\"sec-%s\">%s%s</h%d>\n<div id=\"text-%s\">\n"
+                       snumber level level snumber extra-targets title level 
snumber))
        (org-open-par)))))
 
 (defun org-get-text-property-any (pos prop &optional object)
@@ -4523,10 +4553,10 @@
       (while (string-match "\\([,;]\\)" s start)
        (setq start (+ (match-beginning 0) 2)
              s (replace-match "\\\\\\1" nil nil s))))
+    (setq s (org-trim s))
     (when is-body
       (while (string-match "[ \t]*\n[ \t]*" s)
        (setq s (replace-match "\\n" t t s))))
-    (setq s (org-trim s))
     (if is-body
        (if maxlength
            (if (and (numberp maxlength)
@@ -4534,6 +4564,32 @@
                (setq s (substring s 0 maxlength)))))
     s))
 
+(defun org-icalendar-cleanup-string-rfc2455 (s &optional is-body maxlength)
+  "Take out stuff and quote what needs to be quoted.
+When IS-BODY is non-nil, assume that this is the body of an item, clean up
+whitespace, newlines, drawers, and timestamps, and cut it down to MAXLENGTH
+characters.
+This seems to be more like RFC 2455, but it causes problems, so it is
+not used right now."
+  (if (not s)
+      nil
+    (if is-body
+       (let ((re (concat "\\(" org-drawer-regexp "\\)[^\000]*?:END:.*\n?"))
+             (re2 (concat "^[ \t]*" org-keyword-time-regexp ".*\n?")))
+         (while (string-match re s) (setq s (replace-match "" t t s)))
+         (while (string-match re2 s) (setq s (replace-match "" t t s)))
+         (setq s (org-trim s))
+         (while (string-match "[ \t]*\n[ \t]*" s)
+           (setq s (replace-match "\\n" t t s)))
+         (if maxlength
+             (if (and (numberp maxlength)
+                      (> (length s) maxlength))
+                 (setq s (substring s 0 maxlength)))))
+      (setq s (org-trim s)))
+    (while (string-match "\"" s) (setq s (replace-match "''" t t s)))
+    (when (string-match "[;,:]" s) (setq s (concat "\"" s "\"")))
+    s))
+
 (defun org-get-entry ()
   "Clean-up description string."
   (save-excursion

Index: org-export-latex.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-export-latex.el,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- org-export-latex.el 12 Nov 2008 08:01:07 -0000      1.9
+++ org-export-latex.el 23 Nov 2008 13:37:45 -0000      1.10
@@ -4,7 +4,7 @@
 ;;
 ;; Emacs Lisp Archive Entry
 ;; Filename: org-export-latex.el
-;; Version: 6.12a
+;; Version: 6.13
 ;; Author: Bastien Guerry <bzg AT altern DOT org>
 ;; Maintainer: Bastien Guerry <bzg AT altern DOT org>
 ;; Keywords: org, wp, tex
@@ -613,7 +613,9 @@
         (occur (number-to-string (cdr (assoc 'occur subcontent))))
         (content (cdr (assoc 'content subcontent)))
         (subcontent (cadr (assoc 'subcontent subcontent)))
-        (label (org-get-text-property-any 0 'target heading)))
+        (label (org-get-text-property-any 0 'target heading))
+        (label-list (cons label (cdr (assoc label
+                                            org-export-target-aliases)))))
     (cond
      ;; Normal conversion
      ((<= level org-export-latex-sectioning-depth)
@@ -624,7 +626,9 @@
                  end (nth (if num 1 3) sec))
          (setq start (if num (car sec) (cdr sec))))
        (insert (format start heading) "\n")
-       (when label (insert (format "\\label{%s}\n" label)))
+       (when label
+         (insert (mapconcat (lambda (l) (format "\\label{%s}" l))
+                            label-list "\n") "\n"))
        (insert (org-export-latex-content content))
        (cond ((stringp subcontent) (insert subcontent))
              ((listp subcontent) (org-export-latex-sub subcontent)))

Index: org-faces.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-faces.el,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- org-faces.el        12 Nov 2008 08:01:07 -0000      1.10
+++ org-faces.el        23 Nov 2008 13:37:45 -0000      1.11
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -203,6 +203,12 @@
                      :height (face-attribute 'default :height)
                      :family (face-attribute 'default :family)))
 
+(defface org-agenda-column-dateline
+  (org-compatible-face 'org-column
+    '((t nil)))
+  "Face used in agenda column view for datelines with summaries."
+  :group 'org-faces)
+
 (defface org-warning
   (org-compatible-face 'font-lock-warning-face
     '((((class color) (min-colors 16) (background light)) (:foreground "Red1" 
:bold t))

Index: org-gnus.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-gnus.el,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- org-gnus.el 12 Nov 2008 08:01:07 -0000      1.9
+++ org-gnus.el 23 Nov 2008 13:37:45 -0000      1.10
@@ -3,9 +3,10 @@
 ;; Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
+;;         Tassilo Horn <tassilo at member dot fsf dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -37,7 +38,11 @@
 
 ;; Customization variables
 
-(defcustom org-usenet-links-prefer-google nil
+(when (fboundp 'defvaralias)
+  (defvaralias 'org-usenet-links-prefer-google 'org-gnus-prefer-web-links
+    "Deprecated name for `org-gnus-prefer-web-links'."))
+
+(defcustom org-gnus-prefer-web-links nil
   "Non-nil means, `org-store-link' will create web links to Google groups.
 When nil, Gnus will be used for such links.
 Using a prefix arg to the command \\[org-store-link] (`org-store-link')
@@ -57,11 +62,52 @@
 (add-hook 'org-store-link-functions 'org-gnus-store-link)
 
 ;; Implementation
+
+(defun org-gnus-group-link (group)
+  "Create a link to the Gnus group GROUP.
+If GROUP is a newsgroup and `org-gnus-prefer-web-links' is
+non-nil, create a link to groups.google.com or gmane.org.
+Otherwise create a link to the group inside Gnus.
+
+If `org-store-link' was called with a prefix arg the meaning of
+`org-gnus-prefer-web-links' is reversed."
+  (let ((unprefixed-group (replace-regexp-in-string "^[^:]+:" "" group)))
+    (if (and (string-match "^nntp" group) ;; Only for nntp groups
+            (org-xor current-prefix-arg
+                     org-gnus-prefer-web-links))
+       (concat (if (string-match "gmane" unprefixed-group)
+                   "http://news.gmane.org/";
+                 "http://groups.google.com/group/";)
+               unprefixed-group)
+      (concat "gnus:" group))))
+
+(defun org-gnus-article-link (group newsgroups message-id x-no-archive)
+  "Create a link to a Gnus article.
+The article is specified by its MESSAGE-ID.  Additional
+parameters are the Gnus GROUP, the NEWSGROUPS the article was
+posted to and the X-NO-ARCHIVE header value of that article.
+
+If GROUP is a newsgroup and `org-gnus-prefer-web-links' is
+non-nil, create a link to groups.google.com or gmane.org.
+Otherwise create a link to the article inside Gnus.
+
+If `org-store-link' was called with a prefix arg the meaning of
+`org-gnus-prefer-web-links' is reversed."
+  (if (and (org-xor current-prefix-arg org-gnus-prefer-web-links)
+          newsgroups     ;; Make web links only for nntp groups
+          (not x-no-archive)) ;; and if X-No-Archive isn't set.
+      (format (if (string-match "gmane\\." newsgroups)
+                 "http://mid.gmane.org/%s";
+               "http://groups.google.com/groups/search?as_umsgid=%s";)
+             (org-fixup-message-id-for-http
+              (replace-regexp-in-string "[<>]" "" message-id)))
+    (org-make-link "gnus:" group "#" message-id)))
+
 (defun org-gnus-store-link ()
   "Store a link to a Gnus folder or message."
   (cond
    ((eq major-mode 'gnus-group-mode)
-    (let ((group (cond ((fboundp 'gnus-group-group-name) ; depending on Gnus
+    (let* ((group (cond ((fboundp 'gnus-group-group-name) ; depending on Gnus
                        (gnus-group-group-name))         ; version
                       ((fboundp 'gnus-group-name)
                        (gnus-group-name))
@@ -69,38 +115,30 @@
          desc link)
       (unless group (error "Not on a group"))
       (org-store-link-props :type "gnus" :group group)
-      (setq desc (concat
-                 (if (org-xor current-prefix-arg
-                              org-usenet-links-prefer-google)
-                     "http://groups.google.com/groups?group=";
-                   "gnus:")
-                 group)
+      (setq desc (org-gnus-group-link group)
            link (org-make-link desc))
       (org-add-link-props :link link :description desc)
       link))
 
    ((memq major-mode '(gnus-summary-mode gnus-article-mode))
-    (and (eq major-mode 'gnus-article-mode) (gnus-article-show-summary))
+    (and (eq major-mode 'gnus-summary-mode) (gnus-summary-show-article))
     (let* ((group gnus-newsgroup-name)
-          (article (gnus-summary-article-number))
-          (header (gnus-summary-article-header article))
-          (from (mail-header-from header))
-          (message-id (mail-header-id header))
-          (date (mail-header-date header))
-          (extra (mail-header-extra header))
-          (to (cdr (assoc 'To extra)))
+          (header (with-current-buffer gnus-article-buffer
+                    (gnus-summary-toggle-header 1)
+                    (goto-char (point-min))
+                    (mail-header-extract-no-properties)))
+          (from (mail-header 'from header))
+          (message-id (mail-header 'message-id header))
+          (date (mail-header 'date header))
+          (to (mail-header 'to header))
+          (newsgroups (mail-header 'newsgroups header))
+          (x-no-archive (mail-header 'x-no-archive header))
           (subject (gnus-summary-subject-string))
           desc link)
       (org-store-link-props :type "gnus" :from from :subject subject
                            :message-id message-id :group group :to to)
-      (setq desc (org-email-link-description))
-      (if (org-xor current-prefix-arg org-usenet-links-prefer-google)
-         (setq link
-               (format "http://groups.google.com/groups?as_umsgid=%s";
-                       (org-fixup-message-id-for-http message-id)))
-       (setq link (org-make-link "gnus:" group "#"
-                                 (or message-id
-                                     (number-to-string article)))))
+      (setq desc (org-email-link-description)
+           link (org-gnus-article-link group newsgroups message-id 
x-no-archive))
       (org-add-link-props :link link :description desc)
       link))))
 

Index: org-id.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-id.el,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- org-id.el   12 Nov 2008 08:01:08 -0000      1.8
+++ org-id.el   23 Nov 2008 13:37:45 -0000      1.9
@@ -4,7 +4,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -376,6 +376,7 @@
 
 (defun org-id-add-location (id file)
   "Add the ID with location FILE to the database of ID loations."
+  (when (and id file) ; don't error when called from a buffer with no file
   (unless org-id-locations (org-id-locations-load))
   (catch 'exit
     (let ((locs org-id-locations) list)
@@ -384,7 +385,7 @@
          (setcdr list (cons id (cdr list)))
          (throw 'exit t))))
     (push (list file id) org-id-locations))
-  (org-id-locations-save))
+    (org-id-locations-save)))
 
 ;; Finding entries with specified id
 

Index: org-info.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-info.el,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- org-info.el 12 Nov 2008 08:01:08 -0000      1.10
+++ org-info.el 23 Nov 2008 13:37:45 -0000      1.11
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;

Index: org-irc.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-irc.el,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- org-irc.el  12 Nov 2008 08:01:08 -0000      1.10
+++ org-irc.el  23 Nov 2008 13:37:45 -0000      1.11
@@ -4,7 +4,7 @@
 ;;
 ;; Author: Philip Jackson <address@hidden>
 ;; Keywords: erc, irc, link, org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -27,7 +27,7 @@
 ;; Org-mode loads this module by default - if this is not what you want,
 ;; configure the variable `org-modules'.
 ;;
-;; Please customize the variable `org-default-extensions' to select
+;; Please customize the variable `org-modules' to select
 ;; extensions you would like to use, and to deselect those which you don't
 ;; want.
 ;;

Index: org-jsinfo.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-jsinfo.el,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- org-jsinfo.el       12 Nov 2008 08:01:08 -0000      1.8
+++ org-jsinfo.el       23 Nov 2008 13:37:45 -0000      1.9
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;

Index: org-list.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-list.el,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- org-list.el 12 Nov 2008 08:01:08 -0000      1.5
+++ org-list.el 23 Nov 2008 13:37:46 -0000      1.6
@@ -6,7 +6,7 @@
 ;;         Bastien Guerry <bzg AT altern DOT org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -72,6 +72,18 @@
                 (const :tag "paren like in \"2)\"" ?\))
                 (const :tab "both" t)))
 
+(defcustom org-list-two-spaces-after-bullet-regexp nil
+  "A regular expression matching bullets that should have 2 spaces after them.
+When nil, no bullet will have two spaces after them.
+When a string, it will be used as a regular expression.  When the bullet
+type of a list is changed, the new bullet type will be matched against this
+regexp.  If it matches, there will be two spaces instead of one after
+the bullet in each item of he list."
+  :group 'org-plain-list
+  :type '(choice
+         (const :tag "never" nil)
+         (regexp)))
+
 (defcustom org-empty-line-terminates-plain-lists nil
   "Non-nil means, an empty line ends all plain list levels.
 When nil, empty lines are part of the preceeding item."
@@ -259,7 +271,7 @@
  (save-excursion
    (let* ((buffer-invisibility-spec (org-inhibit-invisibility)) ; Emacs 21
          (beg (condition-case nil
-                  (progn (outline-back-to-heading) (point))
+                  (progn (org-back-to-heading) (point))
                 (error (point-min))))
          (end (move-marker (make-marker)
                            (progn (outline-next-heading) (point))))
@@ -589,7 +601,7 @@
    (beginning-of-line 1)
    (let ((current (match-string 0))
         (prevp (eq which 'previous))
-        new)
+        new old)
      (setq new (cond
                ((and (numberp which)
                      (nth (1- which) '("-" "+" "*" "1." "1)"))))
@@ -597,10 +609,14 @@
                ((string-match "\\+" current)
                 (if prevp "-" (if (looking-at "\\S-") "1." "*")))
                ((string-match "\\*" current) (if prevp "+" "1."))
-               ((string-match "\\." current) (if prevp "*" "1)"))
+               ((string-match "\\." current)
+                (if prevp (if (looking-at "\\S-") "+" "*") "1)"))
                ((string-match ")" current) (if prevp "1." "-"))
                (t (error "This should not happen"))))
-     (and (looking-at "\\([ \t]*\\)\\S-+") (replace-match (concat "\\1" new)))
+     (and (looking-at "\\([ \t]*\\)\\(\\S-+\\)")
+         (setq old (match-string 2))
+         (replace-match (concat "\\1" new)))
+     (org-shift-item-indentation (- (length new) (length old)))
      (org-fix-bullet-type)
      (org-maybe-renumber-ordered-list))))
 
@@ -629,7 +645,7 @@
              (buffer-substring (point-at-bol) (match-beginning 3))))
        ;; (term (substring (match-string 3) -1))
        ind1 (n (1- arg))
-       fmt bobp)
+       fmt bobp old new)
     ;; find where this list begins
     (org-beginning-of-item-list)
     (setq bobp (bobp))
@@ -647,26 +663,32 @@
          (if (> ind1 ind) (throw 'next t))
          (if (< ind1 ind) (throw 'exit t))
          (if (not (org-at-item-p)) (throw 'exit nil))
+         (setq old (match-string 2))
          (delete-region (match-beginning 2) (match-end 2))
          (goto-char (match-beginning 2))
-         (insert (format fmt (setq n (1+ n)))))))
+         (insert (setq new (format fmt (setq n (1+ n)))))
+         (org-shift-item-indentation (- (length new) (length old))))))
     (goto-line line)
     (org-move-to-column col)))
 
 (defun org-fix-bullet-type ()
-  "Make sure all items in this list have the same bullet as the firsst item."
+  "Make sure all items in this list have the same bullet as the first item.
+Also, fix the indentation."
   (interactive)
   (unless (org-at-item-p) (error "This is not a list"))
   (let ((line (org-current-line))
        (col (current-column))
        (ind (current-indentation))
-       ind1 bullet)
+       ind1 bullet oldbullet)
     ;; find where this list begins
     (org-beginning-of-item-list)
     (beginning-of-line 1)
     ;; find out what the bullet type is
     (looking-at "[ \t]*\\(\\S-+\\)")
-    (setq bullet (match-string 1))
+    (setq bullet (concat (match-string 1) " "))
+    (if (and org-list-two-spaces-after-bullet-regexp
+            (string-match org-list-two-spaces-after-bullet-regexp bullet))
+       (setq bullet (concat bullet " ")))
     ;; walk forward and replace these numbers
     (beginning-of-line 0)
     (catch 'exit
@@ -680,13 +702,31 @@
          (if (< ind1 ind) (throw 'exit t))
          (if (not (org-at-item-p)) (throw 'exit nil))
          (skip-chars-forward " \t")
-         (looking-at "\\S-+")
-         (replace-match bullet))))
+         (looking-at "\\S-+ *")
+         (setq oldbullet (match-string 0))
+         (replace-match bullet)
+         (org-shift-item-indentation (- (length bullet) (length oldbullet))))))
     (goto-line line)
     (org-move-to-column col)
     (if (string-match "[0-9]" bullet)
        (org-renumber-ordered-list 1))))
 
+(defun org-shift-item-indentation (delta)
+  "Shift the indentation in current item by DELTA."
+  (save-excursion
+    (let ((beg (point-at-bol))
+         (end (progn (org-end-of-item) (point)))
+         i)
+      (goto-char end)
+      (beginning-of-line 0)
+      (while (> (point) beg)
+       (when (looking-at "[ \t]*\\S-")
+         ;; this is not an empty line
+         (setq i (org-get-indentation))
+         (if (and (> i 0) (> (setq i (+ i delta)) 0))
+             (indent-line-to i)))
+       (beginning-of-line 0)))))
+
 (defun org-beginning-of-item-list ()
   "Go to the beginning of the current item list.
 I.e. to the first item in this list."

Index: org-mac-message.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-mac-message.el,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- org-mac-message.el  12 Nov 2008 08:01:08 -0000      1.11
+++ org-mac-message.el  23 Nov 2008 13:37:46 -0000      1.12
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2008 Free Software Foundation, Inc.
 
 ;; Author: John Wiegley <address@hidden>
-;; Version: 6.12a
+;; Version: 6.13
 ;; Keywords: outlines, hypermedia, calendar, wp
 
 ;; This file is part of GNU Emacs.

Index: org-macs.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-macs.el,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- org-macs.el 12 Nov 2008 08:01:08 -0000      1.10
+++ org-macs.el 23 Nov 2008 13:37:46 -0000      1.11
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;

Index: org-mew.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-mew.el,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- org-mew.el  12 Nov 2008 08:01:08 -0000      1.10
+++ org-mew.el  23 Nov 2008 13:37:46 -0000      1.11
@@ -5,7 +5,7 @@
 ;; Author: Tokuya Kameshima <kames at fa2 dot so-net dot ne dot jp>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 
 ;; This file is part of GNU Emacs.
 
@@ -45,10 +45,12 @@
 
 ;; Declare external functions and variables
 (declare-function mew-cache-hit "ext:mew-cache" (fld msg &optional must-hit))
+(declare-function mew-case-folder "ext:mew-func" (case folder))
 (declare-function mew-header-get-value "ext:mew-header"
                  (field &optional as-list))
 (declare-function mew-init "ext:mew" ())
 (declare-function mew-refile-get "ext:mew-refile" (msg))
+(declare-function mew-sinfo-get-case "ext:mew-summary" ())
 (declare-function mew-summary-display "ext:mew-summary2" (&optional redisplay))
 (declare-function mew-summary-folder-name "ext:mew-syntax" (&optional ext))
 (declare-function mew-summary-get-mark "ext:mew-mark" ())
@@ -76,7 +78,8 @@
           (folder-name
            (if (and org-mew-link-to-refile-destination
                     (eq mark-info ?o)) ; marked as refile
-               (nth 1 (mew-refile-get msgnum))
+               (mew-case-folder (mew-sinfo-get-case)
+                                (nth 1 (mew-refile-get msgnum)))
              (mew-summary-folder-name)))
           message-id from to subject desc link)
      (save-window-excursion

Index: org-mhe.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-mhe.el,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- org-mhe.el  12 Nov 2008 08:01:08 -0000      1.9
+++ org-mhe.el  23 Nov 2008 13:37:46 -0000      1.10
@@ -5,7 +5,7 @@
 ;; Author: Thomas Baumann <thomas dot baumann at ch dot tum dot de>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;

Index: org-mouse.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-mouse.el,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- org-mouse.el        19 Nov 2008 04:35:16 -0000      1.10
+++ org-mouse.el        23 Nov 2008 13:37:46 -0000      1.11
@@ -4,7 +4,7 @@
 ;;
 ;; Author: Piotr Zielinski <piotr dot zielinski at gmail dot com>
 ;; Maintainer: Carsten Dominik <carsten at orgmode dot org>
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -144,7 +144,7 @@
 (defvar org-agenda-undo-list)
 (defvar org-agenda-custom-commands)
 (declare-function org-agenda-change-all-lines "org-agenda"
-                 (newhead hdmarker &optional fixface just-this))
+                 (newhead hdmarker &optional fixface))
 (declare-function org-verify-change-for-undo "org-agenda" (l1 l2))
 
 (defvar org-mouse-plain-list-regexp "\\([ \t]*\\)\\([-+*]\\|[0-9]+[.)]\\) "
@@ -584,7 +584,7 @@
      (beginning-of-line)
      (looking-at "[ \t]*")
      (open-line 1)
-     (indent-to (- (match-end 0) (match-beginning 0)))
+     (org-indent-to-column (- (match-end 0) (match-beginning 0)))
      (insert "+ "))
 
     (:middle                   ; insert after

Index: org-plot.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-plot.el,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- org-plot.el 12 Nov 2008 08:01:09 -0000      1.5
+++ org-plot.el 23 Nov 2008 13:37:46 -0000      1.6
@@ -5,7 +5,7 @@
 ;; Author: Eric Schulte <schulte dot eric at gmail dot com>
 ;; Keywords: tables, plotting
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;

Index: org-publish.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-publish.el,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -b -r1.15 -r1.16
--- org-publish.el      15 Nov 2008 06:44:02 -0000      1.15
+++ org-publish.el      23 Nov 2008 13:37:46 -0000      1.16
@@ -4,7 +4,7 @@
 ;; Author: David O'Toole <address@hidden>
 ;; Maintainer: Bastien Guerry <bzg AT altern DOT org>
 ;; Keywords: hypermedia, outlines, wp
-;; Version: 6.12a
+;; Version: 6.13
 
 ;; This file is part of GNU Emacs.
 ;;
@@ -626,7 +626,7 @@
     (if index-buffer
        (kill-buffer index-buffer))
     (with-temp-buffer
-      (insert (concat "* " index-title "\n\n"))
+      (insert (concat "#+TITLE: " index-title "\n\n"))
       (while (setq file (pop files))
        (let ((fn (file-name-nondirectory file))
              (link (file-relative-name file dir))
@@ -703,7 +703,7 @@
            (if force nil org-publish-use-timestamps-flag)))
       (org-publish-projects
        (list (or project
-                (assoc (completing-read
+                (assoc (org-ido-completing-read
                         "Publish project: "
                         org-publish-project-alist nil t)
                        org-publish-project-alist)))))))

Index: org-remember.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-remember.el,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- org-remember.el     12 Nov 2008 08:01:09 -0000      1.10
+++ org-remember.el     23 Nov 2008 13:37:46 -0000      1.11
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -54,7 +54,7 @@
 (defcustom org-remember-store-without-prompt t
   "Non-nil means, `C-c C-c' stores remember note without further prompts.
 It then uses the file and headline specified by the template or (if the
-themplate does not specify them) by the variables `org-default-notes-file'
+template does not specify them) by the variables `org-default-notes-file'
 and `org-remember-default-headline'.  To force prompting anyway, use 
 `C-u C-c C-c' to file the note.
 
@@ -195,6 +195,26 @@
                         (symbol :tag "Major mode"))
                 (function :tag "Perform a check against function")))))
 
+(defcustom org-remember-before-finalize-hook nil
+  "Hook that is run right before a remember process is finalized.
+The remember buffer is still current when this hook runs."
+  :group 'org-remember
+  :type 'hook)
+
+(defvar org-remember-mode-map (make-sparse-keymap)
+  "Keymap for org-remember-mode, a minor mode.
+Use this map to set additional keybindings for when Org-mode is used
+for a Remember buffer.")
+(defvar org-remember-mode-hook nil
+  "Hook for the minor `org-remember-mode'.")
+
+(define-minor-mode org-remember-mode
+  "Minor mode for special key bindings in a remember buffer."
+  nil " Rem" org-remember-mode-map
+  (run-hooks 'org-remember-mode-hook))
+(define-key org-remember-mode-map "\C-c\C-c" 'org-remember-finalize)
+(define-key org-remember-mode-map "\C-c\C-k" 'org-remember-kill)
+
 (defcustom org-remember-clock-out-on-exit 'query
   "Non-nil means, stop the clock when exiting a clocking remember buffer.
 This only applies if the clock is running in the remember buffer.  If the
@@ -360,7 +380,7 @@
                    v-a))
             (v-n user-full-name)
             (v-k (if (marker-buffer org-clock-marker)
-                     (substring-no-properties org-clock-heading)))
+                     (org-substring-no-properties org-clock-heading)))
             (v-K (if (marker-buffer org-clock-marker)
                      (org-make-link-string
                       (buffer-file-name (marker-buffer org-clock-marker))
@@ -446,8 +466,7 @@
                 (replace-match x t t))))
 
        ;; Turn on org-mode in the remember buffer, set local variables
-       (let ((org-inhibit-startup t)) (org-mode))
-       (org-set-local 'org-finish-function 'org-remember-finalize)
+       (let ((org-inhibit-startup t)) (org-mode) (org-remember-mode 1))
        (if (and file (string-match "\\S-" file) (not (file-directory-p file)))
            (org-set-local 'org-default-notes-file file))
        (if headline
@@ -474,7 +493,7 @@
                    (org-global-tags-completion-table
                     (if (equal char "G") (org-agenda-files) (and file (list 
file)))))
                   (org-add-colon-after-tag-completion t)
-                  (ins (completing-read
+                  (ins (org-ido-completing-read
                         (if prompt (concat prompt ": ") "Tags: ")
                         'org-tags-completion-function nil nil nil
                         'org-tags-history)))
@@ -501,17 +520,23 @@
                                                   (car clipboards))))))
           ((equal char "p")
            (let*
-               ((prop (substring-no-properties prompt))
-                (allowed (with-current-buffer
+               ((prop (org-substring-no-properties prompt))
+                (pall (concat prop "_ALL"))
+                (allowed
+                 (with-current-buffer
                              (get-buffer (file-name-nondirectory file))
-                           (org-property-get-allowed-values nil prop 'table)))
+                   (or (cdr (assoc pall org-file-properties))
+                       (cdr (assoc pall org-global-properties))
+                       (cdr (assoc pall org-global-properties-fixed)))))
                 (existing (with-current-buffer
                               (get-buffer (file-name-nondirectory file))
                             (mapcar 'list (org-property-values prop))))
                 (propprompt (concat "Value for " prop ": "))
                 (val (if allowed
-                         (org-completing-read propprompt allowed nil
-                                              'req-match)
+                         (org-completing-read
+                          propprompt
+                          (mapcar 'list (org-split-string allowed "[ \t]+"))
+                          nil 'req-match)
                        (org-completing-read propprompt existing nil nil
                                             "" nil ""))))
              (org-set-property prop val)))
@@ -524,17 +549,17 @@
                                   (member char '("u" "U"))
                                   nil nil (list org-end-time-was-given)))
           (t
+           (let (org-completion-use-ido)
            (insert (org-completing-read
                     (concat (if prompt prompt "Enter string")
                             (if default (concat " [" default "]"))
                             ": ")
-                    completions nil nil nil histvar default)))))
+                      completions nil nil nil histvar default))))))
        (goto-char (point-min))
        (if (re-search-forward "%\\?" nil t)
            (replace-match "")
          (and (re-search-forward "^[^#\n]" nil t) (backward-char 1))))
-    (let ((org-inhibit-startup t)) (org-mode))
-    (org-set-local 'org-finish-function 'org-remember-finalize))
+    (let ((org-inhibit-startup t)) (org-mode) (org-remember-mode 1)))
   (when (save-excursion
          (goto-char (point-min))
          (re-search-forward "%&" nil t))
@@ -551,8 +576,7 @@
 This should be run in `post-command-hook' and will remove itself
 from that hook."
   (remove-hook 'post-command-hook 'org-remember-finish-immediately)
-  (when org-finish-function
-    (funcall org-finish-function)))
+  (org-remember-finalize))
 
 (defun org-remember-visit-immediately ()
   "File remember note immediately.
@@ -572,6 +596,10 @@
 (defvar org-clock-marker) ; Defined in org.el
 (defun org-remember-finalize ()
   "Finalize the remember process."
+  (interactive)
+  (unless org-remember-mode
+    (error "This does not seem to be a remember buffer for Org-mode"))
+  (run-hooks 'org-remember-before-finalize-hook)
   (unless (fboundp 'remember-finalize)
     (defalias 'remember-finalize 'remember-buffer))
   (when (and org-clock-marker
@@ -587,6 +615,12 @@
     (setq buffer-file-name nil))
   (remember-finalize))
 
+(defun org-remember-kill ()
+  "Abort the current remember process."
+  (interactive)
+  (let ((org-note-abort t))
+    (org-remember-finalize)))
+
 ;;;###autoload
 (defun org-remember (&optional goto org-force-remember-template-char)
   "Call `remember'.  If this is already a remember buffer, re-apply template.
@@ -610,7 +644,7 @@
     ;; `org-select-remember-template'
     (setq org-select-template-temp-major-mode major-mode)
     (setq org-select-template-original-buffer (current-buffer))
-    (if (eq org-finish-function 'org-remember-finalize)
+    (if org-remember-mode
        (progn
          (when (< (length org-remember-templates) 2)
            (error "No other template available"))
@@ -769,6 +803,10 @@
                 (not fastp))
        (org-refile nil (or visiting (find-file-noselect file)))
        (and visitp (run-with-idle-timer 0.01 nil 
'org-remember-visit-immediately))
+       (save-excursion
+         (bookmark-jump "org-refile-last-stored")
+         (bookmark-set "org-remember-last-stored")
+         (move-marker org-remember-last-stored-marker (point)))
        (throw 'quit t))
       ;; Find the file
       (if (not visiting) (find-file-noselect file))

Index: org-rmail.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-rmail.el,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- org-rmail.el        12 Nov 2008 08:01:09 -0000      1.9
+++ org-rmail.el        23 Nov 2008 13:37:46 -0000      1.10
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;

Index: org-table.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-table.el,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -b -r1.11 -r1.12
--- org-table.el        12 Nov 2008 08:01:09 -0000      1.11
+++ org-table.el        23 Nov 2008 13:37:46 -0000      1.12
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;

Index: org-vm.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-vm.el,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- org-vm.el   12 Nov 2008 08:01:09 -0000      1.9
+++ org-vm.el   23 Nov 2008 13:37:47 -0000      1.10
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -111,6 +111,7 @@
     (funcall (cdr (assq 'vm org-link-frame-setup)) folder readonly)
     (sit-for 0.1)
     (when article
+      (require 'vm-search)
       (vm-select-folder-buffer)
       (widen)
       (let ((case-fold-search t))

Index: org-wl.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org-wl.el,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- org-wl.el   12 Nov 2008 08:01:09 -0000      1.9
+++ org-wl.el   23 Nov 2008 13:37:47 -0000      1.10
@@ -5,7 +5,7 @@
 ;; Author: Tokuya Kameshima <kames at fa2 dot so-net dot ne dot jp>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;

Index: org.el
===================================================================
RCS file: /sources/emacs/emacs/lisp/org/org.el,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- org.el      19 Nov 2008 04:35:17 -0000      1.25
+++ org.el      23 Nov 2008 13:37:47 -0000      1.26
@@ -5,7 +5,7 @@
 ;; Author: Carsten Dominik <carsten at orgmode dot org>
 ;; Keywords: outlines, hypermedia, calendar, wp
 ;; Homepage: http://orgmode.org
-;; Version: 6.12a
+;; Version: 6.13
 ;;
 ;; This file is part of GNU Emacs.
 ;;
@@ -92,7 +92,7 @@
 
 ;;; Version
 
-(defconst org-version "6.12a"
+(defconst org-version "6.13"
   "The version number of the file org.el.")
 
 (defun org-version (&optional here)
@@ -125,7 +125,7 @@
   "Have the modules been loaded already?")
 
 (defun org-load-modules-maybe (&optional force)
-  "Load all extensions listed in `org-default-extensions'."
+  "Load all extensions listed in `org-modules'."
   (when (or force (not org-modules-loaded))
     (mapc (lambda (ext)
            (condition-case nil (require ext)
@@ -180,7 +180,9 @@
        (const :tag "C  depend:            TODO dependencies for Org-mode" 
org-depend)
        (const :tag "C  elisp-symbol:      Org links to emacs-lisp symbols" 
org-elisp-symbol)
        (const :tag "C  eval:              Include command output as text" 
org-eval)
+       (const :tag "C  eval-light:        Evaluate inbuffer-code on demand" 
org-eval-light)
        (const :tag "C  expiry:            Expiry mechanism for Org entries" 
org-expiry)
+       (const :tag "C  exp-blocks:        Pre-process blocks for export" 
org-exp-blocks)
        (const :tag "C  id:                Global id's for identifying entries" 
org-id)
        (const :tag "C  interactive-query: Interactive modification of tags 
query" org-interactive-query)
        (const :tag "C  mairix:            Hook mairix search into Org for 
different MUAs" org-mairix)
@@ -843,7 +845,9 @@
      [[linkkey:tag][description]]
 
 If REPLACE is a string, the tag will simply be appended to create the link.
-If the string contains \"%s\", the tag will be inserted there.
+If the string contains \"%s\", the tag will be inserted there.  Alternatively,
+the placeholder \"%h\" will cause a url-encoded version of the tag to
+be inserted at that point (see the function `url-hexify-string').
 
 REPLACE may also be a function that will be called with the tag as the
 only argument to create the link, which should be returned as a string.
@@ -979,6 +983,20 @@
   :tag "Org Follow Link"
   :group 'org-link)
 
+(defcustom org-link-translation-function nil
+  "Function to translate links with different syntax to Org syntax.
+This can be used to translate links created for example by the Planner
+or emacs-wiki packages to Org syntax.
+The function must accept two parameters, a TYPE containing the link
+protocol name like \"rmail\" or \"gnus\" as a string, and the linked path,
+which is everything after the link protocol.  It should return a cons
+with possibly modifed values of type and path.
+Org contains a function for this, so if you set this variable to
+`org-translate-link-from-planner', you should be able follow many
+links created by planner."
+  :group 'org-link-follow
+  :type 'function)
+
 (defcustom org-follow-link-hook nil
   "Hook that is run after a link has been followed."
   :group 'org-link-follow
@@ -1304,11 +1322,11 @@
                   (const :tag "Current buffer" nil)
                   (function) (variable) (file))
           (choice :tag "Identify target headline by"
-           (cons :tag "Specific tag" (const :tag) (string))
-           (cons :tag "TODO keyword" (const :todo) (string))
-           (cons :tag "Regular expression" (const :regexp) (regexp))
-           (cons :tag "Level number" (const :level) (integer))
-           (cons :tag "Max Level number" (const :maxlevel) (integer))))))
+           (cons :tag "Specific tag" (const :value :tag) (string))
+           (cons :tag "TODO keyword" (const :value :todo) (string))
+           (cons :tag "Regular expression" (const :value :regexp) (regexp))
+           (cons :tag "Level number" (const :value :level) (integer))
+           (cons :tag "Max Level number" (const :value :maxlevel) 
(integer))))))
 
 (defcustom org-refile-use-outline-path nil
   "Non-nil means, provide refile targets as paths.
@@ -1996,7 +2014,8 @@
 
 (defcustom org-global-properties nil
   "List of property/value pairs that can be inherited by any entry.
-You can set buffer-local values for this by adding lines like
+You can set buffer-local values for the same purpose in the variable
+`org-file-properties' this by adding lines like
 
 #+PROPERTY: NAME VALUE"
   :group 'org-properties
@@ -2319,6 +2338,11 @@
   :tag "Org Completion"
   :group 'org)
 
+(defcustom org-completion-use-ido nil
+  "Non-ni means, use ido completion wherever possible."
+  :group 'org-completion
+  :type 'boolean)  
+
 (defcustom org-completion-fallback-command 'hippie-expand
   "The expansion command called by \\[org-complete] in normal context.
 Normal means, no org-mode-specific context."
@@ -2357,11 +2381,12 @@
                  (extra txt &optional category tags dotime noprefix remove-re))
 (declare-function org-agenda-new-marker "org-agenda" (&optional pos))
 (declare-function org-agenda-change-all-lines "org-agenda"
-                 (newhead hdmarker &optional fixface just-this))
+                 (newhead hdmarker &optional fixface))
 (declare-function org-agenda-set-restriction-lock "org-agenda" (&optional 
type))
 (declare-function org-agenda-maybe-redo "org-agenda" ())
 (declare-function org-agenda-save-markers-for-cut-and-paste "org-agenda"
                  (beg end))
+(declare-function org-agenda-copy-local-variable "org-agenda" (var))
 (declare-function parse-time-string "parse-time" (string))
 (declare-function remember "remember" (&optional initial))
 (declare-function remember-buffer-desc "remember" ())
@@ -2612,17 +2637,19 @@
 (defcustom org-archive-location "%s_archive::"
   "The location where subtrees should be archived.
 
-Otherwise, the value of this variable is a string, consisting of two
-parts, separated by a double-colon.
-
-The first part is a file name - when omitted, archiving happens in the same
-file.  %s will be replaced by the current file name (without directory part).
-Archiving to a different file is useful to keep archived entries from
-contributing to the Org-mode Agenda.
-
-The part after the double colon is a headline.  The archived entries will be
-filed under that headline.  When omitted, the subtrees are simply filed away
-at the end of the file, as top-level entries.
+The value of this variable is a string, consisting of two parts,
+separated by a double-colon.  The first part is a filename and
+the second part is a headline.
+
+When the filename is omitted, archiving happens in the same file.
+%s in the filename will be replaced by the current file
+name (without the directory part).  Archiving to a different file
+is useful to keep archived entries from contributing to the
+Org-mode Agenda.
+
+The archived entries will be filed as subtrees of the specified
+headline.  When the headline is omitted, the subtrees are simply
+filed away at the end of the file, as top-level entries.
 
 Here are a few examples:
 \"%s_archive::\"
@@ -3397,6 +3424,8 @@
    "Matches a link with spaces, optional angular brackets around it.")
 (defvar org-link-re-with-space2 nil
    "Matches a link with spaces, optional angular brackets around it.")
+(defvar org-link-re-with-space3 nil
+   "Matches a link with spaces, only for internal part in bracket links.")
 (defvar org-angle-link-re nil
    "Matches link with angular brackets, spaces are allowed.")
 (defvar org-plain-link-re nil
@@ -3432,6 +3461,11 @@
         "\\([^" org-non-link-chars " ]"
         "[^\t\n\r]*"
         "[^" org-non-link-chars " ]\\)>?")
+       org-link-re-with-space3
+       (concat
+        "<?\\(" (mapconcat 'identity org-link-types "\\|") "\\):"
+        "\\([^" org-non-link-chars " ]"
+        "[^\t\n\r]*\\)")
        org-angle-link-re
        (concat
         "<\\(" (mapconcat 'identity org-link-types "\\|") "\\):"
@@ -4915,7 +4949,7 @@
          (goto-char (match-end 0))
          (setq col (current-column))
          (if (< diff 0) (replace-match ""))
-         (indent-to (+ diff col))))
+         (org-indent-to-column (+ diff col))))
       (move-marker end nil))))
 
 (defun org-convert-to-odd-levels ()
@@ -5369,13 +5403,13 @@
 
       (and (= (downcase sorting-type) ?f)
            (setq getkey-func
-                 (completing-read "Sort using function: "
+                 (org-ido-completing-read "Sort using function: "
                                   obarray 'fboundp t nil nil))
            (setq getkey-func (intern getkey-func)))
 
       (and (= (downcase sorting-type) ?r)
            (setq property
-                 (completing-read "Property: "
+                 (org-ido-completing-read "Property: "
                                  (mapcar 'list (org-buffer-property-keys t))
                                   nil t))))
 
@@ -5585,8 +5619,8 @@
     (beginning-of-line 1)
     (if (looking-at "[ \t]*[^:\n \t]")
        nil
-      (if (looking-at "[ \t]*\\(\n\\|\\'\\)]")
-         (setq beg (point) end (match-end 0))
+      (if (looking-at "[ \t]*\\(\n\\|\\'\\)")
+         (setq beg (point) end beg)
        (save-excursion
          (if (re-search-backward "^[ \t]*[^:]" nil 'move)
              (setq beg (point-at-bol 2))
@@ -5595,7 +5629,7 @@
          (if (re-search-forward "^[ \t]*[^:]" nil 'move)
              (setq end (1- (match-beginning 0)))
            (setq end (point))))
-       (goto-line line)
+       (goto-line line))
        (if (get-buffer "*Org Edit Picture*")
            (kill-buffer "*Org Edit Picture*"))
        (switch-to-buffer (make-indirect-buffer (current-buffer)
@@ -5614,13 +5648,13 @@
        (set (make-local-variable 'org-edit-src-from-org-mode) org-mode-p)
        (set (make-local-variable 'org-edit-src-picture) t)
        (goto-char (point-min))
-       (while (re-search-forward "^[ \t]*: " nil t)
+      (while (re-search-forward "^[ \t]*: ?" nil t)
          (replace-match ""))
        (goto-line line)
        (org-exit-edit-mode)
        (org-set-local 'header-line-format msg)
        (message "%s" msg)
-       t))))
+      t)))
 
 
 (defun org-edit-src-find-region-and-lang ()
@@ -5711,6 +5745,7 @@
       (font-lock-unfontify-region (point-min) (point-max)))
     (put-text-property (point-min) (point-max) 'font-lock-fontified t))
   (when (org-bound-and-true-p org-edit-src-picture)
+    (untabify (point-min) (point-max))
     (goto-char (point-min))
     (while (re-search-forward "^" nil t)
       (replace-match ": "))
@@ -5819,6 +5854,8 @@
          '([(meta shift right)]  org-shiftmetaright)
          '([(shift up)]          org-shiftup)
          '([(shift down)]        org-shiftdown)
+         '([(shift left)]        org-shiftleft)
+         '([(shift right)]       org-shiftright)
          '("\C-c\C-c"            org-ctrl-c-ctrl-c)
          '("\M-q"                fill-paragraph)
          '("\C-c^"               org-sort)
@@ -5975,6 +6012,8 @@
          (cond
           ((symbolp rpl) (funcall rpl tag))
           ((string-match "%s" rpl) (replace-match (or tag "") t t rpl))
+          ((string-match "%h" rpl)
+           (replace-match (url-hexify-string (or tag "")) t t rpl))
           (t (concat rpl tag)))))
     link))
 
@@ -6049,7 +6088,7 @@
 into an org-buffer with \\[org-insert-link].
 
 For some link types, a prefix arg is interpreted:
-For links to usenet articles, arg negates `org-usenet-links-prefer-google'.
+For links to usenet articles, arg negates `org-gnus-prefer-web-links'.
 For file links, arg negates `org-context-in-file-links'."
   (interactive "P")
   (org-load-modules-maybe)
@@ -6287,7 +6326,7 @@
 This is the list that is used before handing over to the browser.")
 
 (defun org-link-escape (text &optional table)
-  "Escape characters in TEXT that are problematic for links."
+  "Escape charaters in TEXT that are problematic for links."
   (setq table (or table org-link-escape-chars))
   (when text
     (let ((re (mapconcat (lambda (x) (regexp-quote
@@ -6485,7 +6524,7 @@
     ;; Check if we are linking to the current file with a search option
     ;; If yes, simplify the link by using only the search option.
     (when (and buffer-file-name
-              (string-match "\\<file:\\(.+?\\)::\\([^>]+\\)" link))
+              (string-match "^file:\\(.+?\\)::\\([^>]+\\)" link))
       (let* ((path (match-string 1 link))
             (case-fold-search nil)
             (search (match-string 2 link)))
@@ -6495,7 +6534,7 @@
              (setq link search)))))
 
     ;; Check if we can/should use a relative path.  If yes, simplify the link
-    (when (string-match "\\<file:\\(.*\\)" link)
+    (when (string-match "^file:\\(.*\\)" link)
       (let* ((path (match-string 1 link))
             (origpath path)
             (case-fold-search nil))
@@ -6534,6 +6573,15 @@
   (let ((minibuffer-local-completion-map
         (copy-keymap minibuffer-local-completion-map)))
     (org-defkey minibuffer-local-completion-map " " 'self-insert-command)
+    (apply 'org-ido-completing-read args)))
+
+(defun org-ido-completing-read (&rest args)
+  "Completing-read using `ido-mode' speedups if available"
+  (if (and org-completion-use-ido
+          (fboundp 'ido-completing-read)
+          (boundp 'ido-mode) ido-mode
+          (listp (second args)))
+      (apply 'ido-completing-read (concat (car args)) (cdr args))
     (apply 'completing-read args)))
 
 (defun org-extract-attributes (s)
@@ -6601,6 +6649,39 @@
       (setq org-link-search-failed t)
       (error "No further link found"))))
 
+(defun org-translate-link (s)
+  "Translate a link string if a translation function has been defined."
+  (if (and org-link-translation-function
+          (fboundp org-link-translation-function)
+          (string-match "\\([a-zA-Z0-9]+\\):\\(.*\\)" s))
+      (progn
+       (setq s (funcall org-link-translation-function
+                        (match-string 1) (match-string 2)))
+       (concat (car s) ":" (cdr s)))
+    s))
+
+(defun org-translate-link-from-planner (type path)
+  "Translate a link from Emacs Planner syntax so that Org can follow it.
+This is still an experimental function, your mileage may vary."
+ (cond
+  ((member type '("http" "https" "news" "ftp"))
+   ;; standard Internet links are the same.
+   nil)
+  ((and (equal type "irc") (string-match "^//" path))
+   ;; Planner has two / at the beginning of an irc link, we have 1.
+   ;; We should have zero, actually....
+   (setq path (substring path 1)))
+  ((and (equal type "lisp") (string-match "^/" path))
+   ;; Planner has a slash, we do not.
+   (setq type "elisp" path (substring path 1)))
+  ((string-match "^//\\(.?*\\)/\\(<.*>\\)$" path)
+   ;; A typical message link.  Planner has the id after the fina slash,
+   ;; we separate it with a hash mark
+   (setq path (concat (match-string 1 path) "#"
+                     (org-remove-angle-brackets (match-string 2 path)))))
+  )
+ (cons type path))
+
 (defun org-find-file-at-mouse (ev)
   "Open file link or URL at mouse."
   (interactive "e")
@@ -6611,6 +6692,8 @@
   "Open file link or URL at mouse."
   (interactive "e")
   (mouse-set-point ev)
+  (if (eq major-mode 'org-agenda-mode)
+      (org-agenda-copy-local-variable 'org-link-abbrev-alist-local))
   (org-open-at-point))
 
 (defvar org-window-config-before-follow-link nil
@@ -6668,7 +6751,7 @@
             ((or (file-name-absolute-p link)
                  (string-match "^\\.\\.?/" link))
              (setq type "file" path link))
-            ((string-match org-link-re-with-space2 link)
+            ((string-match org-link-re-with-space3 link)
              (setq type (match-string 1 link) path (match-string 2 link)))
             (t (setq type "thisfile" path link)))
            (throw 'match t)))
@@ -6703,6 +6786,11 @@
       ;; Remove any trailing spaces in path
       (if (string-match " +\\'" path)
          (setq path (replace-match "" t t path)))
+      (if (and org-link-translation-function
+              (fboundp org-link-translation-function))
+         ;; Check if we need to translate the link
+         (let ((tmp (funcall org-link-translation-function type path)))
+           (setq type (car tmp) path (cdr tmp))))
 
       (cond
 
@@ -6787,7 +6875,10 @@
                           (format "Execute \"%s\" as elisp? "
                                   (org-add-props cmd nil
                                     'face 'org-warning))))
-             (message "%s => %s" cmd (eval (read cmd)))
+             (message "%s => %s" cmd 
+                      (if (equal (string-to-char cmd) ?\()
+                          (eval (read cmd))
+                        (call-interactively (read cmd))))
            (error "Abort"))))
 
        (t
@@ -7415,7 +7506,7 @@
   (let* ((cbuf (current-buffer))
         (cfunc (if org-refile-use-outline-path
                    'org-olpath-completing-read
-                 'completing-read))
+                 'org-ido-completing-read))
         (extra (if org-refile-use-outline-path "/" ""))
         (filename (buffer-file-name (buffer-base-buffer cbuf)))
         (fname (and filename (file-truename filename)))
@@ -7435,7 +7526,7 @@
   "Read an outline path like a file name."
   (let ((thetable collection))
     (apply 
-     'completing-read prompt
+     'org-ido-completing-read prompt
      (lambda (string predicate &optional flag)
        (let (rtn r s f (l (length string)))
         (cond
@@ -7620,7 +7711,7 @@
 There are two templates for each key, the first uses the original Org syntax,
 the second uses Emacs Muse-like syntax tags.  These Muse-like tags become
 the default when the /org-mtags.el/ module has been loaded. See also the
-variable `org-mtags-prefere-muse-templates'.
+variable `org-mtags-prefer-muse-templates'.
 This is an experimental feature, it is undecided if it is going to stay in."
   :group 'org-completion
   :type '(repeat
@@ -7643,7 +7734,7 @@
 
 (defun org-complete-expand-structure-template (start cell)
   "Expand a structure template."
-  (let* ((musep (org-bound-and-true-p org-mtags-prefere-muse-templates))
+  (let* ((musep (org-bound-and-true-p org-mtags-prefer-muse-templates))
         (rpl (nth (if musep 2 1) cell)))
     (delete-region start (point))
     (when (string-match "\\`#\\+" rpl)
@@ -7919,7 +8010,7 @@
                           (or (not org-use-fast-todo-selection)
                               (not org-todo-key-trigger)))
                      ;; Read a state with completion
-                     (completing-read "State: " (mapcar (lambda(x) (list x))
+                     (org-ido-completing-read "State: " (mapcar (lambda(x) 
(list x))
                                                         org-todo-keywords-1)
                                       nil t))
                     ((eq arg 'right)
@@ -8329,7 +8420,7 @@
        (kwd-re
         (cond ((null arg) org-not-done-regexp)
               ((equal arg '(4))
-               (let ((kwd (completing-read "Keyword (or KWD1|KWD2|...): "
+               (let ((kwd (org-ido-completing-read "Keyword (or 
KWD1|KWD2|...): "
                                            (mapcar 'list 
org-todo-keywords-1))))
                  (concat "\\("
                          (mapconcat 'identity (org-split-string kwd "|") "\\|")
@@ -8641,9 +8732,9 @@
      ((equal ans ?T)
       (call-interactively 'org-tags-sparse-tree))
      ((member ans '(?p ?P))
-      (setq kwd (completing-read "Property: "
+      (setq kwd (org-ido-completing-read "Property: "
                                 (mapcar 'list (org-buffer-property-keys))))
-      (setq value (completing-read "Value: "
+      (setq value (org-ido-completing-read "Value: "
                                   (mapcar 'list (org-property-values kwd))))
       (unless (string-match "\\`{.*}\\'" value)
        (setq value (concat "\"" value "\"")))
@@ -8994,7 +9085,7 @@
   "Create a sparse tree according to tags string MATCH.
 MATCH can contain positive and negative selection of tags, like
 \"+WORK+URGENT-WITHBOSS\".
-If optional argument TODO-ONLY is non-nil, only select lines that are
+If optional argument TODO_ONLY is non-nil, only select lines that are
 also TODO lines."
   (interactive "P")
   (org-prepare-agenda-buffers (list (current-buffer)))
@@ -9039,7 +9130,7 @@
     ;; Get a new match request, with completion
     (let ((org-last-tags-completion-table
           (org-global-tags-completion-table)))
-      (setq match (completing-read
+      (setq match (org-ido-completing-read
                   "Match: " 'org-tags-completion-function nil nil nil
                   'org-tags-history))))
 
@@ -9187,11 +9278,19 @@
       (error 0.)))
    (t 0.)))
 
+(defun org-time-today ()
+  "Time in seconds today at 0:00.
+Returns the float number of seconds since the beginning of the
+epoch to the beginning of today (00:00)."
+  (float-time (apply 'encode-time
+                    (append '(0 0 0) (nthcdr 3 (decode-time))))))
+
 (defun org-matcher-time (s)
   (cond
-   ((equal s "<now>") (float-time))
-   ((equal s "<today>")
-    (float-time (append '(0 0 0) (nthcdr 3 (decode-time)))))
+   ((string= s "<now>") (float-time))
+   ((string= s "<today>") (org-time-today))
+   ((string= s "<tomorrow>") (+ 86400.0 (org-time-today)))
+   ((string= s "<yesterday>") (- (org-time-today) 86400.0))
    (t (org-2ft s))))
 
 (defun org-match-any-p (re list)
@@ -9349,7 +9448,7 @@
                  (let ((org-add-colon-after-tag-completion t))
                    (org-trim
                     (org-without-partial-completion
-                     (completing-read "Tags: " 'org-tags-completion-function
+                     (org-ido-completing-read "Tags: " 
'org-tags-completion-function
                                       nil nil current 'org-tags-history)))))))
        (while (string-match "[-+&]+" tags)
          ;; No boolean logic, just a list
@@ -9392,7 +9491,7 @@
                (if (org-mode-p)
                    (org-get-buffer-tags)
                  (org-global-tags-completion-table))))
-          (completing-read
+          (org-ido-completing-read
            "Tag: " 'org-tags-completion-function nil nil nil
            'org-tags-history))
         (progn
@@ -9603,7 +9702,7 @@
                  (if exit-after-next (setq exit-after-next 'now)))
                 ((= c ?\t)
                  (condition-case nil
-                     (setq tg (completing-read
+                     (setq tg (org-ido-completing-read
                                "Tag: "
                                (or buffer-tags
                                    (with-current-buffer buf
@@ -10239,7 +10338,7 @@
   (interactive
    (let* ((completion-ignore-case t)
          (keys (org-buffer-property-keys nil t t))
-         (prop0 (completing-read "Property: " (mapcar 'list keys)))
+         (prop0 (org-ido-completing-read "Property: " (mapcar 'list keys)))
          (prop (if (member prop0 keys)
                    prop0
                  (or (cdr (assoc (downcase prop0)
@@ -10264,7 +10363,7 @@
   "In the current entry, delete PROPERTY."
   (interactive
    (let* ((completion-ignore-case t)
-         (prop (completing-read
+         (prop (org-ido-completing-read
                 "Property: " (org-entry-properties nil 'standard))))
      (list prop)))
   (message "Property %s %s" property
@@ -10276,7 +10375,7 @@
   "Remove PROPERTY globally, from all entries."
   (interactive
    (let* ((completion-ignore-case t)
-         (prop (completing-read
+         (prop (org-ido-completing-read
                 "Globally remove property: "
                 (mapcar 'list (org-buffer-property-keys)))))
      (list prop)))
@@ -11129,7 +11228,7 @@
   "Convert a time stamp to an absolute day number.
 If there is a specifyer for a cyclic time stamp, get the closest date to
 DAYNR.
-PREFER and SHOW-ALL are passed through to `org-closest-date'."
+PREFER and SHOW_ALL are passed through to `org-closest-date'."
   (cond
    ((and daynr (string-match "\\`%%\\((.*)\\)" s))
     (if (org-diary-sexp-entry (match-string 1 s) "" date)
@@ -11149,8 +11248,8 @@
 (defun org-small-year-to-year (year)
   "Convert 2-digit years into 4-digit years.
 38-99 are mapped into 1938-1999.  1-37 are mapped into 2001-2007.
-The year 2000 cannot be abbreviated.  Any year larger than 99
-is returned unchanged."
+The year 2000 cannot be abbreviated.  Any year lager than 99
+is retrned unchanged."
   (if (< year 38)
       (setq year (+ 2000 year))
     (if (< year 100)
@@ -12574,7 +12673,14 @@
    (t (call-interactively 'org-next-item))))
 
 (defun org-shiftright (&optional arg)
-  "Next TODO keyword or timestamp one day later, depending on context."
+  "Cycle the thing at point or in the current line, depending on context.
+Depending on context, this does one of the following:
+
+- switch a timestamp at point one day into the future
+- on a headline, switch to the next TODO keyword.
+- on an item, switch entire list to the next bullet type
+- on a property line, switch to the next allowed value
+- on a clocktable definition line, move time block into the future"
   (interactive "P")
   (cond
    ((org-at-timestamp-p t) (call-interactively 'org-timestamp-up-day))
@@ -12585,7 +12691,14 @@
    (t (org-shiftcursor-error))))
 
 (defun org-shiftleft (&optional arg)
-  "Previous TODO keyword or timestamp one day earlier, depending on context."
+  "Cycle the thing at point or in the current line, depending on context.
+Depending on context, this does one of the following:
+
+- switch a timestamp at point one day into the past
+- on a headline, switch to the previous TODO keyword.
+- on an item, switch entire list to the previous bullet type
+- on a property line, switch to the previous allowed value
+- on a clocktable definition line, move time block into the past"
   (interactive "P")
   (cond
    ((org-at-timestamp-p t) (call-interactively 'org-timestamp-down-day))
@@ -13845,7 +13958,7 @@
               (goto-char (+ (match-beginning 1) 5))
             (goto-char (match-end 0)))
           (make-string (current-column) ?\ )))
-       ((looking-at "[ \t]*\\([-*+] \\|[0-9]+[.)] \\)?")
+       ((looking-at "[ \t]*\\([-*+] \\|[0-9]+[.)]  ?\\)?")
         (save-excursion
           (goto-char (match-end 0))
           (make-string (current-column) ?\ )))
@@ -14011,6 +14124,7 @@
 \[1] Basically, the test checks if the first non-white line is a heading
     and if there are no other headings with fewer stars."
   (interactive "P")
+  (setq this-command 'yank)
   (if arg
       (call-interactively 'yank)
     (let ((subtreep ; is kill a subtree, and the yank position appropriate?
@@ -14046,9 +14160,12 @@
             "Yanked text not folded because that would swallow text"))
          (goto-char end)
          (skip-chars-forward " \t\n\r")
-         (beginning-of-line 1)))
+         (beginning-of-line 1)
+         (push-mark beg 'nomsg)))
        ((and subtreep org-yank-adjusted-subtrees)
-       (org-paste-subtree nil nil 'for-yank))
+       (let ((beg (point-at-bol)))
+         (org-paste-subtree nil nil 'for-yank)
+         (push-mark beg 'nomsg)))
        (t
        (call-interactively 'yank))))))
   
@@ -14086,7 +14203,13 @@
        (outline-invisible-p)
       (get-char-property (point) 'invisible))))
 
-(defalias 'org-back-to-heading 'outline-back-to-heading)
+(defun org-back-to-heading (&optional invisible-ok)
+  "Call `outline-back-to-heading', but provide a better error message."
+  (condition-case nil
+      (outline-back-to-heading invisible-ok)
+    (error (error "Before first headline at position %d in buffer %s"
+                 (point) (current-buffer)))))
+
 (defalias 'org-on-heading-p 'outline-on-heading-p)
 (defalias 'org-at-heading-p 'outline-on-heading-p)
 (defun org-at-heading-or-item-p ()
@@ -14111,7 +14234,7 @@
   (let ((pos (point)) start-level level
        (re (concat "^" outline-regexp)))
     (catch 'exit
-      (outline-back-to-heading t)
+      (org-back-to-heading t)
       (setq start-level (funcall outline-level))
       (if (equal start-level 1) (throw 'exit nil))
       (while (re-search-backward re nil t)
@@ -14187,7 +14310,7 @@
 Stop at the first and last subheadings of a superior heading.
 This is like outline-forward-same-level, but invisible headings are ok."
   (interactive "p")
-  (outline-back-to-heading t)
+  (org-back-to-heading t)
   (while (> arg 0)
     (let ((point-to-move-to (save-excursion
                              (org-get-next-sibling))))




reply via email to

[Prev in Thread] Current Thread [Next in Thread]