[Top][All Lists]
[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 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))))
- [Emacs-diffs] emacs/lisp/org org-agenda.el org-archive.el org...,
Carsten Dominik <=