* org-latex.el (org-export-as-latex): Add the :drawers property.
2009-11-15 Carsten Dominik <carsten.dominik@gmail.com>
* org.el (org-speed-commands-user): Allow documentation headlines.
(org-speed-commands-default): Organize the value of this constant
with descriptive headlines.
(org-print-speed-command): Output the headlines.
2009-11-15 Carsten Dominik <carsten.dominik@gmail.com>
* org-agenda.el (org-agenda-show-outline-path): New option.
(org-agenda-do-context-action): New function.
(org-agenda-next-line, org-agenda-previous-line): Use
`org-agenda-do-context-action'.
* org.el (org-use-speed-commands): Allow function value.
(org-speed-commands-default): Make headline motion safe, so that
these commands always end on a headline.
(org-speed-commands-default): New key `v' for `org-agenda'.
(org-speed-move-safe): New function.
(org-self-insert-command): Use the function value of
`org-use-speed-commands'.
(org-get-outline-path): Improve docstring.
(org-format-outline-path): New function.
(org-display-outline-path): New function.
2009-11-15 John Wiegley <jwiegley@gmail.com>
* org-clock.el (org-clock-resolve): If `org-clock-into-string' is
a string, use that to find the LOGBOOK drawer.
+2009-11-15 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org-latex.el (org-export-as-latex): Add the :drawers property.
+
+2009-11-15 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.el (org-speed-commands-user): Allow documentation headlines.
+ (org-speed-commands-default): Organize the value of this constant
+ with descriptive headlines.
+ (org-print-speed-command): Output the headlines.
+
+2009-11-15 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org-agenda.el (org-agenda-show-outline-path): New option.
+ (org-agenda-do-context-action): New function.
+ (org-agenda-next-line, org-agenda-previous-line): Use
+ `org-agenda-do-context-action'.
+
+ * org.el (org-use-speed-commands): Allow function value.
+ (org-speed-commands-default): Make headline motion safe, so that
+ these commands always end on a headline.
+ (org-speed-commands-default): New key `v' for `org-agenda'.
+ (org-speed-move-safe): New function.
+ (org-self-insert-command): Use the function value of
+ `org-use-speed-commands'.
+ (org-get-outline-path): Improve docstring.
+ (org-format-outline-path): New function.
+ (org-display-outline-path): New function.
+
+2009-11-15 John Wiegley <jwiegley@gmail.com>
+
+ * org-clock.el (org-clock-resolve): If `org-clock-into-string' is
+ a string, use that to find the LOGBOOK drawer.
+
2009-11-15 Glenn Morris <rgm@gnu.org>
* org-agenda.el (org-datetree-find-date-create)
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
:group 'org-agenda-startup
:type 'boolean)
+(defcustom org-agenda-show-outline-path t
+ "Non-il means, show outline path in echo area after line motion."
+ :group 'org-agenda-startup
+ :type 'boolean)
+
(defcustom org-agenda-start-with-entry-text-mode nil
"The initial value of entry-text-mode in a newly created agenda window."
:group 'org-agenda-startup
"Move cursor to the next line, and show if follow-mode is active."
(interactive)
(call-interactively 'next-line)
- (if (and org-agenda-follow-mode (org-get-at-bol 'org-marker))
- (org-agenda-show)))
+ (org-agenda-do-context-action))
+
(defun org-agenda-previous-line ()
"Move cursor to the previous line, and show if follow-mode is active."
(interactive)
(call-interactively 'previous-line)
- (if (and org-agenda-follow-mode (org-get-at-bol 'org-marker))
- (org-agenda-show)))
+ (org-agenda-do-context-action))
+
+(defun org-agenda-do-context-action ()
+ "Show outline path and, maybe, follow-mode window."
+ (let ((m (org-get-at-bol 'org-marker)))
+ (if (and org-agenda-follow-mode m)
+ (org-agenda-show))
+ (if (and m org-agenda-show-outline-path)
+ (message (org-with-point-at m
+ (org-display-outline-path t))))))
(defun org-agenda-show-priority ()
"Show the priority of the current item.
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: John Wiegley <johnw@newartisans.com>
;; Keywords: org data task
-;; Version: 6.33
+;; Version: 6.33c
;; This file is part of GNU Emacs.
;;
;; Thomas Baumann <thomas dot baumann at ch dot tum dot de>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Bastien Guerry <bzg at altern dot org>
;; Carsten Dominik <carsten dot dominik at gmail dot com>
;; Keywords: org, wp, remember
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
(save-window-excursion
(save-excursion
(unless org-clock-resolving-clocks-due-to-idleness
- (org-with-clock clock
- (org-clock-goto))
+ (org-with-clock clock (org-clock-goto))
(with-current-buffer (marker-buffer (car clock))
(goto-char (car clock))
(if org-clock-into-drawer
- (ignore-errors
- (outline-flag-region (save-excursion
- (outline-back-to-heading t)
- (search-forward ":LOGBOOK:")
- (goto-char (match-beginning 0)))
- (save-excursion
- (outline-back-to-heading t)
- (search-forward ":LOGBOOK:")
- (search-forward ":END:")
- (goto-char (match-end 0)))
- nil)))))
+ (let ((logbook
+ (if (stringp org-clock-into-drawer)
+ (concat ":" org-clock-into-drawer ":")
+ ":LOGBOOK:")))
+ (ignore-errors
+ (outline-flag-region
+ (save-excursion
+ (outline-back-to-heading t)
+ (search-forward logbook)
+ (goto-char (match-beginning 0)))
+ (save-excursion
+ (outline-back-to-heading t)
+ (search-forward logbook)
+ (search-forward ":END:")
+ (goto-char (match-end 0)))
+ nil))))))
(let (char-pressed)
(while (null char-pressed)
(setq char-pressed
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
(require 'org)
(declare-function org-agenda-redo "org-agenda" ())
-(declare-function org-agenda-show "org-agenda" (&optional full-entry))
+(declare-function org-agenda-do-context-action "org-agenda" ())
;;; Column View
(while (and (org-invisible-p2) (not (eobp)))
(beginning-of-line 2))
(move-to-column col)
- (if (and (eq major-mode 'org-agenda-mode)
- (org-bound-and-true-p org-agenda-follow-mode)
- (org-get-at-bol 'org-marker))
- (org-agenda-show)))))
+ (if (eq major-mode 'org-agenda-mode)
+ (org-agenda-do-context-action)))))
(org-defkey org-columns-map [up]
(lambda () (interactive)
(let ((col (current-column)))
(while (and (org-invisible-p2) (not (bobp)))
(beginning-of-line 0))
(move-to-column col)
- (if (and (eq major-mode 'org-agenda-mode)
- (org-bound-and-true-p org-agenda-follow-mode)
- (org-get-at-bol 'org-marker))
- (org-agenda-show)))))
+ (if (eq major-mode 'org-agenda-mode)
+ (org-agenda-do-context-action)))))
(org-defkey org-columns-map [(shift right)] 'org-columns-next-allowed-value)
(org-defkey org-columns-map "n" 'org-columns-next-allowed-value)
(org-defkey org-columns-map [(shift left)] 'org-columns-previous-allowed-value)
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Emacs Lisp Archive Entry
;; Filename: org-crypt.el
-;; Version: 6.33
+;; Version: 6.33c
;; Keywords: org-mode
;; Author: John Wiegley <johnw@gnu.org>
;; Maintainer: Peter Jones <pjones@pmade.com>
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;;
;; Emacs Lisp Archive Entry
;; Filename: org-docbook.el
-;; Version: 6.33
+;; Version: 6.33c
;; Author: Baoqiu Cui <cbaoqiu AT yahoo DOT com>
;; Maintainer: Baoqiu Cui <cbaoqiu AT yahoo DOT com>
;; Keywords: org, wp, docbook
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Lennart Borgman (lennart O borgman A gmail O com)
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Tassilo Horn <tassilo at member dot fsf dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: John Wiegley <johnw at gnu dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;; This file is part of GNU Emacs.
;;
;; Author: Philip Jackson <emacs@shellarchive.co.uk>
;; Keywords: erc, irc, link, org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;;
;; Emacs Lisp Archive Entry
;; Filename: org-latex.el
-;; Version: 6.33
+;; Version: 6.33c
;; Author: Bastien Guerry <bzg AT altern DOT org>
;; Maintainer: Carsten Dominik <carsten.dominik AT gmail DOT com>
;; Keywords: org, wp, tex
:tags (plist-get opt-plist :tags)
:priority (plist-get opt-plist :priority)
:footnotes (plist-get opt-plist :footnotes)
+ :drawers (plist-get opt-plist :drawers)
:timestamps (plist-get opt-plist :timestamps)
:todo-keywords (plist-get opt-plist :todo-keywords)
:add-text (if (eq to-buffer 'string) nil text)
;; Bastien Guerry <bzg AT altern DOT org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: John Wiegley <johnw@gnu.org>
;; Christopher Suckling <suckling at gmail dot com>
-;; Version: 6.33
+;; Version: 6.33c
;; Keywords: outlines, hypermedia, calendar, wp
;; This file is part of GNU Emacs.
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Tokuya Kameshima <kames at fa2 dot so-net dot ne dot jp>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;; This file is part of GNU Emacs.
;; Author: Thomas Baumann <thomas dot baumann at ch dot tum dot de>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;;
;; Author: Piotr Zielinski <piotr dot zielinski at gmail dot com>
;; Maintainer: Carsten Dominik <carsten at orgmode dot org>
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Eric Schulte <schulte dot eric at gmail dot com>
;; Keywords: tables, plotting
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Ross Patterson <me AT rpatterson DOT net>
;; Maintainer: Sebastian Rose <sebastian_rose AT gmx DOT de>
;; Keywords: org, emacsclient, wp
-;; Version: 6.33
+;; Version: 6.33c
;; This file is part of GNU Emacs.
;;
;; Author: David O'Toole <dto@gnu.org>
;; Maintainer: Carsten Dominik <carsten DOT dominik AT gmail DOT com>
;; Keywords: hypermedia, outlines, wp
-;; Version: 6.33
+;; Version: 6.33c
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Dan Davison <davison at stats dot ox dot ac dot uk>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Andy Stewart <lazycat dot manatee at gmail dot com>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Tokuya Kameshima <kames at fa2 dot so-net dot ne dot jp>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 6.33
+;; Version: 6.33c
;;
;; This file is part of GNU Emacs.
;;
;;; Version
-(defconst org-version "6.33"
+(defconst org-version "6.33c"
"The version number of the file org.el.")
(defun org-version (&optional here)
(const :tag "One dedicated frame" dedicated-frame)))
(defcustom org-use-speed-commands nil
- "Non-nil means, activate single letter commands at beginning of a headline."
+ "Non-nil means, activate single letter commands at beginning of a headline.
+This may also be a function to test for appropriate locations where speed
+commands should be active."
:group 'org-structure
- :type 'boolean)
+ :type '(choice
+ (const :tag "Never" nil)
+ (const :tag "At beginning of headline stars" t)
+ (function)))
(defcustom org-speed-commands-user nil
"Alist of additional speed commands.
The car if each entry is a string with a single letter, which must
be assigned to `self-insert-command' in the global map.
The cdr is either a command to be called interactively, a function
-to be called, or a form to be evaluated."
+to be called, or a form to be evaluated.
+An entry that is just a list with a single string will be interpreted
+as a descriptive headline that will be added when listing the speed
+copmmands in the Help buffer using the `?' speed command."
:group 'org-structure
- :type '(repeat
- (cons
- (string "Command letter")
- (choice
- (function)
- (sexp)))))
+ :type '(repeat :value ("k" . ignore)
+ (choice :value ("k" . ignore)
+ (list :tag "Descriptive Headline" (string :tag "Headline"))
+ (cons :tag "Letter and Command"
+ (string :tag "Command letter")
+ (choice
+ (function)
+ (sexp))))))
(defgroup org-cycle nil
"Options concerning visibility cycling in Org-mode."
(declare-function org-gnus-follow-link "org-gnus" (&optional group article))
(defvar org-agenda-tags-todo-honor-ignore-options)
(declare-function org-agenda-skip "org-agenda" ())
-(declare-function org-format-agenda-item "org-agenda"
- (extra txt &optional category tags dotime noprefix remove-re habitp))
+(declare-function
+ org-format-agenda-item "org-agenda"
+ (extra txt &optional category tags dotime noprefix remove-re habitp))
(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))
(defvar org-olpa (make-vector 20 nil))
(defun org-get-outline-path (&optional fastp level heading)
- "Return the outline path to the current entry, as a list."
+ "Return the outline path to the current entry, as a list.
+The parameters FASTP, LEVEL, and HEADING are for use be a scanner
+routine which makes outline path derivations for an entire file,
+avoiding backtracing."
(if fastp
(progn
(if (> level 19)
(push (org-match-string-no-properties 4) rtn)))
rtn))))
+(defun org-format-outline-path (path &optional width prefix)
+ "Format the outlie path PATH for display.
+Width is the maximum number of characters that is available.
+Prefix is a prefix to be included in the returned string,
+such as the file name."
+ (setq width (or width 79))
+ (if prefix (setq width (- width (length prefix))))
+ (if (not path)
+ (or prefix "")
+ (let* ((nsteps (length path))
+ (total-width (+ nsteps (apply '+ (mapcar 'length path))))
+ (maxwidth (if (<= total-width width)
+ 10000 ;; everything fits
+ ;; we need to shorten the level headings
+ (/ (- width nsteps) nsteps)))
+ (org-odd-levels-only nil)
+ (n 0)
+ (total (1+ (length prefix))))
+ (setq maxwidth (max maxwidth 10))
+ (concat prefix
+ (mapconcat
+ (lambda (h)
+ (setq n (1+ n))
+ (if (and (= n nsteps) (< maxwidth 10000))
+ (setq maxwidth (- total-width total)))
+ (if (< (length h) maxwidth)
+ (progn (setq total (+ total (length h) 1)) h)
+ (setq h (substring h 0 (- maxwidth 2))
+ total (+ total maxwidth 1))
+ (if (string-match "[ \t]+\\'" h)
+ (setq h (substring h 0 (match-beginning 0))))
+ (setq h (concat h "..")))
+ (org-add-props h nil 'face
+ (nth (% (1- n) org-n-level-faces)
+ org-level-faces))
+ h)
+ path "/")))))
+
+(defun org-display-outline-path (&optional file current)
+ "Display the current outline path in the echo area."
+ (interactive "P")
+ (let ((bfn (buffer-file-name (buffer-base-buffer)))
+ (path (and (org-mode-p) (org-get-outline-path))))
+ (if current (setq path (append path
+ (save-excursion
+ (org-back-to-heading t)
+ (if (looking-at org-complex-heading-regexp)
+ (list (match-string 4)))))))
+ (message (org-format-outline-path
+ path
+ (1- (frame-width))
+ (and file bfn (concat (file-name-nondirectory bfn) "/"))))))
+
(defvar org-refile-history nil
"History for refiling operations.")
(region-length (and regionp (- region-end region-start)))
(filename (buffer-file-name (buffer-base-buffer cbuf)))
pos it nbuf file re level reversed)
+ (setq last-command nil)
(when regionp
(goto-char region-start)
(or (bolp) (goto-char (point-at-bol)))
(defconst org-speed-commands-default
'(
- ("n" . outline-next-visible-heading)
- ("p" . outline-previous-visible-heading)
- ("f" . org-forward-same-level)
- ("b" . org-backward-same-level)
- ("u" . outline-up-heading)
-
+ ("Outline Navigation")
+ ("n" . (org-speed-move-safe 'outline-next-visible-heading))
+ ("p" . (org-speed-move-safe 'outline-previous-visible-heading))
+ ("f" . (org-speed-move-safe 'org-forward-same-level))
+ ("b" . (org-speed-move-safe 'org-backward-same-level))
+ ("u" . (org-speed-move-safe 'outline-up-heading))
+ ("j" . org-goto)
+ ("g" . (org-refile t))
+ ("Outline Visibility")
("c" . org-cycle)
("C" . org-shifttab)
+ (" " . org-display-outline-path)
+ ("Outline Structure Editing")
("U" . org-shiftmetaup)
("D" . org-shiftmetadown)
("r" . org-metaright)
("L" . org-shiftmetaleft)
("i" . (progn (forward-char 1) (call-interactively
'org-insert-heading-respect-content)))
-
- ("a" . org-agenda)
- ("/" . org-sparse-tree)
- (";" . org-set-tags-command)
+ ("^" . org-sort)
+ ("w" . org-refile)
+ ("a" . org-archive-subtree-default-with-confirmation)
+ ("." . outline-mark-subtree)
+ ("Clock Commands")
("I" . org-clock-in)
("O" . org-clock-out)
- ("o" . org-open-at-point)
+ ("Meta Data Editing")
("t" . org-todo)
- ("j" . org-goto)
- ("g" . (org-refile t))
- ("e" . org-set-effort)
("0" . (org-priority ?\ ))
("1" . (org-priority ?A))
("2" . (org-priority ?B))
("3" . (org-priority ?C))
- ("." . outline-mark-subtree)
- ("^" . org-sort)
- ("w" . org-refile)
- ("a" . org-archive-subtree-default-with-confirmation)
+ (";" . org-set-tags-command)
+ ("e" . org-set-effort)
+ ("Agenda Views etc")
+ ("v" . org-agenda)
+ ("/" . org-sparse-tree)
("/" . org-sparse-tree)
+ ("Misc")
+ ("o" . org-open-at-point)
("?" . org-speed-command-help)
)
"The default speed commands.")
(defun org-print-speed-command (e)
- (princ (car e))
- (princ " ")
- (if (symbolp (cdr e))
- (princ (symbol-name (cdr e)))
- (prin1 (cdr e)))
- (princ "\n"))
+ (if (> (length (car e)) 1)
+ (progn
+ (princ "\n")
+ (princ (car e))
+ (princ "\n")
+ (princ (make-string (length (car e)) ?-))
+ (princ "\n"))
+ (princ (car e))
+ (princ " ")
+ (if (symbolp (cdr e))
+ (princ (symbol-name (cdr e)))
+ (prin1 (cdr e)))
+ (princ "\n")))
(defun org-speed-command-help ()
"Show the available speed commands."
(if (not org-use-speed-commands)
(error "Speed commands are not activated, customize `org-use-speed-commands'.")
(with-output-to-temp-buffer "*Help*"
- (princ "Speed commands\n==============\n")
+ (princ "User-defined Speed commands\n===========================\n")
(mapc 'org-print-speed-command org-speed-commands-user)
(princ "\n")
- (mapc 'org-print-speed-command org-speed-commands-default))))
+ (princ "Built-in Speed commands\n=======================\n")
+ (mapc 'org-print-speed-command org-speed-commands-default))
+ (with-current-buffer "*Help*"
+ (setq truncate-lines t))))
+
+(defun org-speed-move-safe (cmd)
+ "Execute CMD, but make sure that the cursor always ends up in a headline.
+If not, return to the original position and throw an error."
+ (interactive)
+ (let ((pos (point)))
+ (call-interactively cmd)
+ (unless (and (bolp) (org-on-heading-p))
+ (goto-char pos)
+ (error "Boundary reached while executing %s" cmd))))
(defvar org-self-insert-command-undo-counter 0)
(interactive "p")
(cond
((and org-use-speed-commands
- (bolp)
- (looking-at outline-regexp)
+ (or (and (bolp) (looking-at outline-regexp))
+ (and (functionp org-use-speed-commands)
+ (funcall org-use-speed-commands)))
(setq
org-speed-command
(or (cdr (assoc (this-command-keys) org-speed-commands-user))
http://orgmode.org/manual/Feedback.html#Feedback
Your bug report will be posted to the Org-mode mailing list.
-------------------------------------------------------------------------")))
+------------------------------------------------------------------------")
+ (save-excursion
+ (if (re-search-backward "^\\(Subject: \\)Org-mode version \\(.*?\\);[ \t]*\\(.*\\)" nil t)
+ (replace-match "\\1Bug: \\3 [\\2]")))))
+
(defun org-install-agenda-files-menu ()
(let ((bl (buffer-list)))