annotate lisp/textmodes/org.el @ 75010:a2d63e852326

*** empty log message ***
author Jan Djärv <jan.h.d@swipnet.se>
date Sun, 31 Dec 2006 18:31:49 +0000
parents eacca73d1bee
children e3694f1cb928 bc10a33dd40b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
1 ;;; org.el --- Outline-based notes management and organize
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
2 ;; Carstens outline-mode for keeping track of everything.
68648
067115a6e738 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 68480
diff changeset
3 ;; Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc.
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
4 ;;
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5 ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6 ;; Keywords: outlines, hypermedia, calendar, wp
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
74784
eacca73d1bee (org-mode-map): Bind org-complete also to M-\t.
Carsten Dominik <dominik@science.uva.nl>
parents: 74727
diff changeset
8 ;; Version: 4.56e
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9 ;;
58794
7cae75ad3466 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 58792
diff changeset
10 ;; This file is part of GNU Emacs.
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
11 ;;
58794
7cae75ad3466 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 58792
diff changeset
12 ;; GNU Emacs is free software; you can redistribute it and/or modify
7cae75ad3466 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 58792
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
7cae75ad3466 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 58792
diff changeset
14 ;; the Free Software Foundation; either version 2, or (at your option)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 ;; any later version.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16
58794
7cae75ad3466 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 58792
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
7cae75ad3466 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 58792
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
7cae75ad3466 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 58792
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7cae75ad3466 Comment changes.
Richard M. Stallman <rms@gnu.org>
parents: 58792
diff changeset
20 ;; GNU General Public License for more details.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23 ;; along with GNU Emacs; see the file COPYING. If not, write to the
65638
e274642bf5d5 Update FSF street address; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 65583
diff changeset
24 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
e274642bf5d5 Update FSF street address; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 65583
diff changeset
25 ;; Boston, MA 02110-1301, USA.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27 ;;
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28 ;;; Commentary:
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
29 ;;
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 ;; Org-mode is a mode for keeping notes, maintaining ToDo lists, and doing
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31 ;; project planning with a fast and effective plain-text system.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 ;;
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
33 ;; Org-mode develops organizational tasks around NOTES files that contain
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
34 ;; information about projects as plain text. Org-mode is implemented on
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
35 ;; top of outline-mode, which makes it possible to keep the content of
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
36 ;; large files well structured. Visibility cycling and structure editing
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
37 ;; help to work with the tree. Tables are easily created with a built-in
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
38 ;; table editor. Org-mode supports ToDo items, deadlines, time stamps,
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
39 ;; and scheduling. It dynamically compiles entries into an agenda that
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
40 ;; utilizes and smoothly integrates much of the Emacs calendar and diary.
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
41 ;; Plain text URL-like links connect to websites, emails, Usenet
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
42 ;; messages, BBDB entries, and any files related to the projects. For
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
43 ;; printing and sharing of notes, an Org-mode file can be exported as a
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
44 ;; structured ASCII file, as HTML, or (todo and agenda items only) as an
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
45 ;; iCalendar file. It can also serve as a publishing tool for a set of
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
46 ;; linked webpages.
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
47 ;;
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
48 ;; Installation and Activation
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
49 ;; ---------------------------
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
50 ;; See the corresponding sections in the manual at
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
51 ;;
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
52 ;; http://staff.science.uva.nl/~dominik/Tools/org/org.html#Installation
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 ;;
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 ;; Documentation
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 ;; -------------
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
56 ;; The documentation of Org-mode can be found in the TeXInfo file. The
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
57 ;; distribution also contains a PDF version of it. At the homepage of
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
58 ;; Org-mode, you can read the same text online as HTML. There is also an
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
59 ;; excellent reference card made by Philip Rooke. This card can be found
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
60 ;; in the etc/ directory of Emacs 22.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 ;;
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
62 ;; Recent changes
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
63 ;; --------------
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
64 ;; Version 4.56
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
65 ;; - `C-k' in agenda kills current line and corresponding subtree in file.
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
66 ;; - XEmacs compatibility issues fixed, in particular tag alignment.
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
67 ;; - M-left/right now in/outdents plain list items, no Shift needed.
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
68 ;; - Bug fixes.
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
69 ;;
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
70 ;; Version 4.55
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
71 ;; - Bug fixes.
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
72 ;;
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
73 ;; Version 4.54
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
74 ;; - Improvements to fast tag selection
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
75 ;; + show status also in target line.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
76 ;; + option to auto-exit after first change to tags list (see manual).
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
77 ;; - Tags sparse trees now also respect the settings in
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
78 ;; `org-show-hierarchy-above' and `org-show-following-heading'.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
79 ;; - Bug fixes.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
80 ;;
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
81 ;; Version 4.53
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
82 ;; - Custom time formats can be overlayed over time stamps.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
83 ;; - New option `org-agenda-todo-ignore-deadlines'.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
84 ;; - Work-around for flyspell bug (CVS Emacs has this fixed in flyspell.el).
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
85 ;; - Work-around for session.el problem with circular data structures.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
86 ;; - Bug fixes.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
87 ;;
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
88 ;; Version 4.52
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
89 ;; - TAG matches can also specify conditions on TODO keywords.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
90 ;; - The fast tag interface allows setting tags that are not in the
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
91 ;; predefined list.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
92 ;; - Bug fixes.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
93 ;;
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
94 ;; Version 4.51
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
95 ;; - Link abbreviations (manual section 4.5).
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
96 ;; - More control over how agenda is displayed. See the new variables
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
97 ;; `org-agenda-window-setup', `org-agenda-restore-windows-after-quit'.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
98 ;; - Bug fixes.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
99 ;;
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
100 ;;; Code:
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
102 (eval-when-compile
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
103 (require 'cl)
74294
8e3a950f7e9c (require): Require gnus-sum during compilation
Carsten Dominik <dominik@science.uva.nl>
parents: 74039
diff changeset
104 (require 'gnus-sum)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
105 (require 'calendar))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
106 ;; For XEmacs, noutline is not yet provided by outline.el, so arrange for
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
107 ;; the file noutline.el being loaded.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
108 (if (featurep 'xemacs) (condition-case nil (require 'noutline)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
109 ;; We require noutline, which might be provided in outline.el
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
110 (require 'outline) (require 'noutline)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
111 ;; Other stuff we need.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
112 (require 'time-date)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
113 (require 'easymenu)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
114
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
115 ;;; Customization variables
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
116
74784
eacca73d1bee (org-mode-map): Bind org-complete also to M-\t.
Carsten Dominik <dominik@science.uva.nl>
parents: 74727
diff changeset
117 (defvar org-version "4.56e"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118 "The version number of the file org.el.")
59596
8e7a2f6f9fa7 (org-version): Unnecessary prefix arg removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 59547
diff changeset
119 (defun org-version ()
8e7a2f6f9fa7 (org-version): Unnecessary prefix arg removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 59547
diff changeset
120 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
121 (message "Org-mode version %s" org-version))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
122
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
123 ;; Compatibility constants
70161
b9e09a4a2168 (org-mode-map): Catch conflict with old allout.el.
Carsten Dominik <dominik@science.uva.nl>
parents: 70136
diff changeset
124 (defconst org-xemacs-p (featurep 'xemacs)) ; not used by org.el itself
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
125 (defconst org-format-transports-properties-p
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
126 (let ((x "a"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
127 (add-text-properties 0 1 '(test t) x)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
128 (get-text-property 0 'test (format "%s" x)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
129 "Does format transport text properties?")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
130
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
131 (defgroup org nil
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
132 "Outline-based notes management and organizer."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
133 :tag "Org"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
134 :group 'outlines
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
135 :group 'hypermedia
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
136 :group 'calendar)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
137
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
138 (defgroup org-startup nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
139 "Options concerning startup of Org-mode."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
140 :tag "Org Startup"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
141 :group 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
142
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
143 (defcustom org-startup-folded t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
144 "Non-nil means, entering Org-mode will switch to OVERVIEW.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
145 This can also be configured on a per-file basis by adding one of
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
146 the following lines anywhere in the buffer:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
147
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
148 #+STARTUP: fold
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
149 #+STARTUP: nofold
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
150 #+STARTUP: content"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
151 :group 'org-startup
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
152 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
153 (const :tag "nofold: show all" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
154 (const :tag "fold: overview" t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
155 (const :tag "content: all headlines" content)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
156
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
157 (defcustom org-startup-truncated t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
158 "Non-nil means, entering Org-mode will set `truncate-lines'.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
159 This is useful since some lines containing links can be very long and
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
160 uninteresting. Also tables look terrible when wrapped."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
161 :group 'org-startup
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
162 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
163
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
164 (defcustom org-startup-align-all-tables nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
165 "Non-nil means, align all tables when visiting a file.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
166 This is useful when the column width in tables is forced with <N> cookies
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
167 in table fields. Such tables will look correct only after the first re-align.
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
168 This can also be configured on a per-file basis by adding one of
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
169 the following lines anywhere in the buffer:
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
170 #+STARTUP: align
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
171 #+STARTUP: noalign"
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
172 :group 'org-startup
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
173 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
174
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
175 (defcustom org-startup-with-deadline-check nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
176 "Non-nil means, entering Org-mode will run the deadline check.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
177 This means, if you start editing an org file, you will get an
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
178 immediate reminder of any due deadlines.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
179 This can also be configured on a per-file basis by adding one of
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
180 the following lines anywhere in the buffer:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
181 #+STARTUP: dlcheck
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
182 #+STARTUP: nodlcheck"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
183 :group 'org-startup
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
184 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
185
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
186 (defcustom org-insert-mode-line-in-empty-file nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
187 "Non-nil means insert the first line setting Org-mode in empty files.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
188 When the function `org-mode' is called interactively in an empty file, this
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
189 normally means that the file name does not automatically trigger Org-mode.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
190 To ensure that the file will always be in Org-mode in the future, a
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
191 line enforcing Org-mode will be inserted into the buffer, if this option
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
192 has been set."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
193 :group 'org-startup
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
194 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
195
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
196 (defcustom org-CUA-compatible nil
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
197 "Non-nil means use alternative key bindings for S-<cursor movement>.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
198 Org-mode used S-<cursor movement> for changing timestamps and priorities.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
199 S-<cursor movement> is also used for example by `CUA-mode' to select text.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
200 If you want to use Org-mode together with `CUA-mode', Org-mode needs to use
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
201 alternative bindings. Setting this variable to t will replace the following
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
202 keys both in Org-mode and in the Org-agenda buffer.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
203
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
204 S-RET -> C-S-RET
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
205 S-up -> M-p
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
206 S-down -> M-n
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
207 S-left -> M--
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
208 S-right -> M-+
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
209
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
210 If you do not like the alternative keys, take a look at the variable
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
211 `org-disputed-keys'.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
212
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
213 This option is only relevant at load-time of Org-mode. Changing it requires
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
214 a restart of Emacs to become effective."
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
215 :group 'org-startup
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
216 :type 'boolean)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
217
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
218 (defvar org-disputed-keys
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
219 '((S-up [(shift up)] [(meta ?p)])
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
220 (S-down [(shift down)] [(meta ?n)])
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
221 (S-left [(shift left)] [(meta ?-)])
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
222 (S-right [(shift right)] [(meta ?+)])
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
223 (S-return [(shift return)] [(control shift return)]))
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
224 "Keys for which Org-mode and other modes compete.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
225 This is an alist, cars are symbols for lookup, 1st element is the default key,
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
226 second element will be used when `org-CUA-compatible' is t.")
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
227
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
228 (defun org-key (key)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
229 "Select a key according to `org-CUA-compatible'."
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
230 (nth (if org-CUA-compatible 2 1)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
231 (or (assq key org-disputed-keys)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
232 (error "Invalid Key %s in `org-key'" key))))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
233
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
234 (defcustom org-ellipsis nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
235 "The ellipsis to use in the Org-mode outline.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
236 When nil, just use the standard three dots. When a string, use that instead,
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
237 and just in Org-mode (which will then use its own display table).
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
238 Changing this requires executing `M-x org-mode' in a buffer to become
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
239 effective."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
240 :group 'org-startup
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
241 :type '(choice (const :tag "Default" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
242 (string :tag "String" :value "...#")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
243
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
244 (defvar org-display-table nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
245 "The display table for org-mode, in case `org-ellipsis' is non-nil.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
246
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
247 (defgroup org-keywords nil
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
248 "Keywords in Org-mode."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
249 :tag "Org Keywords"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
250 :group 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
251
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
252 (defcustom org-deadline-string "DEADLINE:"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
253 "String to mark deadline entries.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
254 A deadline is this string, followed by a time stamp. Should be a word,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
255 terminated by a colon. You can insert a schedule keyword and
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
256 a timestamp with \\[org-deadline].
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
257 Changes become only effective after restarting Emacs."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
258 :group 'org-keywords
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
259 :type 'string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
260
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
261 (defcustom org-scheduled-string "SCHEDULED:"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
262 "String to mark scheduled TODO entries.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
263 A schedule is this string, followed by a time stamp. Should be a word,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
264 terminated by a colon. You can insert a schedule keyword and
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
265 a timestamp with \\[org-schedule].
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
266 Changes become only effective after restarting Emacs."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
267 :group 'org-keywords
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
268 :type 'string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
269
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
270 (defcustom org-closed-string "CLOSED:"
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
271 "String used as the prefix for timestamps logging closing a TODO entry."
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
272 :group 'org-keywords
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
273 :type 'string)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
274
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
275 (defcustom org-clock-string "CLOCK:"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
276 "String used as prefix for timestamps clocking work hours on an item."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
277 :group 'org-keywords
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
278 :type 'string)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
279
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
280 (defcustom org-comment-string "COMMENT"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
281 "Entries starting with this keyword will never be exported.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
282 An entry can be toggled between COMMENT and normal with
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
283 \\[org-toggle-comment].
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
284 Changes become only effective after restarting Emacs."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
285 :group 'org-keywords
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
286 :type 'string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
287
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
288 (defcustom org-quote-string "QUOTE"
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
289 "Entries starting with this keyword will be exported in fixed-width font.
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
290 Quoting applies only to the text in the entry following the headline, and does
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
291 not extend beyond the next headline, even if that is lower level.
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
292 An entry can be toggled between QUOTE and normal with
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
293 \\[org-toggle-fixed-width-section]."
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
294 :group 'org-keywords
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
295 :type 'string)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
296
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
297 (defgroup org-structure nil
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
298 "Options concerning the general structure of Org-mode files."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
299 :tag "Org Structure"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
300 :group 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
301
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
302 (defgroup org-cycle nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
303 "Options concerning visibility cycling in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
304 :tag "Org Cycle"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
305 :group 'org-structure)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
306
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
307 (defcustom org-cycle-global-at-bob t
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
308 "Cycle globally if cursor is at beginning of buffer and not at a headline.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
309 This makes it possible to do global cycling without having to use S-TAB or
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
310 C-u TAB. For this special case to work, the first line of the buffer
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
311 must not be a headline - it may be empty ot some other text. When used in
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
312 this way, `org-cycle-hook' is disables temporarily, to make sure the
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
313 cursor stays at the beginning of the buffer.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
314 When this option is nil, don't do anything special at the beginning
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
315 of the buffer."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
316 :group 'org-cycle
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
317 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
318
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
319 (defcustom org-cycle-emulate-tab t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
320 "Where should `org-cycle' emulate TAB.
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
321 nil Never
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
322 white Only in completely white lines
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
323 whitestart Only at the beginning of lines, before the first non-white char.
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
324 t Everywhere except in headlines
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
325 If TAB is used in a place where it does not emulate TAB, the current subtree
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
326 visibility is cycled."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
327 :group 'org-cycle
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
328 :type '(choice (const :tag "Never" nil)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
329 (const :tag "Only in completely white lines" white)
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
330 (const :tag "Before first char in a line" whitestart)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
331 (const :tag "Everywhere except in headlines" t)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
332 ))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
333
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
334 (defcustom org-cycle-hook '(org-cycle-hide-archived-subtrees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
335 org-optimize-window-after-visibility-change)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
336 "Hook that is run after `org-cycle' has changed the buffer visibility.
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
337 The function(s) in this hook must accept a single argument which indicates
62076
4f2150e05f24 (org-get-entries-from-diary): Remove unused vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 61924
diff changeset
338 the new state that was set by the most recent `org-cycle' command. The
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
339 argument is a symbol. After a global state change, it can have the values
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
340 `overview', `content', or `all'. After a local state change, it can have
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
341 the values `folded', `children', or `subtree'."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
342 :group 'org-cycle
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
343 :type 'hook)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
344
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
345 (defgroup org-edit-structure nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
346 "Options concerning structure editing in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
347 :tag "Org Edit Structure"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
348 :group 'org-structure)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
349
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
350 (defcustom org-odd-levels-only nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
351 "Non-nil means, skip even levels and only use odd levels for the outline.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
352 This has the effect that two stars are being added/taken away in
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
353 promotion/demotion commands. It also influences how levels are
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
354 handled by the exporters.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
355 Changing it requires restart of `font-lock-mode' to become effective
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
356 for fontification also in regions already fontified.
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
357 You may also set this on a per-file basis by adding one of the following
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
358 lines to the buffer:
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
359
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
360 #+STARTUP: odd
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
361 #+STARTUP: oddeven"
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
362 :group 'org-edit-structure
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
363 :group 'org-font-lock
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
364 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
365
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
366 (defcustom org-adapt-indentation t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
367 "Non-nil means, adapt indentation when promoting and demoting.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
368 When this is set and the *entire* text in an entry is indented, the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
369 indentation is increased by one space in a demotion command, and
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
370 decreased by one in a promotion command. If any line in the entry
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
371 body starts at column 0, indentation is not changed at all."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
372 :group 'org-edit-structure
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
373 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
374
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
375 (defcustom org-blank-before-new-entry '((heading . nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
376 (plain-list-item . nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
377 "Should `org-insert-heading' leave a blank line before new heading/item?
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
378 The value is an alist, with `heading' and `plain-list-item' as car,
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
379 and a boolean flag as cdr."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
380 :group 'org-edit-structure
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
381 :type '(list
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
382 (cons (const heading) (boolean))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
383 (cons (const plain-list-item) (boolean))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
384
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
385 (defcustom org-insert-heading-hook nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
386 "Hook being run after inserting a new heading."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
387 :group 'org-edit-structure
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
388 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
389
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
390 (defcustom org-enable-fixed-width-editor t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
391 "Non-nil means, lines starting with \":\" are treated as fixed-width.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
392 This currently only means, they are never auto-wrapped.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
393 When nil, such lines will be treated like ordinary lines.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
394 See also the QUOTE keyword."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
395 :group 'org-edit-structure
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
396 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
397
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
398 (defgroup org-sparse-trees nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
399 "Options concerning sparse trees in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
400 :tag "Org Sparse Trees"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
401 :group 'org-structure)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
402
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
403 (defcustom org-highlight-sparse-tree-matches t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
404 "Non-nil means, highlight all matches that define a sparse tree.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
405 The highlights will automatically disappear the next time the buffer is
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
406 changed by an edit command."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
407 :group 'org-sparse-trees
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
408 :type 'boolean)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
409
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
410 (defcustom org-remove-highlights-with-change t
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
411 "Non-nil means, any change to the buffer will remove temporary highlights.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
412 Such highlights are created by `org-occur' and `org-clock-display'.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
413 When nil, `C-c C-c needs to be used to get rid of the highlights.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
414 The highlights created by `org-preview-latex-fragment' always need
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
415 `C-c C-c' to be removed."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
416 :group 'org-sparse-trees
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
417 :group 'org-time
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
418 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
419
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
420 (defcustom org-show-hierarchy-above '((default . t))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
421 "Non-nil means, show full hierarchy when showing a spot in the tree.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
422 Turning this off makes sparse trees more compact, but also less clear.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
423 Instead of t, this can also be an alist specifying this option for different
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
424 contexts. Valid contexts are
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
425 agenda when exposing an entry from the agenda
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
426 org-goto when using the command `org-goto' on key C-c C-j
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
427 occur-tree when using the command `org-occur' on key C-c /
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
428 tags-tree when constructing a sparse tree based on tags matches
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
429 link-search when exposing search matches associated with a link
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
430 mark-goto when exposing the jump goal of a mark
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
431 bookmark-jump when exposing a bookmark location
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
432 default default for all contexts not set explicitly"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
433 :group 'org-sparse-trees
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
434 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
435 (const :tag "Always" t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
436 (const :tag "Never" nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
437 (repeat :greedy t :tag "Individual contexts"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
438 (cons
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
439 (choice :tag "Context"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
440 (const agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
441 (const org-goto)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
442 (const occur-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
443 (const tags-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
444 (const link-search)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
445 (const mark-goto)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
446 (const bookmark-jump)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
447 (const default))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
448 (boolean)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
449
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
450 (defcustom org-show-following-heading '((default . t))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
451 "Non-nil means, show heading following match in `org-occur'.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
452 When doing an `org-occur' it is useful to show the headline which
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
453 follows the match, even if they do not match the regexp. This makes it
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
454 easier to edit directly inside the sparse tree. However, if you use
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
455 `org-occur' mainly as an overview, the following headlines are
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
456 unnecessary clutter.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
457 Instead of t, this can also be an alist specifying this option for different
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
458 contexts. See `org-show-hierarchy-above' for valid contexts."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
459 :group 'org-sparse-trees
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
460 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
461 (const :tag "Always" t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
462 (const :tag "Never" nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
463 (repeat :greedy t :tag "Individual contexts"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
464 (cons
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
465 (choice :tag "Context"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
466 (const agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
467 (const org-goto)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
468 (const occur-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
469 (const tags-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
470 (const link-search)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
471 (const mark-goto)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
472 (const bookmark-jump)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
473 (const default))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
474 (boolean)))))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
475
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
476 (defcustom org-occur-hook '(org-first-headline-recenter)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
477 "Hook that is run after `org-occur' has constructed a sparse tree.
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
478 This can be used to recenter the window to show as much of the structure
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
479 as possible."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
480 :group 'org-sparse-trees
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
481 :type 'hook)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
482
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
483 (defgroup org-plain-lists nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
484 "Options concerning plain lists in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
485 :tag "Org Plain lists"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
486 :group 'org-structure)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
487
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
488 (defcustom org-cycle-include-plain-lists nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
489 "Non-nil means, include plain lists into visibility cycling.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
490 This means that during cycling, plain list items will *temporarily* be
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
491 interpreted as outline headlines with a level given by 1000+i where i is the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
492 indentation of the bullet. In all other operations, plain list items are
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
493 not seen as headlines. For example, you cannot assign a TODO keyword to
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
494 such an item."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
495 :group 'org-plain-lists
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
496 :type 'boolean)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
497
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
498 (defcustom org-plain-list-ordered-item-terminator t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
499 "The character that makes a line with leading number an ordered list item.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
500 Valid values are ?. and ?\). To get both terminators, use t. While
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
501 ?. may look nicer, it creates the danger that a line with leading
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
502 number may be incorrectly interpreted as an item. ?\) therefore is
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
503 the safe choice."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
504 :group 'org-plain-lists
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
505 :type '(choice (const :tag "dot like in \"2.\"" ?.)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
506 (const :tag "paren like in \"2)\"" ?\))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
507 (const :tab "both" t)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
508
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
509 (defcustom org-auto-renumber-ordered-lists t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
510 "Non-nil means, automatically renumber ordered plain lists.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
511 Renumbering happens when the sequence have been changed with
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
512 \\[org-shiftmetaup] or \\[org-shiftmetadown]. After other editing commands,
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
513 use \\[org-ctrl-c-ctrl-c] to trigger renumbering."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
514 :group 'org-plain-lists
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
515 :type 'boolean)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
516
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
517 (defcustom org-provide-checkbox-statistics t
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
518 "Non-nil means, update checkbox statistics after insert and toggle.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
519 When this is set, checkbox statistics is updated each time you either insert
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
520 a new checkbox with \\[org-insert-todo-heading] or toggle a checkbox
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
521 with \\[org-ctrl-c-ctrl-c\\]."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
522 :group 'org
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
523 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
524
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
525 (defgroup org-archive nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
526 "Options concerning archiving in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
527 :tag "Org Archive"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
528 :group 'org-structure)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
529
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
530 (defcustom org-archive-tag "ARCHIVE"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
531 "The tag that marks a subtree as archived.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
532 An archived subtree does not open during visibility cycling, and does
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
533 not contribute to the agenda listings."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
534 :group 'org-archive
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
535 :group 'org-keywords
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
536 :type 'string)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
537
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
538 (defcustom org-agenda-skip-archived-trees t
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
539 "Non-nil means, the agenda will skip any items located in archived trees.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
540 An archived tree is a tree marked with the tag ARCHIVE."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
541 :group 'org-archive
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
542 :group 'org-agenda-display
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
543 :type 'boolean)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
544
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
545 (defcustom org-cycle-open-archived-trees nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
546 "Non-nil means, `org-cycle' will open archived trees.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
547 An archived tree is a tree marked with the tag ARCHIVE.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
548 When nil, archived trees will stay folded. You can still open them with
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
549 normal outline commands like `show-all', but not with the cycling commands."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
550 :group 'org-archive
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
551 :group 'org-cycle
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
552 :type 'boolean)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
553
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
554 (defcustom org-sparse-tree-open-archived-trees nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
555 "Non-nil means sparse tree construction shows matches in archived trees.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
556 When nil, matches in these trees are highlighted, but the trees are kept in
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
557 collapsed state."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
558 :group 'org-archive
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
559 :group 'org-sparse-trees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
560 :type 'boolean)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
561
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
562 (defcustom org-archive-location "%s_archive::"
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
563 "The location where subtrees should be archived.
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
564 This string consists of two parts, separated by a double-colon.
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
565
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
566 The first part is a file name - when omitted, archiving happens in the same
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
567 file. %s will be replaced by the current file name (without directory part).
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
568 Archiving to a different file is useful to keep archived entries from
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
569 contributing to the Org-mode Agenda.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
570
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
571 The part after the double colon is a headline. The archived entries will be
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
572 filed under that headline. When omitted, the subtrees are simply filed away
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
573 at the end of the file, as top-level entries.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
574
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
575 Here are a few examples:
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
576 \"%s_archive::\"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
577 If the current file is Projects.org, archive in file
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
578 Projects.org_archive, as top-level trees. This is the default.
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
579
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
580 \"::* Archived Tasks\"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
581 Archive in the current file, under the top-level headline
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
582 \"* Archived Tasks\".
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
583
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
584 \"~/org/archive.org::\"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
585 Archive in file ~/org/archive.org (absolute path), as top-level trees.
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
586
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
587 \"basement::** Finished Tasks\"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
588 Archive in file ./basement (relative path), as level 3 trees
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
589 below the level 2 heading \"** Finished Tasks\".
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
590
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
591 You may set this option on a per-file basis by adding to the buffer a
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
592 line like
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
593
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
594 #+ARCHIVE: basement::** Finished Tasks"
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
595 :group 'org-archive
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
596 :type 'string)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
597
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
598 (defcustom org-archive-mark-done t
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
599 "Non-nil means, mark entries as DONE when they are moved to the archive file."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
600 :group 'org-archive
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
601 :type 'boolean)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
602
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
603 (defcustom org-archive-stamp-time t
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
604 "Non-nil means, add a time stamp to entries moved to an archive file.
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
605 The time stamp will be added directly after the TODO state keyword in the
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
606 first line, so it is probably best to use this in combinations with
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
607 `org-archive-mark-done'."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
608 :group 'org-archive
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
609 :type 'boolean)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
610
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
611 (defgroup org-table nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
612 "Options concerning tables in Org-mode."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
613 :tag "Org Table"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
614 :group 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
615
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
616 (defcustom org-enable-table-editor 'optimized
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
617 "Non-nil means, lines starting with \"|\" are handled by the table editor.
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
618 When nil, such lines will be treated like ordinary lines.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
619
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
620 When equal to the symbol `optimized', the table editor will be optimized to
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
621 do the following:
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
622 - Automatic overwrite mode in front of whitespace in table fields.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
623 This makes the structure of the table stay in tact as long as the edited
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
624 field does not exceed the column width.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
625 - Minimize the number of realigns. Normally, the table is aligned each time
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
626 TAB or RET are pressed to move to another field. With optimization this
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
627 happens only if changes to a field might have changed the column width.
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
628 Optimization requires replacing the functions `self-insert-command',
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
629 `delete-char', and `backward-delete-char' in Org-mode buffers, with a
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
630 slight (in fact: unnoticeable) speed impact for normal typing. Org-mode is
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
631 very good at guessing when a re-align will be necessary, but you can always
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
632 force one with \\[org-ctrl-c-ctrl-c].
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
633
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
634 If you would like to use the optimized version in Org-mode, but the
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
635 un-optimized version in OrgTbl-mode, see the variable `orgtbl-optimized'.
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
636
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
637 This variable can be used to turn on and off the table editor during a session,
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
638 but in order to toggle optimization, a restart is required.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
639
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
640 See also the variable `org-table-auto-blank-field'."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
641 :group 'org-table
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
642 :type '(choice
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
643 (const :tag "off" nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
644 (const :tag "on" t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
645 (const :tag "on, optimized" optimized)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
646
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
647 (defcustom orgtbl-optimized (eq org-enable-table-editor 'optimized)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
648 "Non-nil means, use the optimized table editor version for `orgtbl-mode'.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
649 In the optimized version, the table editor takes over all simple keys that
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
650 normally just insert a character. In tables, the characters are inserted
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
651 in a way to minimize disturbing the table structure (i.e. in overwrite mode
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
652 for empty fields). Outside tables, the correct binding of the keys is
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
653 restored.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
654
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
655 The default for this option is t if the optimized version is also used in
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
656 Org-mode. See the variable `org-enable-table-editor' for details. Changing
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
657 this variable requires a restart of Emacs to become effective."
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
658 :group 'org-table
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
659 :type 'boolean)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
660
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
661 (defgroup org-table-settings nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
662 "Settings for tables in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
663 :tag "Org Table Settings"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
664 :group 'org-table)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
665
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
666 (defcustom org-table-default-size "5x2"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
667 "The default size for newly created tables, Columns x Rows."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
668 :group 'org-table-settings
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
669 :type 'string)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
670
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
671 (defcustom org-table-number-regexp
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
672 "^\\([<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*\\|\\(0[xX]\\)?[0-9a-fA-F]+\\)$"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
673 "Regular expression for recognizing numbers in table columns.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
674 If a table column contains mostly numbers, it will be aligned to the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
675 right. If not, it will be aligned to the left.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
676
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
677 The default value of this option is a regular expression which allows
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
678 anything which looks remotely like a number as used in scientific
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
679 context. For example, all of the following will be considered a
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
680 number:
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
681 12 12.2 2.4e-08 2x10^12 4.034+-0.02 2.7(10) >3.5
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
682
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
683 Other options offered by the customize interface are more restrictive."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
684 :group 'org-table-settings
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
685 :type '(choice
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
686 (const :tag "Positive Integers"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
687 "^[0-9]+$")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
688 (const :tag "Integers"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
689 "^[-+]?[0-9]+$")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
690 (const :tag "Floating Point Numbers"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
691 "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.[0-9]*\\)$")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
692 (const :tag "Floating Point Number or Integer"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
693 "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.?[0-9]*\\)$")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
694 (const :tag "Exponential, Floating point, Integer"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
695 "^[-+]?[0-9.]+\\([eEdD][-+0-9]+\\)?$")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
696 (const :tag "Very General Number-Like, including hex"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
697 "^\\([<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*\\|\\(0[xX]\\)?[0-9a-fA-F]+\\)$")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
698 (string :tag "Regexp:")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
699
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
700 (defcustom org-table-number-fraction 0.5
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
701 "Fraction of numbers in a column required to make the column align right.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
702 In a column all non-white fields are considered. If at least this
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
703 fraction of fields is matched by `org-table-number-fraction',
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
704 alignment to the right border applies."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
705 :group 'org-table-settings
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
706 :type 'number)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
707
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
708 (defgroup org-table-editing nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
709 "Bahavior of tables during editing in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
710 :tag "Org Table Editing"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
711 :group 'org-table)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
712
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
713 (defcustom org-table-automatic-realign t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
714 "Non-nil means, automatically re-align table when pressing TAB or RETURN.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
715 When nil, aligning is only done with \\[org-table-align], or after column
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
716 removal/insertion."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
717 :group 'org-table-editing
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
718 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
719
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
720 (defcustom org-table-limit-column-width t ;kw
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
721 "Non-nil means, allow to limit the width of table columns with <N> fields."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
722 :group 'org-table-editing
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
723 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
724
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
725 (defcustom org-table-auto-blank-field t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
726 "Non-nil means, automatically blank table field when starting to type into it.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
727 This only happens when typing immediately after a field motion
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
728 command (TAB, S-TAB or RET).
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
729 Only relevant when `org-enable-table-editor' is equal to `optimized'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
730 :group 'org-table-editing
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
731 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
732
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
733 (defcustom org-table-tab-jumps-over-hlines t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
734 "Non-nil means, tab in the last column of a table with jump over a hline.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
735 If a horizontal separator line is following the current line,
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
736 `org-table-next-field' can either create a new row before that line, or jump
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
737 over the line. When this option is nil, a new line will be created before
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
738 this line."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
739 :group 'org-table-editing
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
740 :type 'boolean)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
741
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
742 (defcustom org-table-tab-recognizes-table.el t
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
743 "Non-nil means, TAB will automatically notice a table.el table.
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
744 When it sees such a table, it moves point into it and - if necessary -
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
745 calls `table-recognize-table'."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
746 :group 'org-table-editing
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
747 :type 'boolean)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
748
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
749 (defgroup org-table-calculation nil
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
750 "Options concerning tables in Org-mode."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
751 :tag "Org Table Calculation"
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
752 :group 'org-table)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
753
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
754 (defcustom org-table-copy-increment t
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
755 "Non-nil means, increment when copying current field with \\[org-table-copy-down]."
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
756 :group 'org-table-calculation
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
757 :type 'boolean)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
758
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
759 (defcustom org-calc-default-modes
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
760 '(calc-internal-prec 12
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
761 calc-float-format (float 5)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
762 calc-angle-mode deg
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
763 calc-prefer-frac nil
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
764 calc-symbolic-mode nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
765 calc-date-format (YYYY "-" MM "-" DD " " Www (" " HH ":" mm))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
766 calc-display-working-message t
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
767 )
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
768 "List with Calc mode settings for use in calc-eval for table formulas.
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
769 The list must contain alternating symbols (Calc modes variables and values).
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
770 Don't remove any of the default settings, just change the values. Org-mode
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
771 relies on the variables to be present in the list."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
772 :group 'org-table-calculation
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
773 :type 'plist)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
774
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
775 (defcustom org-table-formula-evaluate-inline t
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
776 "Non-nil means, TAB and RET evaluate a formula in current table field.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
777 If the current field starts with an equal sign, it is assumed to be a formula
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
778 which should be evaluated as described in the manual and in the documentation
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
779 string of the command `org-table-eval-formula'. This feature requires the
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
780 Emacs calc package.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
781 When this variable is nil, formula calculation is only available through
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
782 the command \\[org-table-eval-formula]."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
783 :group 'org-table-calculation
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
784 :type 'boolean)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
785
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
786
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
787 (defcustom org-table-formula-use-constants t
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
788 "Non-nil means, interpret constants in formulas in tables.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
789 A constant looks like `$c' or `$Grav' and will be replaced before evaluation
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
790 by the value given in `org-table-formula-constants', or by a value obtained
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
791 from the `constants.el' package."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
792 :group 'org-table-calculation
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
793 :type 'boolean)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
794
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
795 (defcustom org-table-formula-constants nil
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
796 "Alist with constant names and values, for use in table formulas.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
797 The car of each element is a name of a constant, without the `$' before it.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
798 The cdr is the value as a string. For example, if you'd like to use the
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
799 speed of light in a formula, you would configure
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
800
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
801 (setq org-table-formula-constants '((\"c\" . \"299792458.\")))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
802
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
803 and then use it in an equation like `$1*$c'."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
804 :group 'org-table-calculation
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
805 :type '(repeat
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
806 (cons (string :tag "name")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
807 (string :tag "value"))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
808
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
809 (defcustom org-table-formula-numbers-only nil
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
810 "Non-nil means, calculate only with numbers in table formulas.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
811 Then all input fields will be converted to a number, and the result
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
812 must also be a number. When nil, calc's full potential is available
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
813 in table calculations, including symbolics etc."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
814 :group 'org-table-calculation
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
815 :type 'boolean)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
816
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
817 (defcustom org-table-allow-automatic-line-recalculation t
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
818 "Non-nil means, lines marked with |#| or |*| will be recomputed automatically.
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
819 Automatically means, when TAB or RET or C-c C-c are pressed in the line."
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
820 :group 'org-table-calculation
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
821 :type 'boolean)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
822
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
823 (defgroup org-link nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
824 "Options concerning links in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
825 :tag "Org Link"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
826 :group 'org)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
827
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
828 (defvar org-link-abbrev-alist-local nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
829 "buffer-local version of `org-link-abbrev-alist', which see.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
830 The value of this is taken from the #+LINK lines.")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
831 (make-variable-buffer-local 'org-link-abbrev-alist-local)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
832
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
833 (defcustom org-link-abbrev-alist nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
834 "Alist of link abbreviations.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
835 The car of each element is a string, to be replaced at the start of a link.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
836 The cdrs are replacement values, like (\"linkkey\" . REPLACE). Abbreviated
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
837 links in Org-mode buffers can have an optional tag after a double colon, e.g.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
838
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
839 [[linkkey::tag][description]]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
840
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
841 If REPLACE is a string, the tag will simply be appended to create the link.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
842 If the string contains \"%s\", the tag will be inserted there. REPLACE may
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
843 also be a function that will be called with the tag as the only argument to
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
844 create the link. See the manual for examples."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
845 :group 'org-link
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
846 :type 'alist)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
847
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
848 (defcustom org-descriptive-links t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
849 "Non-nil means, hide link part and only show description of bracket links.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
850 Bracket links are like [[link][descritpion]]. This variable sets the initial
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
851 state in new org-mode buffers. The setting can then be toggled on a
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
852 per-buffer basis from the Org->Hyperlinks menu."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
853 :group 'org-link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
854 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
855
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
856 (defcustom org-link-style 'bracket
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
857 "The style of links to be inserted with \\[org-insert-link].
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
858 Possible values are:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
859 bracket [[link][description]]. This is recommended
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
860 plain Description \\n link. The old way, no longer recommended."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
861 :group 'org-link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
862 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
863 (const :tag "Bracket (recommended)" bracket)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
864 (const :tag "Plain (no longer recommended)" plain)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
865
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
866 (defcustom org-link-format "%s"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
867 "Default format for external, URL-like linkes in the buffer.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
868 This is a format string for printf, %s will be replaced by the link text.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
869 The recommended value is just \"%s\", since links will be protected by
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
870 enclosing them in double brackets. If you prefer plain links (see variable
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
871 `org-link-style'), \"<%s>\" is useful. Some people also recommend an
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
872 additional URL: prefix, so the format would be \"<URL:%s>\"."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
873 :group 'org-link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
874 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
875 (const :tag "\"%s\" (e.g. http://www.there.com)" "%s")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
876 (const :tag "\"<%s>\" (e.g. <http://www.there.com>)" "<%s>")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
877 (const :tag "\"<URL:%s>\" (e.g. <URL:http://www.there.com>)" "<URL:%s>")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
878 (string :tag "Other" :value "<%s>")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
879
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
880 (defcustom org-link-file-path-type 'adaptive
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
881 "How the path name in file links should be stored.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
882 Valid values are:
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
883
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
884 relative relative to the current directory, i.e. the directory of the file
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
885 into which the link is being inserted.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
886 absolute absolute path, if possible with ~ for home directory.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
887 noabbrev absolute path, no abbreviation of home directory.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
888 adaptive Use relative path for files in the current directory and sub-
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
889 directories of it. For other files, use an absolute path."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
890 :group 'org-link
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
891 :type '(choice
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
892 (const relative)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
893 (const absolute)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
894 (const noabbrev)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
895 (const adaptive)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
896
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
897 (defcustom org-activate-links '(bracket angle plain radio tag date)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
898 "Types of links that should be activated in Org-mode files.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
899 This is a list of symbols, each leading to the activation of a certain link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
900 type. In principle, it does not hurt to turn on most link types - there may
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
901 be a small gain when turning off unused link types. The types are:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
902
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
903 bracket The recommended [[link][description]] or [[link]] links with hiding.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
904 angular Links in angular brackes that may contain whitespace like
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
905 <bbdb:Carsten Dominik>.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
906 plain Plain links in normal text, no whitespace, like http://google.com.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
907 radio Text that is matched by a radio target, see manual for details.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
908 tag Tag settings in a headline (link to tag search).
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
909 date Time stamps (link to calendar).
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
910 camel CamelCase words defining text searches.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
911
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
912 Changing this variable requires a restart of Emacs to become effective."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
913 :group 'org-link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
914 :type '(set (const :tag "Double bracket links (new style)" bracket)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
915 (const :tag "Angular bracket links (old style)" angular)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
916 (const :tag "plain text links" plain)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
917 (const :tag "Radio target matches" radio)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
918 (const :tag "Tags" tag)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
919 (const :tag "Timestamps" date)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
920 (const :tag "CamelCase words" camel)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
921
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
922 (defgroup org-link-store nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
923 "Options concerning storing links in Org-mode"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
924 :tag "Org Store Link"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
925 :group 'org-link)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
926
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
927 (defcustom org-context-in-file-links t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
928 "Non-nil means, file links from `org-store-link' contain context.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
929 A search string will be added to the file name with :: as separator and
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
930 used to find the context when the link is activated by the command
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
931 `org-open-at-point'.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
932 Using a prefix arg to the command \\[org-store-link] (`org-store-link')
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
933 negates this setting for the duration of the command."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
934 :group 'org-link-store
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
935 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
936
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
937 (defcustom org-file-link-context-use-camel-case nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
938 "Non-nil means, use CamelCase to store a search context in a file link.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
939 When nil, the search string simply consists of the words of the string.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
940 CamelCase is deprecated, and support for it may be dropped in the future."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
941 :group 'org-link-store
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
942 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
943
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
944 (defcustom org-keep-stored-link-after-insertion nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
945 "Non-nil means, keep link in list for entire session.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
946
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
947 The command `org-store-link' adds a link pointing to the current
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
948 location to an internal list. These links accumulate during a session.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
949 The command `org-insert-link' can be used to insert links into any
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
950 Org-mode file (offering completion for all stored links). When this
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
951 option is nil, every link which has been inserted once using \\[org-insert-link]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
952 will be removed from the list, to make completing the unused links
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
953 more efficient."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
954 :group 'org-link-store
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
955 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
956
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
957 (defcustom org-usenet-links-prefer-google nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
958 "Non-nil means, `org-store-link' will create web links to Google groups.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
959 When nil, Gnus will be used for such links.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
960 Using a prefix arg to the command \\[org-store-link] (`org-store-link')
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
961 negates this setting for the duration of the command."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
962 :group 'org-link-store
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
963 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
964
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
965 (defgroup org-link-follow nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
966 "Options concerning following links in Org-mode"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
967 :tag "Org Follow Link"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
968 :group 'org-link)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
969
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
970 (defcustom org-tab-follows-link nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
971 "Non-nil means, on links TAB will follow the link.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
972 Needs to be set before org.el is loaded."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
973 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
974 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
975
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
976 (defcustom org-return-follows-link nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
977 "Non-nil means, on links RET will follow the link.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
978 Needs to be set before org.el is loaded."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
979 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
980 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
981
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
982 (defcustom org-mouse-1-follows-link t
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
983 "Non-nil means, mouse-1 on a link will follow the link.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
984 A longer mouse click will still set point. Does not wortk on XEmacs.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
985 Needs to be set before org.el is loaded."
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
986 :group 'org-link-follow
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
987 :type 'boolean)
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
988
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
989 (defcustom org-mark-ring-length 4
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
990 "Number of different positions to be recorded in the ring
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
991 Changing this requires a restart of Emacs to work correctly."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
992 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
993 :type 'interger)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
994
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
995 (defcustom org-link-frame-setup
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
996 '((vm . vm-visit-folder-other-frame)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
997 (gnus . gnus-other-frame)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
998 (file . find-file-other-window))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
999 "Setup the frame configuration for following links.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1000 When following a link with Emacs, it may often be useful to display
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1001 this link in another window or frame. This variable can be used to
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1002 set this up for the different types of links.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1003 For VM, use any of
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1004 `vm-visit-folder'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1005 `vm-visit-folder-other-frame'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1006 For Gnus, use any of
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1007 `gnus'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1008 `gnus-other-frame'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1009 For FILE, use any of
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1010 `find-file'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1011 `find-file-other-window'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1012 `find-file-other-frame'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1013 For the calendar, use the variable `calendar-setup'.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1014 For BBDB, it is currently only possible to display the matches in
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1015 another window."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1016 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1017 :type '(list
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1018 (cons (const vm)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1019 (choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1020 (const vm-visit-folder)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1021 (const vm-visit-folder-other-window)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1022 (const vm-visit-folder-other-frame)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1023 (cons (const gnus)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1024 (choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1025 (const gnus)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1026 (const gnus-other-frame)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1027 (cons (const file)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1028 (choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1029 (const find-file)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1030 (const find-file-other-window)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1031 (const find-file-other-frame)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1032
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1033 (defcustom org-display-internal-link-with-indirect-buffer nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1034 "Non-nil means, use indirect buffer to display infile links.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1035 Activating internal links (from one location in a file to another location
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1036 in the same file) normally just jumps to the location. When the link is
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1037 activated with a C-u prefix (or with mouse-3), the link is displayed in
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1038 another window. When this option is set, the other window actually displays
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1039 an indirect buffer clone of the current buffer, to avoid any visibility
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1040 changes to the current buffer."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1041 :group 'org-link-follow
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1042 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1043
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1044
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1045 (defcustom org-open-non-existing-files nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1046 "Non-nil means, `org-open-file' will open non-existing file.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1047 When nil, an error will be generated."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1048 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1049 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1050
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1051 (defcustom org-link-mailto-program '(browse-url "mailto:%a?subject=%s")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1052 "Function and arguments to call for following mailto links.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1053 This is a list with the first element being a lisp function, and the
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1054 remaining elements being arguments to the function. In string arguments,
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1055 %a will be replaced by the address, and %s will be replaced by the subject
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1056 if one was given like in <mailto:arthur@galaxy.org::this subject>."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1057 :group 'org-link-follow
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1058 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1059 (const :tag "browse-url" (browse-url-mail "mailto:%a?subject=%s"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1060 (const :tag "compose-mail" (compose-mail "%a" "%s"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1061 (const :tag "message-mail" (message-mail "%a" "%s"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1062 (cons :tag "other" (function) (repeat :tag "argument" sexp))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1063
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1064 (defcustom org-confirm-shell-link-function 'yes-or-no-p
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1065 "Non-nil means, ask for confirmation before executing shell links.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1066 Shell links can be dangerous, just thing about a link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1067
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1068 [[shell:rm -rf ~/*][Google Search]]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1069
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1070 This link would show up in your Org-mode document as \"Google Search\"
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1071 but really it would remove your entire home directory.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1072 Therefore I *definitely* advise against setting this variable to nil.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1073 Just change it to `y-or-n-p' of you want to confirm with a single key press
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1074 rather than having to type \"yes\"."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1075 :group 'org-link-follow
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1076 :type '(choice
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1077 (const :tag "with yes-or-no (safer)" yes-or-no-p)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1078 (const :tag "with y-or-n (faster)" y-or-n-p)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1079 (const :tag "no confirmation (dangerous)" nil)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1080
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1081 (defcustom org-confirm-elisp-link-function 'yes-or-no-p
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1082 "Non-nil means, ask for confirmation before executing elisp links.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1083 Elisp links can be dangerous, just think about a link
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1084
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1085 [[elisp:(shell-command \"rm -rf ~/*\")][Google Search]]
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1086
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1087 This link would show up in your Org-mode document as \"Google Search\"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1088 but really it would remove your entire home directory.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1089 Therefore I *definitely* advise against setting this variable to nil.
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1090 Just change it to `y-or-n-p' of you want to confirm with a single key press
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1091 rather than having to type \"yes\"."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1092 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1093 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1094 (const :tag "with yes-or-no (safer)" yes-or-no-p)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1095 (const :tag "with y-or-n (faster)" y-or-n-p)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1096 (const :tag "no confirmation (dangerous)" nil)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1097
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1098 (defconst org-file-apps-defaults-gnu
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1099 '((remote . emacs)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1100 (t . mailcap))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1101 "Default file applications on a UNIX or GNU/Linux system.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1102 See `org-file-apps'.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1103
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1104 (defconst org-file-apps-defaults-macosx
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1105 '((remote . emacs)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1106 (t . "open %s")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1107 ("ps" . "gv %s")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1108 ("ps.gz" . "gv %s")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1109 ("eps" . "gv %s")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1110 ("eps.gz" . "gv %s")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1111 ("dvi" . "xdvi %s")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1112 ("fig" . "xfig %s"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1113 "Default file applications on a MacOS X system.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1114 The system \"open\" is known as a default, but we use X11 applications
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1115 for some files for which the OS does not have a good default.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1116 See `org-file-apps'.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1117
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1118 (defconst org-file-apps-defaults-windowsnt
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
1119 (list
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1120 '(remote . emacs)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1121 (cons t
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1122 (list (if (featurep 'xemacs)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1123 'mswindows-shell-execute
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1124 'w32-shell-execute)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1125 "open" 'file)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1126 "Default file applications on a Windows NT system.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1127 The system \"open\" is used for most files.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1128 See `org-file-apps'.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1129
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1130 (defcustom org-file-apps
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1131 '(
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1132 ("txt" . emacs)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1133 ("tex" . emacs)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1134 ("ltx" . emacs)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1135 ("org" . emacs)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1136 ("el" . emacs)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1137 ("bib" . emacs)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1138 )
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1139 "External applications for opening `file:path' items in a document.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1140 Org-mode uses system defaults for different file types, but
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1141 you can use this variable to set the application for a given file
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1142 extension. The entries in this list are cons cells where the car identifies
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1143 files and the cdr the corresponding command. Possible values for the
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1144 file identifier are
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1145 \"ext\" A string identifying an extension
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1146 `directory' Matches a directory
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
1147 `remote' Matches a remote file, accessible through tramp or efs.
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
1148 Remote files most likely should be visited through Emacs
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1149 because external applications cannot handle such paths.
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1150 t Default for all remaining files
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1151
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1152 Possible values for the command are:
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1153 `emacs' The file will be visited by the current Emacs process.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1154 `default' Use the default application for this file type.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1155 string A command to be executed by a shell; %s will be replaced
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1156 by the path to the file.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1157 sexp A Lisp form which will be evaluated. The file path will
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1158 be available in the Lisp variable `file'.
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1159 For more examples, see the system specific constants
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1160 `org-file-apps-defaults-macosx'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1161 `org-file-apps-defaults-windowsnt'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1162 `org-file-apps-defaults-gnu'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1163 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1164 :type '(repeat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1165 (cons (choice :value ""
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1166 (string :tag "Extension")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1167 (const :tag "Default for unrecognized files" t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1168 (const :tag "Remote file" remote)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1169 (const :tag "Links to a directory" directory))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1170 (choice :value ""
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1171 (const :tag "Visit with Emacs" emacs)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1172 (const :tag "Use system default" default)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1173 (string :tag "Command")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1174 (sexp :tag "Lisp form")))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1175
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1176 (defcustom org-mhe-search-all-folders nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1177 "Non-nil means, that the search for the mh-message will be extended to
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1178 all folders if the message cannot be found in the folder given in the link.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1179 Searching all folders is very effective with one of the search engines
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1180 supported by MH-E, but will be slow with pick."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1181 :group 'org-link-follow
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1182 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1183
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1184 (defgroup org-remember nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1185 "Options concerning interaction with remember.el."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1186 :tag "Org Remember"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1187 :group 'org)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1188
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1189 (defcustom org-directory "~/org"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1190 "Directory with org files.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1191 This directory will be used as default to prompt for org files.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1192 Used by the hooks for remember.el."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1193 :group 'org-remember
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1194 :type 'directory)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1195
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1196 (defcustom org-default-notes-file "~/.notes"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1197 "Default target for storing notes.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1198 Used by the hooks for remember.el. This can be a string, or nil to mean
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1199 the value of `remember-data-file'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1200 :group 'org-remember
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1201 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1202 (const :tag "Default from remember-data-file" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1203 file))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1204
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1205 (defcustom org-remember-templates nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1206 "Templates for the creation of remember buffers.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1207 When nil, just let remember make the buffer.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1208 When not nil, this is a list of 3-element lists. In each entry, the first
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1209 element is a character, a unique key to select this template.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1210 The second element is the template. The third element is optional and can
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1211 specify a destination file for remember items created with this template.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1212 The default file is given by `org-default-notes-file'.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1213
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1214 The template specifies the structure of the remember buffer. It should have
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1215 a first line starting with a star, to act as the org-mode headline.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1216 Furthermore, the following %-escapes will be replaced with content:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1217 %t time stamp, date only
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1218 %T time stamp with date and time
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1219 %u inactive time stamp, date only
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1220 %U inactive time stamp with date and time
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1221 %n user name
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1222 %a annotation, normally the link created with org-store-link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1223 %i initial content, the region when remember is called with C-u.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1224 If %i is indented, the entire inserted text will be indented as well.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1225 %? This will be removed, and the cursor placed at this position."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1226 :group 'org-remember
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1227 :type '(repeat :tag "enabled"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1228 (list :value (?a "\n" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1229 (character :tag "Selection Key")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1230 (string :tag "Template")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1231 (file :tag "Destination file (optional)"))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1232
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1233 (defcustom org-reverse-note-order nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1234 "Non-nil means, store new notes at the beginning of a file or entry.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1235 When nil, new notes will be filed to the end of a file or entry."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1236 :group 'org-remember
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1237 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1238 (const :tag "Reverse always" t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1239 (const :tag "Reverse never" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1240 (repeat :tag "By file name regexp"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1241 (cons regexp boolean))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1242
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1243 (defgroup org-todo nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1244 "Options concerning TODO items in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1245 :tag "Org TODO"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1246 :group 'org)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1247
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1248 (defcustom org-todo-keywords '("TODO" "DONE")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1249 "List of TODO entry keywords.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1250 \\<org-mode-map>By default, this is '(\"TODO\" \"DONE\"). The last entry in the list is
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1251 considered to mean that the entry is \"done\". All the other mean that
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1252 action is required, and will make the entry show up in todo lists, diaries
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1253 etc.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1254 The command \\[org-todo] cycles an entry through these states, and an
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1255 additional state where no keyword is present. For details about this
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1256 cycling, see also the variable `org-todo-interpretation'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1257 Changes become only effective after restarting Emacs."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1258 :group 'org-todo
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1259 :group 'org-keywords
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1260 :type '(repeat (string :tag "Keyword")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1261
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1262 (defcustom org-todo-interpretation 'sequence
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1263 "Controls how TODO keywords are interpreted.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1264 This variable is only relevant if `org-todo-keywords' contains more than two
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1265 states. \\<org-mode-map>Possible values are `sequence' and `type'.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1266
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1267 When `sequence', \\[org-todo] will always switch to the next state in the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1268 `org-todo-keywords' list. When `type', \\[org-todo] only cycles from state
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1269 to state when executed several times in direct succession. Otherwise, it
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1270 switches directly to DONE from any state.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1271 See the manual for more information."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1272 :group 'org-todo
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1273 :group 'org-keywords
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1274 :type '(choice (const sequence)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1275 (const type)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1276
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1277 (defcustom org-after-todo-state-change-hook nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1278 "Hook which is run after the state of a TODO item was changed.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1279 The new state (a string with a TODO keyword, or nil) is available in the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1280 Lisp variable `state'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1281 :group 'org-todo
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1282 :type 'hook)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1283
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1284 (defcustom org-log-done nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1285 "When set, insert a (non-active) time stamp when TODO entry is marked DONE.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1286 When the state of an entry is changed from nothing to TODO, remove a previous
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1287 closing date.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1288
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1289 This can also be a list of symbols indicating under which conditions
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1290 the time stamp recording the action should be annotated with a short note.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1291 Valid members of this list are
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1292
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1293 done Offer to record a note when marking entries done
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1294 clock-out Offer to record a note when clocking out of an item.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1295
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1296 A separate window will then pop up and allow you to type a note.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1297 After finishing with C-c C-c, the note will be added directly after the
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1298 timestamp, as a plain list item. See also the variable
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1299 `org-log-note-headings'.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1300
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1301 Logging can also be configured on a per-file basis by adding one of
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1302 the following lines anywhere in the buffer:
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1303
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1304 #+STARTUP: logging
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1305 #+STARTUP: nologging"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1306 ;; FIXME: in-buffer words for notes???????
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1307 :group 'org-todo
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1308 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1309 (const :tag "off" nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1310 (const :tag "on" t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1311 (set :tag "on, with notes" :greedy t :value (done)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1312 (const done) (const clock-out))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1313
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1314 (defcustom org-log-note-headings '((done . "CLOSING NOTE") (clock-out . ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1315 "Headings for notes added when clocking out or closing TODO items.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1316 The value is an alist, with the car being a sympol indicating the note
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1317 context, and the cdr is the heading to be used. The heading may also be the
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1318 empty string."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1319 :group 'org-todo
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1320 :type '(list :greedy t
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1321 (cons (const :tag "Heading when closing an item" done) string)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1322 (cons (const :tag "Heading when clocking out" clock-out) string)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1323
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1324 (defgroup org-priorities nil
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
1325 "Priorities in Org-mode."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1326 :tag "Org Priorities"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1327 :group 'org-todo)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1328
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1329 (defcustom org-default-priority ?B
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1330 "The default priority of TODO items.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1331 This is the priority an item get if no explicit priority is given."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1332 :group 'org-priorities
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1333 :type 'character)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1334
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1335 (defcustom org-lowest-priority ?C
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1336 "The lowest priority of TODO items. A character like ?A, ?B etc."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1337 :group 'org-priorities
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1338 :type 'character)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1339
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1340 (defgroup org-time nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1341 "Options concerning time stamps and deadlines in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1342 :tag "Org Time"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1343 :group 'org)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1344
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1345 (defcustom org-insert-labeled-timestamps-at-point nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1346 "Non-nil means, SCHEDULED and DEADLINE timestamps are inserted at point.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1347 When nil, these labeled time stamps are forces into the second line of an
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1348 entry, just after the headline. When scheduling from the global TODO list,
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1349 the time stamp will always be forced into the second line."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1350 :group 'org-time
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1351 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1352
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1353 (defconst org-time-stamp-formats '("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1354 "Formats for `format-time-string' which are used for time stamps.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1355 It is not recommended to change this constant.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1356
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1357 (defcustom org-time-stamp-rounding-minutes 0
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1358 "Number of minutes to round time stamps to upon insertion.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1359 When zero, insert the time unmodified. Useful rounding numbers
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1360 should be factors of 60, so for example 5, 10, 15.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1361 When this is not zero, you can still force an exact time-stamp by using
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1362 a double prefix argument to a time-stamp command like `C-c .' or `C-c !'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1363 :group 'org-time
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1364 :type 'integer)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1365
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1366 (defcustom org-display-custom-times nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1367 "Non-nil means, overlay custom formats over all time stamps.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1368 The formats are defined through the variable `org-time-stamp-custom-formats'.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1369 To turn this on on a per-file basis, insert anywhere in the file:
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1370 #+STARTUP: customtime"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1371 :group 'org-time
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1372 :set 'set-default
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1373 :type 'sexp)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1374 (make-variable-buffer-local 'org-display-custom-times)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1375
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1376 (defcustom org-time-stamp-custom-formats
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1377 '("<%m/%d/%y %a>" . "<%m/%d/%y %a %H:%M>") ; american
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1378 "Custom formats for time stamps. See `format-time-string' for the syntax.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1379 These are overlayed over the default ISO format if the variable
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1380 `org-display-custom-times' is set."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1381 :group 'org-time
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1382 :type 'sexp)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1383
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1384 (defcustom org-deadline-warning-days 30
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1385 "No. of days before expiration during which a deadline becomes active.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1386 This variable governs the display in sparse trees and in the agenda."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1387 :group 'org-time
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1388 :type 'number)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1389
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1390 (defcustom org-popup-calendar-for-date-prompt t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1391 "Non-nil means, pop up a calendar when prompting for a date.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1392 In the calendar, the date can be selected with mouse-1. However, the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1393 minibuffer will also be active, and you can simply enter the date as well.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1394 When nil, only the minibuffer will be available."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1395 :group 'org-time
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1396 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1397
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1398 (defcustom org-calendar-follow-timestamp-change t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1399 "Non-nil means, make the calendar window follow timestamp changes.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1400 When a timestamp is modified and the calendar window is visible, it will be
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1401 moved to the new date."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1402 :group 'org-time
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1403 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1404
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1405 (defgroup org-tags nil
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
1406 "Options concerning tags in Org-mode."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1407 :tag "Org Tags"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1408 :group 'org)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1409
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1410 (defcustom org-tag-alist nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1411 "List of tags allowed in Org-mode files.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1412 When this list is nil, Org-mode will base TAG input on what is already in the
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1413 buffer.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1414 The value of this variable is an alist, the car may be (and should) be a
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1415 character that is used to select that tag through the fast-tag-selection
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1416 interface. See the manual for details."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1417 :group 'org-tags
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1418 :type '(repeat
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
1419 (choice
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
1420 (cons (string :tag "Tag name")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
1421 (character :tag "Access char"))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
1422 (const :tag "Start radio group" (:startgroup))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
1423 (const :tag "End radio group" (:endgroup)))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1424
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1425 (defcustom org-use-fast-tag-selection 'auto
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1426 "Non-nil means, use fast tag selection scheme.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1427 This is a special interface to select and deselect tags with single keys.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1428 When nil, fast selection is never used.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1429 When the symbol `auto', fast selection is used if and only if selection
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1430 characters for tags have been configured, either through the variable
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1431 `org-tag-alist' or through a #+TAGS line in the buffer.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1432 When t, fast selection is always used and selection keys are assigned
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1433 automatically if necessary."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1434 :group 'org-tags
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1435 :type '(choice
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1436 (const :tag "Always" t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1437 (const :tag "Never" nil)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1438 (const :tag "When selection characters are configured" 'auto)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1439
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1440 (defcustom org-fast-tag-selection-single-key nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1441 "Non-nil means, fast tag selection exits after first change.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1442 When nil, you have to press RET to exit it.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1443 During fast tag selection, you can toggle this flag with `C-c'."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1444 :group 'org-tags
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1445 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1446
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1447 (defcustom org-tags-column 48
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1448 "The column to which tags should be indented in a headline.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1449 If this number is positive, it specifies the column. If it is negative,
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1450 it means that the tags should be flushright to that column. For example,
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1451 -79 works well for a normal 80 character screen."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1452 :group 'org-tags
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1453 :type 'integer)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1454
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1455 (defcustom org-auto-align-tags t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1456 "Non-nil means, realign tags after pro/demotion of TODO state change.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1457 These operations change the length of a headline and therefore shift
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1458 the tags around. With this options turned on, after each such operation
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1459 the tags are again aligned to `org-tags-column'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1460 :group 'org-tags
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1461 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1462
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1463 (defcustom org-use-tag-inheritance t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1464 "Non-nil means, tags in levels apply also for sublevels.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1465 When nil, only the tags directly given in a specific line apply there.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1466 If you turn off this option, you very likely want to turn on the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1467 companion option `org-tags-match-list-sublevels'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1468 :group 'org-tags
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1469 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1470
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1471 (defcustom org-tags-match-list-sublevels nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1472 "Non-nil means list also sublevels of headlines matching tag search.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1473 Because of tag inheritance (see variable `org-use-tag-inheritance'),
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1474 the sublevels of a headline matching a tag search often also match
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1475 the same search. Listing all of them can create very long lists.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1476 Setting this variable to nil causes subtrees of a match to be skipped.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1477 This option is off by default, because inheritance in on. If you turn
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1478 inheritance off, you very likely want to turn this option on.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1479
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1480 As a special case, if the tag search is restricted to TODO items, the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1481 value of this variable is ignored and sublevels are always checked, to
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1482 make sure all corresponding TODO items find their way into the list."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1483 :group 'org-tags
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1484 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1485
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1486 (defvar org-tags-history nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1487 "History of minibuffer reads for tags.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1488 (defvar org-last-tags-completion-table nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1489 "The last used completion table for tags.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1490
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1491 (defgroup org-agenda nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1492 "Options concerning agenda display Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1493 :tag "Org Agenda"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1494 :group 'org)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1495
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1496 (defvar org-category nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1497 "Variable used by org files to set a category for agenda display.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1498 Such files should use a file variable to set it, for example
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1499
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1500 -*- mode: org; org-category: \"ELisp\"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1501
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1502 or contain a special line
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1503
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1504 #+CATEGORY: ELisp
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1505
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1506 If the file does not specify a category, then file's base name
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1507 is used instead.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1508 (make-variable-buffer-local 'org-category)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1509
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1510 (defcustom org-agenda-files nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1511 "The files to be used for agenda display.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1512 Entries may be added to this list with \\[org-agenda-file-to-front] and removed with
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1513 \\[org-remove-file]. You can also use customize to edit the list.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1514
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1515 If the value of the variable is not a list but a single file name, then
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1516 the list of agenda files is actually stored and maintained in that file, one
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1517 agenda file per line."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1518 :group 'org-agenda
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1519 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1520 (repeat :tag "List of files" file)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1521 (file :tag "Store list in a file\n" :value "~/.agenda_files")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1522
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1523 (defcustom org-agenda-custom-commands ;'(("w" todo "WAITING"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1524 '(("w" todo "WAITING" ((aaa 1) (bbb 2))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1525 "Custom commands for the agenda.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1526 These commands will be offered on the splash screen displayed by the
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1527 agenda dispatcher \\[org-agenda]. Each entry is a list like this:
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1528
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1529 (key type match options)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1530
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1531 key The key (a single char as a string) to be associated with the command.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1532 type The command type, any of the following symbols:
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1533 todo Entries with a specific TODO keyword, in all agenda files.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1534 tags Tags match in all agenda files.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1535 tags-todo Tags match in all agenda files, TODO entries only.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1536 todo-tree Sparse tree of specific TODO keyword in *current* file.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1537 tags-tree Sparse tree with all tags matches in *current* file.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1538 occur-tree Occur sparse tree for *current* file.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1539 match What to search for:
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1540 - a single keyword for TODO keyword searches
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1541 - a tags match expression for tags searches
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1542 - a regular expression for occur searches
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1543 options A list of option setttings, similar to that in a let form, so like
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1544 this: ((opt1 val1) (opt2 val2) ...)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1545
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1546 You can also define a set of commands, to create a composite agenda buffer.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1547 In this case, an entry looks like this:
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1548
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1549 (key desc (cmd1 cmd2 ...) general-options)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1550
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1551 where
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1552
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1553 desc A description string to be displayed in the dispatcher menu.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1554 cmd An agenda command, similar to the above. However, tree commands
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1555 are no allowed, but instead you can get agenda and global todo list.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1556 So valid commands for a set are:
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1557 (agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1558 (alltodo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1559 (todo \"match\" options)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1560 (tags \"match\" options )
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1561 (tags-todo \"match\" options)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1562
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1563 Each command can carry a list of options, and another set of options can be
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1564 given for the whole set of commands. Individual command options take
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1565 precedence over the general options."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1566 :group 'org-agenda
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1567 :type '(repeat
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1568 (choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1569 (list :tag "Single command"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1570 (string :tag "Key")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1571 (choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1572 (const :tag "Tags search (all agenda files)" tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1573 (const :tag "Tags search of TODO entries (all agenda files)" tags-todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1574 (const :tag "TODO keyword search (all agenda files)" todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1575 (const :tag "Tags sparse tree (current buffer)" tags-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1576 (const :tag "TODO keyword tree (current buffer)" todo-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1577 (const :tag "Occur tree (current buffer)" occur-tree))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1578 (string :tag "Match")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1579 (repeat :tag "Local options"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1580 (list (variable :tag "Option") (sexp :tag "Value"))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1581 (list :tag "Command series, all agenda files"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1582 (string :tag "Key")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1583 (string :tag "Description")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1584 (repeat
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1585 (choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1586 (const :tag "Agenda" (agenda))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1587 (const :tag "TODO list" (alltodo))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1588 (list :tag "Tags search"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1589 (const :format "" tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1590 (string :tag "Match")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1591 (repeat :tag "Local options"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1592 (list (variable :tag "Option")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1593 (sexp :tag "Value"))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1594
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1595 (list :tag "Tags search, TODO entries only"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1596 (const :format "" tags-todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1597 (string :tag "Match")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1598 (repeat :tag "Local options"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1599 (list (variable :tag "Option")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1600 (sexp :tag "Value"))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1601
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1602 (list :tag "TODO keyword search"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1603 (const :format "" todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1604 (string :tag "Match")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1605 (repeat :tag "Local options"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1606 (list (variable :tag "Option")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1607 (sexp :tag "Value"))))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1608 (repeat :tag "General options"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1609 (list (variable :tag "Option")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1610 (sexp :tag "Value")))))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1611
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1612 (defcustom org-agenda-todo-list-sublevels t
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1613 "Non-nil means, check also the sublevels of a TODO entry for TODO entries.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1614 When nil, the sublevels of a TODO entry are not checked, resulting in
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1615 potentially much shorter TODO lists."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1616 :group 'org-agenda
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1617 :group 'org-todo
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1618 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1619
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1620 (defcustom org-agenda-todo-ignore-scheduled nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1621 "Non-nil means, don't show scheduled entries in the global todo list.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1622 The idea behind this is that by scheduling it, you have already taken care
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1623 of this item."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1624 :group 'org-agenda
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1625 :group 'org-todo
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1626 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1627
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1628 (defcustom org-agenda-todo-ignore-deadlines nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1629 "Non-nil means, don't show near deadline entries in the global todo list.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1630 Near means closer than `org-deadline-warning-days' days.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1631 The idea behind this is that such items will appear in the agenda anyway."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1632 :group 'org-agenda
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1633 :group 'org-todo
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1634 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1635
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1636
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1637 (defcustom org-timeline-show-empty-dates 3
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1638 "Non-nil means, `org-timeline' also shows dates without an entry.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1639 When nil, only the days which actually have entries are shown.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1640 When t, all days between the first and the last date are shown.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1641 When an integer, show also empty dates, but if there is a gap of more than
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1642 N days, just insert a special line indicating the size of the gap."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1643 :group 'org-agenda
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1644 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1645 (const :tag "None" nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1646 (const :tag "All" t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1647 (number :tag "at most")))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1648
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
1649 (defcustom org-agenda-confirm-kill 1
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
1650 "When set, remote killing from the agenda buffer needs confirmation.
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
1651 When t, a confirmation is always needed. When a number N, confirmation is
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
1652 only needed when the text to be killed contains more than N non-white lines."
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
1653 :group 'org-agenda ;; FIXME
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
1654 :type '(choice
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
1655 (const :tag "Never" nil)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
1656 (const :tag "Always" t)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
1657 (number :tag "When more than N lines")))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
1658
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
1659 ;; FIXME: This variable could be removed
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1660 (defcustom org-agenda-include-all-todo nil
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1661 "Set means weekly/daily agenda will always contain all TODO entries.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1662 The TODO entries will be listed at the top of the agenda, before
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1663 the entries for specific days."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1664 :group 'org-agenda
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1665 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1666
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1667 (defcustom org-agenda-include-diary nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1668 "If non-nil, include in the agenda entries from the Emacs Calendar's diary."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1669 :group 'org-agenda
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1670 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1671
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1672 (defcustom org-calendar-to-agenda-key [?c]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1673 "The key to be installed in `calendar-mode-map' for switching to the agenda.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1674 The command `org-calendar-goto-agenda' will be bound to this key. The
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1675 default is the character `c' because then `c' can be used to switch back and
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1676 forth between agenda and calendar."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1677 :group 'org-agenda
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1678 :type 'sexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1679
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1680 (defgroup org-agenda-setup nil
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1681 "Options concerning setting up the Agenda window in Org Mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1682 :tag "Org Agenda Window Setup"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1683 :group 'org-agenda)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1684
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1685 (defcustom org-agenda-window-setup 'reorganize-frame
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1686 "How the agenda buffer should be displayed.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1687 Possible values for this option are:
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1688
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1689 current-window Show agenda in the current window, keeping all other windows.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1690 other-frame Use `switch-to-buffer-other-frame' to display agenda.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1691 other-window Use `switch-to-buffer-other-window' to display agenda.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1692 reorganize-frame Show only two windows on the current frame, the current
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1693 window and the agenda. Also, if the option
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1694 `org-fit-agenda-window' is set, resize the agenda window to
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1695 try to show as much as possible of the buffer content.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1696 See also the variable `org-agenda-restore-windows-after-quit'."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1697 :group 'org-agenda-setup
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1698 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1699 (const current-window)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1700 (const other-frame)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1701 (const other-window)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1702 (const reorganize-frame)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1703
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1704 (defcustom org-agenda-restore-windows-after-quit nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1705 "Non-nil means, restore window configuration open exiting agenda.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1706 Before the window configuration is changed for displaying the agenda,
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1707 the current status is recorded. When the agenda is exited with
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1708 `q' or `x' and this option is set, the old state is restored. If
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1709 `org-agenda-window-setup' is `other-frame', the value of this
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1710 option will be ignored.."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1711 :group 'org-agenda-setup
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1712 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1713
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1714 ;; FIXME: I think this variable could be removed.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1715 (defcustom org-select-agenda-window t
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1716 "Non-nil means, after creating an agenda, move cursor into Agenda window.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1717 When nil, cursor will remain in the current window."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1718 :group 'org-agenda-setup
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1719 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1720
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1721 ;; FIXME: I think this variable could be removed.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1722 (defcustom org-fit-agenda-window t
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1723 "Non-nil means, change window size of agenda to fit content.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1724 This is only effective if `org-agenda-window-setup' is `reorganize-frame'."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1725 :group 'org-agenda-setup
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1726 :type 'boolean)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1727
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1728 (defcustom org-finalize-agenda-hook nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1729 "Hook run just before displaying an agenda buffer."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1730 :group 'org-agenda-setup
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1731 :type 'hook)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1732
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
1733 (defcustom org-agenda-mouse-1-follows-link nil
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
1734 "Non-nil means, mouse-1 on a link will follow the link in the agenda.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
1735 A longer mouse click will still set point. Does not wortk on XEmacs.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
1736 Needs to be set before org.el is loaded."
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
1737 :group 'org-agenda-setup
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
1738 :type 'boolean)
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
1739
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1740 (defcustom org-agenda-start-with-follow-mode nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1741 "The initial value of follwo-mode in a newly created agenda window."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1742 :group 'org-agenda-setup
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1743 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
1744
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1745 (defgroup org-agenda-display nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1746 "Options concerning what to display initially in Agenda."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1747 :tag "Org Agenda Display"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1748 :group 'org-agenda)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1749
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1750 (defcustom org-agenda-show-all-dates t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1751 "Non-nil means, `org-agenda' shows every day in the selected range.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1752 When nil, only the days which actually have entries are shown."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1753 :group 'org-agenda-display
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1754 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1755
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1756 (defcustom org-agenda-start-on-weekday 1
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1757 "Non-nil means, start the overview always on the specified weekday.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1758 0 denotes Sunday, 1 denotes Monday etc.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1759 When nil, always start on the current day."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1760 :group 'org-agenda-display
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1761 :type '(choice (const :tag "Today" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1762 (number :tag "Weekday No.")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1763
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1764 (defcustom org-agenda-ndays 7
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1765 "Number of days to include in overview display.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1766 Should be 1 or 7."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1767 :group 'org-agenda-display
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1768 :type 'number)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1769
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1770 (defcustom org-agenda-use-time-grid t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1771 "Non-nil means, show a time grid in the agenda schedule.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1772 A time grid is a set of lines for specific times (like every two hours between
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1773 8:00 and 20:00). The items scheduled for a day at specific times are
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1774 sorted in between these lines.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1775 For details about when the grid will be shown, and what it will look like, see
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1776 the variable `org-agenda-time-grid'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1777 :group 'org-agenda-display
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1778 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1779
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1780 (defcustom org-agenda-time-grid
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1781 '((daily today require-timed)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1782 "----------------"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1783 (800 1000 1200 1400 1600 1800 2000))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1784
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1785 "The settings for time grid for agenda display.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1786 This is a list of three items. The first item is again a list. It contains
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1787 symbols specifying conditions when the grid should be displayed:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1788
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1789 daily if the agenda shows a single day
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1790 weekly if the agenda shows an entire week
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1791 today show grid on current date, independent of daily/weekly display
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1792 require-timed show grid only if at least one item has a time specification
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1793
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1794 The second item is a string which will be places behing the grid time.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1795
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1796 The third item is a list of integers, indicating the times that should have
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1797 a grid line."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1798 :group 'org-agenda-display
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1799 :type
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1800 '(list
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1801 (set :greedy t :tag "Grid Display Options"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1802 (const :tag "Show grid in single day agenda display" daily)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1803 (const :tag "Show grid in weekly agenda display" weekly)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1804 (const :tag "Always show grid for today" today)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1805 (const :tag "Show grid only if any timed entries are present"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1806 require-timed)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1807 (const :tag "Skip grid times already present in an entry"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1808 remove-match))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1809 (string :tag "Grid String")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1810 (repeat :tag "Grid Times" (integer :tag "Time"))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1811
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1812 (let ((sorting-choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1813 '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1814 (const time-up) (const time-down)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1815 (const category-keep) (const category-up) (const category-down)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1816 (const tag-down) (const tag-up)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1817 (const priority-up) (const priority-down))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1818
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1819 (defcustom org-agenda-sorting-strategy
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1820 '((agenda time-up category-keep priority-down)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1821 (todo category-keep priority-down)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1822 (tags category-keep))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1823 "Sorting structure for the agenda items of a single day.
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1824 This is a list of symbols which will be used in sequence to determine
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1825 if an entry should be listed before another entry. The following
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1826 symbols are recognized:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1827
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1828 time-up Put entries with time-of-day indications first, early first
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1829 time-down Put entries with time-of-day indications first, late first
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1830 category-keep Keep the default order of categories, corresponding to the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1831 sequence in `org-agenda-files'.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1832 category-up Sort alphabetically by category, A-Z.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1833 category-down Sort alphabetically by category, Z-A.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1834 tag-up Sort alphabetically by last tag, A-Z.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1835 tag-down Sort alphabetically by last tag, Z-A.
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1836 priority-up Sort numerically by priority, high priority last.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1837 priority-down Sort numerically by priority, high priority first.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1838
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1839 The different possibilities will be tried in sequence, and testing stops
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1840 if one comparison returns a \"not-equal\". For example, the default
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1841 '(time-up category-keep priority-down)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1842 means: Pull out all entries having a specified time of day and sort them,
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1843 in order to make a time schedule for the current day the first thing in the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1844 agenda listing for the day. Of the entries without a time indication, keep
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1845 the grouped in categories, don't sort the categories, but keep them in
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1846 the sequence given in `org-agenda-files'. Within each category sort by
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1847 priority.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1848
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1849 Leaving out `category-keep' would mean that items will be sorted across
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1850 categories by priority."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1851 :group 'org-agenda-display
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1852 :type `(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1853 (repeat :tag "General" ,sorting-choice)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1854 (list :tag "Individually"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1855 (cons (const :tag "Strategy for Weekly/Daily agenda" agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1856 (repeat ,sorting-choice))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1857 (cons (const :tag "Strategy for TODO lists" todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1858 (repeat ,sorting-choice))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1859 (cons (const :tag "Strategy for Tags matches" tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1860 (repeat ,sorting-choice))))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1861
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1862 (defcustom org-sort-agenda-notime-is-late t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1863 "Non-nil means, items without time are considered late.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1864 This is only relevant for sorting. When t, items which have no explicit
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
1865 time like 15:30 will be considered as 99:01, i.e. later than any items which
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1866 do have a time. When nil, the default time is before 0:00. You can use this
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1867 option to decide if the schedule for today should come before or after timeless
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1868 agenda entries."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1869 :group 'org-agenda-display
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1870 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1871
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1872 (defgroup org-agenda-prefix nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1873 "Options concerning the entry prefix in the Org-mode agenda display."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1874 :tag "Org Agenda Prefix"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1875 :group 'org-agenda)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1876
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1877 (defcustom org-agenda-prefix-format
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1878 '((agenda . " %-12:c%?-12t% s")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1879 (timeline . " % s")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1880 (todo . " %-12:c")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1881 (tags . " %-12:c"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1882 "Format specifications for the prefix of items in the agenda views.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1883 An alist with four entries, for the different agenda types. The keys to the
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1884 sublists are `agenda', `timeline', `todo', and `tags'. The values
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1885 are format strings.
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1886 This format works similar to a printf format, with the following meaning:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1887
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1888 %c the category of the item, \"Diary\" for entries from the diary, or
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1889 as given by the CATEGORY keyword or derived from the file name.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1890 %T the *last* tag of the item. Last because inherited tags come
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1891 first in the list.
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1892 %t the time-of-day specification if one applies to the entry, in the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1893 format HH:MM
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1894 %s Scheduling/Deadline information, a short string
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1895
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1896 All specifiers work basically like the standard `%s' of printf, but may
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1897 contain two additional characters: A question mark just after the `%' and
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1898 a whitespace/punctuation character just before the final letter.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1899
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1900 If the first character after `%' is a question mark, the entire field
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1901 will only be included if the corresponding value applies to the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1902 current entry. This is useful for fields which should have fixed
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1903 width when present, but zero width when absent. For example,
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1904 \"%?-12t\" will result in a 12 character time field if a time of the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1905 day is specified, but will completely disappear in entries which do
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1906 not contain a time.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1907
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1908 If there is punctuation or whitespace character just before the final
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1909 format letter, this character will be appended to the field value if
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1910 the value is not empty. For example, the format \"%-12:c\" leads to
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1911 \"Diary: \" if the category is \"Diary\". If the category were be
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1912 empty, no additional colon would be interted.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1913
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1914 The default value of this option is \" %-12:c%?-12t% s\", meaning:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1915 - Indent the line with two space characters
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1916 - Give the category in a 12 chars wide field, padded with whitespace on
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1917 the right (because of `-'). Append a colon if there is a category
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1918 (because of `:').
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1919 - If there is a time-of-day, put it into a 12 chars wide field. If no
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1920 time, don't put in an empty field, just skip it (because of '?').
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1921 - Finally, put the scheduling information and append a whitespace.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1922
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1923 As another example, if you don't want the time-of-day of entries in
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1924 the prefix, you could use:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1925
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1926 (setq org-agenda-prefix-format \" %-11:c% s\")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1927
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1928 See also the variables `org-agenda-remove-times-when-in-prefix' and
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1929 `org-agenda-remove-tags-when-in-prefix'."
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1930 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1931 (string :tag "General format")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1932 (list :greedy t :tag "View dependent"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1933 (cons (const agenda) (string :tag "Format"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1934 (cons (const timeline) (string :tag "Format"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1935 (cons (const todo) (string :tag "Format"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1936 (cons (const tags) (string :tag "Format"))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1937 :group 'org-agenda-prefix)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1938
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1939 (defvar org-prefix-format-compiled nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1940 "The compiled version of the most recently used prefix format.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1941 See the variable `org-agenda-prefix-format'.")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1942
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1943 (defcustom org-agenda-remove-times-when-in-prefix t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1944 "Non-nil means, remove duplicate time specifications in agenda items.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1945 When the format `org-agenda-prefix-format' contains a `%t' specifier, a
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1946 time-of-day specification in a headline or diary entry is extracted and
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1947 placed into the prefix. If this option is non-nil, the original specification
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1948 \(a timestamp or -range, or just a plain time(range) specification like
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1949 11:30-4pm) will be removed for agenda display. This makes the agenda less
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1950 cluttered.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1951 The option can be t or nil. It may also be the symbol `beg', indicating
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1952 that the time should only be removed what it is located at the beginning of
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1953 the headline/diary entry."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1954 :group 'org-agenda-prefix
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1955 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1956 (const :tag "Always" t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1957 (const :tag "Never" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1958 (const :tag "When at beginning of entry" beg)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1959
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1960 (defcustom org-agenda-remove-tags-when-in-prefix nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1961 "Non-nil means, remove the tags from the headline copy in the agenda.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1962 When this is the symbol `prefix', only remove tags when
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1963 `org-agenda-prefix-format' contains a `%T' specifier."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1964 :group 'org-agenda-prefix
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1965 :type '(choice
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1966 (const :tag "Always" t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1967 (const :tag "Never" nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1968 (const :tag "When prefix format contains %T" prefix)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
1969
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1970 (defcustom org-agenda-align-tags-to-column 65
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1971 "Shift tags in agenda items to this column."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1972 :group 'org-agenda-prefix
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
1973 :type 'integer)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
1974
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1975 (defgroup org-latex nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1976 "Options for embedding LaTeX code into Org-mode"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1977 :tag "Org LaTeX"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1978 :group 'org)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1979
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1980 (defcustom org-format-latex-options
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1981 '(:foreground "Black" :background "Transparent" :scale 1.0
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1982 :matchers ("begin" "$" "$$" "\\(" "\\["))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1983 "Options for creating images from LaTeX fragments.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1984 This is a property list with the following properties:
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1985 :foreground the foreground color, for example \"Black\".
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1986 :background the background color, or \"Transparent\".
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1987 :scale a scaling factor for the size of the images
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1988 :matchers a list indicating which matchers should be used to
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1989 find LaTeX fragments. Valid members of this list are:
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1990 \"begin\" find environments
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
1991 \"$\" find math expressions surrounded by $...$
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1992 \"$$\" find math expressions surrounded by $$....$$
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
1993 \"\\(\" find math expressions surrounded by \\(...\\)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
1994 \"\\ [\" find math expressions surrounded by \\ [...\\]"
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1995 :group 'org-latex
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1996 :type 'plist)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
1997
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1998 (defgroup org-export nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1999 "Options for exporting org-listings."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2000 :tag "Org Export"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2001 :group 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2002
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2003 (defgroup org-export-general nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2004 "General options for exporting Org-mode files."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2005 :tag "Org Export General"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2006 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2007
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2008 (defcustom org-export-publishing-directory "."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2009 "Path to the location where exported files should be located.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2010 This path may be relative to the directory where the Org-mode file lives.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2011 The default is to put them into the same directory as the Org-mode file.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2012 The variable may also be an alist with export types `:html', `:ascii',
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2013 `:ical', or `:xoxo' and the corresponding directories. If a direcoty path
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2014 is relative, it is interpreted relative to the directory where the exported
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2015 Org-mode files lives."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2016 :group 'org-export-general
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2017 :type '(choice
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2018 (directory)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2019 (repeat
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2020 (cons
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2021 (choice :tag "Type"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2022 (const :html) (const :ascii) (const :ical) (const :xoxo))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2023 (directory)))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2024
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2025 (defcustom org-export-language-setup
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2026 '(("en" "Author" "Date" "Table of Contents")
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2027 ("cs" "Autor" "Datum" "Obsah")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2028 ("da" "Ophavsmand" "Dato" "Indhold")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2029 ("de" "Autor" "Datum" "Inhaltsverzeichnis")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2030 ("es" "Autor" "Fecha" "\xccndice")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2031 ("fr" "Auteur" "Date" "Table des Mati\xe8res")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2032 ("it" "Autore" "Data" "Indice")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2033 ("nl" "Auteur" "Datum" "Inhoudsopgave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2034 ("nn" "Forfattar" "Dato" "Innhold") ;; nn = Norsk (nynorsk)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2035 ("sv" "F\xf6rfattarens" "Datum" "Inneh\xe5ll"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2036 "Terms used in export text, translated to different languages.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2037 Use the variable `org-export-default-language' to set the language,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2038 or use the +OPTION lines for a per-file setting."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2039 :group 'org-export-general
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2040 :type '(repeat
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
2041 (list
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
2042 (string :tag "HTML language tag")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
2043 (string :tag "Author")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
2044 (string :tag "Date")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
2045 (string :tag "Table of Contents"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2046
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2047 (defcustom org-export-default-language "en"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2048 "The default language of HTML export, as a string.
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2049 This should have an association in `org-export-language-setup'."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2050 :group 'org-export-general
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2051 :type 'string)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2052
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2053 (defcustom org-export-headline-levels 3
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2054 "The last level which is still exported as a headline.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2055 Inferior levels will produce itemize lists when exported.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2056 Note that a numeric prefix argument to an exporter function overrides
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2057 this setting.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2058
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2059 This option can also be set with the +OPTIONS line, e.g. \"H:2\"."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2060 :group 'org-export-general
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2061 :type 'number)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2062
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2063 (defcustom org-export-with-section-numbers t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2064 "Non-nil means, add section numbers to headlines when exporting.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2065
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2066 This option can also be set with the +OPTIONS line, e.g. \"num:t\"."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2067 :group 'org-export-general
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2068 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2069
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2070 (defcustom org-export-with-toc t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2071 "Non-nil means, create a table of contents in exported files.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2072 The TOC contains headlines with levels up to`org-export-headline-levels'.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2073
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2074 Headlines which contain any TODO items will be marked with \"(*)\" in
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2075 ASCII export, and with red color in HTML output.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2076
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2077 In HTML output, the TOC will be clickable.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2078
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2079 This option can also be set with the +OPTIONS line, e.g. \"toc:nil\"."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2080 :group 'org-export-general
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2081 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2082
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2083 (defcustom org-export-mark-todo-in-toc nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2084 "Non-nil means, mark TOC lines that contain any open TODO items."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2085 :group 'org-export-general
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2086 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2087
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2088 (defcustom org-export-preserve-breaks nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2089 "Non-nil means, preserve all line breaks when exporting.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2090 Normally, in HTML output paragraphs will be reformatted. In ASCII
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2091 export, line breaks will always be preserved, regardless of this variable.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2092
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2093 This option can also be set with the +OPTIONS line, e.g. \"\\n:t\"."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2094 :group 'org-export-general
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2095 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2096
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2097 (defcustom org-export-with-archived-trees 'headline
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2098 "Whether subtrees with the ARCHIVE tag should be exported.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2099 This can have three different values
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2100 nil Do not export, pretend this tree is not present
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2101 t Do export the entire tree
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2102 headline Only export the headline, but skip the tree below it."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2103 :group 'org-export-general
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2104 :group 'org-archive
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2105 :type '(choice
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2106 (const :tag "not at all" nil)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2107 (const :tag "headline only" 'headline)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2108 (const :tag "entirely" t)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2109
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2110 (defcustom org-export-with-timestamps t
73916
faaa0f903f20 (org-export-with-timestamps)
Glenn Morris <rgm@gnu.org>
parents: 73885
diff changeset
2111 "If nil, do not export time stamps and associated keywords."
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2112 :group 'org-export-general
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2113 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2114
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
2115 (defcustom org-export-remove-timestamps-from-toc t
73916
faaa0f903f20 (org-export-with-timestamps)
Glenn Morris <rgm@gnu.org>
parents: 73885
diff changeset
2116 "If nil, remove timestamps from the table of contents entries."
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2117 :group 'org-export-general
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2118 :type 'boolean)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2119
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2120 (defcustom org-export-with-tags 'not-in-toc
73916
faaa0f903f20 (org-export-with-timestamps)
Glenn Morris <rgm@gnu.org>
parents: 73885
diff changeset
2121 "If nil, do not export tags, just remove them from headlines.
faaa0f903f20 (org-export-with-timestamps)
Glenn Morris <rgm@gnu.org>
parents: 73885
diff changeset
2122 If this is the symbol `not-in-toc', tags will be removed from table of
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2123 contents entries, but still be shown in the headlines of the document."
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2124 :group 'org-export-general
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2125 :type '(choice
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2126 (const :tag "Off" nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2127 (const :tag "Not in TOC" not-in-toc)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2128 (const :tag "On" t)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2129
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2130 (defgroup org-export-translation nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2131 "Options for translating special ascii sequences for the export backends."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2132 :tag "Org Export Translation"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2133 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2134
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2135 (defcustom org-export-with-emphasize t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2136 "Non-nil means, interpret *word*, /word/, and _word_ as emphasized text.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2137 If the export target supports emphasizing text, the word will be
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2138 typeset in bold, italic, or underlined, respectively. Works only for
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2139 single words, but you can say: I *really* *mean* *this*.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2140 Not all export backends support this.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2141
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2142 This option can also be set with the +OPTIONS line, e.g. \"*:nil\"."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2143 :group 'org-export-translation
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2144 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2145
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2146 (defcustom org-export-with-sub-superscripts t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2147 "Non-nil means, interpret \"_\" and \"^\" for export.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2148 When this option is turned on, you can use TeX-like syntax for sub- and
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2149 superscripts. Several characters after \"_\" or \"^\" will be
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2150 considered as a single item - so grouping with {} is normally not
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2151 needed. For example, the following things will be parsed as single
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2152 sub- or superscripts.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2153
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2154 10^24 or 10^tau several digits will be considered 1 item.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2155 10^-12 or 10^-tau a leading sign with digits or a word
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2156 x^2-y^3 will be read as x^2 - y^3, because items are
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2157 terminated by almost any nonword/nondigit char.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2158 x_{i^2} or x^(2-i) braces or parenthesis do grouping.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2159
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2160 Still, ambiguity is possible - so when in doubt use {} to enclose the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2161 sub/superscript.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2162 Not all export backends support this, but HTML does.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2163
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2164 This option can also be set with the +OPTIONS line, e.g. \"^:nil\"."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2165 :group 'org-export-translation
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2166 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2167
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2168 (defcustom org-export-with-TeX-macros t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2169 "Non-nil means, interpret simple TeX-like macros when exporting.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2170 For example, HTML export converts \\alpha to &alpha; and \\AA to &Aring;.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2171 No only real TeX macros will work here, but the standard HTML entities
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2172 for math can be used as macro names as well. For a list of supported
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2173 names in HTML export, see the constant `org-html-entities'.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2174 Not all export backends support this.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2175
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2176 This option can also be set with the +OPTIONS line, e.g. \"TeX:nil\"."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2177 :group 'org-export-translation
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2178 :group 'org-latex
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2179 :type 'boolean)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2180
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2181 (defcustom org-export-with-LaTeX-fragments nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2182 "Non-nil means, convert LaTeX fragments to images when exporting to HTML.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2183 When set, the exporter will find LaTeX environments if the \\begin line is
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2184 the first non-white thing on a line. It will also find the math delimiters
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2185 like $a=b$ and \\( a=b \\) for inline math, $$a=b$$ and \\[ a=b \\] for
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2186 display math.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2187
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2188 This option can also be set with the +OPTIONS line, e.g. \"LaTeX:t\"."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2189 :group 'org-export-translation
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2190 :group 'org-latex
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2191 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2192
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2193 (defcustom org-export-with-fixed-width t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2194 "Non-nil means, lines starting with \":\" will be in fixed width font.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2195 This can be used to have pre-formatted text, fragments of code etc. For
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2196 example:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2197 : ;; Some Lisp examples
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2198 : (while (defc cnt)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2199 : (ding))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2200 will be looking just like this in also HTML. See also the QUOTE keyword.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2201 Not all export backends support this.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2202
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2203 This option can also be set with the +OPTIONS line, e.g. \"::nil\"."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2204 :group 'org-export-translation
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2205 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2206
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2207 (defcustom org-match-sexp-depth 3
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2208 "Number of stacked braces for sub/superscript matching.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2209 This has to be set before loading org.el to be effective."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2210 :group 'org-export-translation
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2211 :type 'integer)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2212
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2213 (defgroup org-export-tables nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2214 "Options for exporting tables in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2215 :tag "Org Export Tables"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2216 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2217
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2218 (defcustom org-export-with-tables t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2219 "If non-nil, lines starting with \"|\" define a table.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2220 For example:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2221
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2222 | Name | Address | Birthday |
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2223 |-------------+----------+-----------|
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2224 | Arthur Dent | England | 29.2.2100 |
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2225
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2226 Not all export backends support this.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2227
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2228 This option can also be set with the +OPTIONS line, e.g. \"|:nil\"."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2229 :group 'org-export-tables
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2230 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2231
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2232 (defcustom org-export-highlight-first-table-line t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2233 "Non-nil means, highlight the first table line.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2234 In HTML export, this means use <th> instead of <td>.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2235 In tables created with table.el, this applies to the first table line.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2236 In Org-mode tables, all lines before the first horizontal separator
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2237 line will be formatted with <th> tags."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2238 :group 'org-export-tables
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2239 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2240
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2241 (defcustom org-export-table-remove-special-lines t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2242 "Remove special lines and marking characters in calculating tables.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2243 This removes the special marking character column from tables that are set
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2244 up for spreadsheet calculations. It also removes the entire lines
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2245 marked with `!', `_', or `^'. The lines with `$' are kept, because
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2246 the values of constants may be useful to have."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2247 :group 'org-export-tables
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2248 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2249
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2250 (defcustom org-export-prefer-native-exporter-for-tables nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2251 "Non-nil means, always export tables created with table.el natively.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2252 Natively means, use the HTML code generator in table.el.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2253 When nil, Org-mode's own HTML generator is used when possible (i.e. if
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2254 the table does not use row- or column-spanning). This has the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2255 advantage, that the automatic HTML conversions for math symbols and
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2256 sub/superscripts can be applied. Org-mode's HTML generator is also
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2257 much faster."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2258 :group 'org-export-tables
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2259 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2260
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2261 (defgroup org-export-ascii nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2262 "Options specific for ASCII export of Org-mode files."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2263 :tag "Org Export ASCII"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2264 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2265
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2266 (defcustom org-export-ascii-underline '(?\$ ?\# ?^ ?\~ ?\= ?\-)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2267 "Characters for underlining headings in ASCII export.
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2268 In the given sequence, these characters will be used for level 1, 2, ..."
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2269 :group 'org-export-ascii
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2270 :type '(repeat character))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2271
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
2272 (defcustom org-export-ascii-bullets '(?* ?+ ?-)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2273 "Bullet characters for headlines converted to lists in ASCII export.
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2274 The first character is is used for the first lest level generated in this
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2275 way, and so on. If there are more levels than characters given here,
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2276 the list will be repeated.
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2277 Note that plain lists will keep the same bullets as the have in the
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2278 Org-mode file."
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2279 :group 'org-export-ascii
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2280 :type '(repeat character))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2281
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2282 (defcustom org-export-ascii-show-new-buffer t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2283 "Non-nil means, popup buffer containing the exported ASCII text.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2284 Otherwise the buffer will just be saved to a file and stay hidden."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2285 :group 'org-export-ascii
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2286 :type 'boolean)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2287
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2288 (defgroup org-export-xml nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2289 "Options specific for XML export of Org-mode files."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2290 :tag "Org Export XML"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2291 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2292
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2293 (defgroup org-export-html nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2294 "Options specific for HTML export of Org-mode files."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2295 :tag "Org Export HTML"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2296 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2297
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
2298 (defcustom org-export-html-style
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2299 "<style type=\"text/css\">
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2300 html {
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2301 font-family: Times, serif;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2302 font-size: 12pt;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2303 }
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2304 .title { text-align: center; }
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2305 .todo { color: red; }
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2306 .done { color: green; }
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2307 .timestamp { color: grey }
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2308 .timestamp-kwd { color: CadetBlue }
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2309 .tag { background-color:lightblue; font-weight:normal }
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
2310 .target { background-color: lavender; }
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2311 pre {
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2312 border: 1pt solid #AEBDCC;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2313 background-color: #F3F5F7;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2314 padding: 5pt;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2315 font-family: courier, monospace;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2316 }
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2317 table { border-collapse: collapse; }
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2318 td, th {
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2319 vertical-align: top;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2320 border: 1pt solid #ADB9CC;
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2321 }
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2322 </style>"
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2323 "The default style specification for exported HTML files.
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2324 Since there are different ways of setting style information, this variable
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2325 needs to contain the full HTML structure to provide a style, including the
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
2326 surrounding HTML tags. The style specifications should include definitions
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2327 for new classes todo, done, title, and deadline. For example, legal values
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
2328 would be:
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2329
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2330 <style type=\"text/css\">
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
2331 p { font-weight: normal; color: gray; }
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
2332 h1 { color: black; }
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2333 .title { text-align: center; }
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2334 .todo, .deadline { color: red; }
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2335 .done { color: green; }
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2336 </style>
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2337
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2338 or, if you want to keep the style in a file,
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2339
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2340 <link rel=\"stylesheet\" type=\"text/css\" href=\"mystyles.css\">
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2341
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
2342 As the value of this option simply gets inserted into the HTML <head> header,
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
2343 you can \"misuse\" it to add arbitrary text to the header."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2344 :group 'org-export-html
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2345 :type 'string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2346
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2347 (defcustom org-export-html-title-format "<h1 class=\"title\">%s</h1>\n"
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2348 "Format for typesetting the document title in HTML export."
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2349 :group 'org-export-html
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2350 :type 'string)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2351
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2352 (defcustom org-export-html-toplevel-hlevel 2
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2353 "The <H> level for level 1 headings in HTML export."
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2354 :group 'org-export-html
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2355 :type 'string)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2356
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2357 (defcustom org-export-html-link-org-files-as-html t
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2358 "Non-nil means, make file links to `file.org' point to `file.html'.
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2359 When org-mode is exporting an org-mode file to HTML, links to
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2360 non-html files are directly put into a href tag in HTML.
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2361 However, links to other Org-mode files (recognized by the
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2362 extension `.org.) should become links to the corresponding html
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2363 file, assuming that the linked org-mode file will also be
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2364 converted to HTML.
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2365 When nil, the links still point to the plain `.org' file."
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2366 :group 'org-export-html
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2367 :type 'boolean)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2368
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2369 (defcustom org-export-html-inline-images 'maybe
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2370 "Non-nil means, inline images into exported HTML pages.
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2371 This is done using an <img> tag. When nil, an anchor with href is used to
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2372 link to the image. If this option is `maybe', then images in links with
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2373 an empty description will be inlined, while images with a description will
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2374 be linked only."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2375 :group 'org-export-html
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2376 :type '(choice (const :tag "Never" nil)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2377 (const :tag "Always" t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2378 (const :tag "When there is no description" maybe)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2379
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2380 (defcustom org-export-html-expand t
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2381 "Non-nil means, for HTML export, treat @<...> as HTML tag.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2382 When nil, these tags will be exported as plain text and therefore
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2383 not be interpreted by a browser.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2384
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2385 This option can also be set with the +OPTIONS line, e.g. \"@:nil\"."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2386 :group 'org-export-html
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
2387 :type 'boolean)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
2388
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2389 (defcustom org-export-html-table-tag
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2390 "<table border=\"1\" cellspacing=\"0\" cellpadding=\"6\">"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2391 "The HTML tag used to start a table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2392 This must be a <table> tag, but you may change the options like
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2393 borders and spacing."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2394 :group 'org-export-html
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2395 :type 'string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2396
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2397 (defcustom org-export-html-with-timestamp nil
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
2398 "If non-nil, write `org-export-html-html-helper-timestamp'
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
2399 into the exported HTML text. Otherwise, the buffer will just be saved
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2400 to a file."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2401 :group 'org-export-html
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2402 :type 'boolean)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2403
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2404 (defcustom org-export-html-html-helper-timestamp
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2405 "<br/><br/><hr><p><!-- hhmts start --> <!-- hhmts end --></p>\n"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2406 "The HTML tag used as timestamp delimiter for HTML-helper-mode."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2407 :group 'org-export-html
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2408 :type 'string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2409
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2410 (defcustom org-export-html-show-new-buffer nil
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
2411 "Non-nil means, popup buffer containing the exported html text.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2412 Otherwise, the buffer will just be saved to a file and stay hidden."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2413 :group 'org-export-html
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2414 :type 'boolean)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2415
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2416 (defgroup org-export-icalendar nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2417 "Options specific for iCalendar export of Org-mode files."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2418 :tag "Org Export iCalendar"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2419 :group 'org-export)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2420
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2421 (defcustom org-combined-agenda-icalendar-file "~/org.ics"
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2422 "The file name for the iCalendar file covering all agenda files.
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2423 This file is created with the command \\[org-export-icalendar-all-agenda-files].
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2424 The file name should be absolute."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2425 :group 'org-export-icalendar
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2426 :type 'file)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2427
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2428 (defcustom org-icalendar-include-todo nil
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2429 "Non-nil means, export to iCalendar files should also cover TODO items."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2430 :group 'org-export-icalendar
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2431 :type 'boolean)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2432
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2433 (defcustom org-icalendar-combined-name "OrgMode"
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2434 "Calendar name for the combined iCalendar representing all agenda files."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2435 :group 'org-export-icalendar
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2436 :type 'string)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
2437
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2438 (defgroup org-font-lock nil
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2439 "Font-lock settings for highlighting in Org-mode."
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2440 :tag "Org Font Lock"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2441 :group 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2442
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2443 (defcustom org-level-color-stars-only nil
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2444 "Non-nil means fontify only the stars in each headline.
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2445 When nil, the entire headline is fontified.
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2446 Changing it requires restart of `font-lock-mode' to become effective
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2447 also in regions already fontified."
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2448 :group 'org-font-lock
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2449 :type 'boolean)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2450
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2451 (defcustom org-hide-leading-stars nil
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2452 "Non-nil means, hide the first N-1 stars in a headline.
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2453 This works by using the face `org-hide' for these stars. This
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2454 face is white for a light background, and black for a dark
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2455 background. You may have to customize the face `org-hide' to
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2456 make this work.
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2457 Changing it requires restart of `font-lock-mode' to become effective
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2458 also in regions already fontified.
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2459 You may also set this on a per-file basis by adding one of the following
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2460 lines to the buffer:
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2461
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2462 #+STARTUP: hidestars
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2463 #+STARTUP: showstars"
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2464 :group 'org-font-lock
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2465 :type 'boolean)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2466
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2467 (defcustom org-fontify-done-headline nil
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2468 "Non-nil means, change the face of a headline if it is marked DONE.
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2469 Normally, only the TODO/DONE keyword indicates the state of a headline.
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2470 When this is non-nil, the headline after the keyword is set to the
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2471 `org-headline-done' as an additional indication."
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2472 :group 'org-font-lock
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2473 :type 'boolean)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2474
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2475 (defcustom org-fontify-emphasized-text t
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2476 "Non-nil means fontify *bold*, /italic/ and _underlined_ text.
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2477 Changing this variable requires a restart of Emacs to take effect."
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2478 :group 'org-font-lock
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2479 :type 'boolean)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2480
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2481 (defvar org-emph-re nil
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2482 "Regular expression for matching emphasis.")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2483 (defvar org-emphasis-regexp-components) ; defined just below
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2484 (defvar org-emphasis-alist) ; defined just below
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2485 (defun org-set-emph-re (var val)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2486 "Set variable and compute the emphasis regular expression."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2487 (set var val)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2488 (when (and (boundp 'org-emphasis-alist)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2489 (boundp 'org-emphasis-regexp-components)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2490 org-emphasis-alist org-emphasis-regexp-components)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2491 (let* ((e org-emphasis-regexp-components)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2492 (pre (car e))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2493 (post (nth 1 e))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2494 (border (nth 2 e))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2495 (body (nth 3 e))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2496 (nl (nth 4 e))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2497 (stacked (nth 5 e))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2498 (body1 (concat body "*?"))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2499 (markers (mapconcat 'car org-emphasis-alist "")))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2500 ;; make sure special characters appear at the right position in the class
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2501 (if (string-match "\\^" markers)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2502 (setq markers (concat (replace-match "" t t markers) "^")))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2503 (if (string-match "-" markers)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2504 (setq markers (concat (replace-match "" t t markers) "-")))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2505 ; (while (>= (setq nl (1- nl)) 0) (setq body1 (concat body1 "\n?" body "*?")))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2506 ; (while (>= (setq nl (1- nl)) 0) (setq body1 (concat body1 "\\(?:\n?" body "*?\\)?")))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2507 (if (> nl 0)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2508 (setq body1 (concat body1 "\\(?:\n" body "*?\\)\\{0,"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2509 (int-to-string nl) "\\}")))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2510 ;; Make the regexp
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2511 (setq org-emph-re
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2512 (concat "\\([" pre (if stacked markers) "]\\|^\\)"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2513 "\\("
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2514 "\\([" markers "]\\)"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2515 "\\("
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2516 "[^" border markers "]"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2517 body1
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2518 "[^" border markers "]"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2519 "\\)"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2520 "\\3\\)"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2521 "\\([" post (if stacked markers) "]\\|$\\)")))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2522
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2523 (defcustom org-emphasis-regexp-components
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2524 '(" \t(" " \t.,?;'\")" " \t\r\n," "." 1 nil)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2525 "Components used to build the reqular expression for emphasis.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2526 This is a list with 6 entries. Terminology: In an emphasis string
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2527 like \" *strong word* \", we call the initial space PREMATCH, the final
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2528 space POSTMATCH, the stars MARKERS, \"s\" and \"d\" are BORDER characters
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2529 and \"trong wor\" is the body. The different components in this variable
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2530 specify what is allowed/forbidden in each part:
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2531
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2532 pre Chars allowed as prematch. Beginning of line will be allowed too.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2533 post Chars allowed as postmatch. End of line will be allowed too.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2534 border The chars *forbidden* as border characters. In addition to the
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2535 characters given here, all marker characters are forbidden too.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2536 body-regexp A regexp like \".\" to match a body character. Don't use
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2537 non-shy groups here, and don't allow newline here.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2538 newline The maximum number of newlines allowed in an emphasis exp.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2539 stacked Non-nil means, allow stacked styles. This works only in HTML
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2540 export. When this is set, all marker characters (as given in
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2541 `org-emphasis-alist') will be allowed as pre/post, aiding
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2542 inside-out matching.
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
2543 Use customize to modify this, or restart Emacs after changing it."
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2544 :group 'org-font-lock
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2545 :set 'org-set-emph-re
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2546 :type '(list
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2547 (sexp :tag "Allowed chars in pre ")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2548 (sexp :tag "Allowed chars in post ")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2549 (sexp :tag "Forbidden chars in border ")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2550 (sexp :tag "Regexp for body ")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2551 (integer :tag "number of newlines allowed")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2552 (boolean :tag "Stacking allowed ")))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2553
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2554 (defcustom org-emphasis-alist
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2555 '(("*" bold "<b>" "</b>")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2556 ("/" italic "<i>" "</i>")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2557 ("_" underline "<u>" "</u>")
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2558 ("=" shadow "<code>" "</code>")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2559 ("+" (:strike-through t) "<del>" "</del>")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2560 )
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
2561 "Special syntax for emphasized text.
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2562 Text starting and ending with a special character will be emphasized, for
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2563 example *bold*, _underlined_ and /italic/. This variable sets the marker
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2564 characters, the face to bbe used by font-lock for highlighting in Org-mode
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
2565 Emacs buffers, and the HTML tags to be used for this.
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
2566 Use customize to modify this, or restart Emacs after changing it."
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2567 :group 'org-font-lock
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2568 :set 'org-set-emph-re
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2569 :type '(repeat
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2570 (list
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2571 (string :tag "Marker character")
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2572 (choice
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2573 (face :tag "Font-lock-face")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
2574 (plist :tag "Face property list"))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2575 (string :tag "HTML start tag")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2576 (string :tag "HTML end tag"))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
2577
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2578 (defgroup org-faces nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2579 "Faces in Org-mode."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2580 :tag "Org Faces"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2581 :group 'org-font-lock)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2582
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2583 (defun org-compatible-face (specs)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2584 "Make a compatible face specification.
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2585 XEmacs and Emacs 21 do not know about the `min-colors' attribute.
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2586 For them we convert a (min-colors 8) entry to a `tty' entry and move it
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2587 to the top of the list. The `min-colors' attribute will be removed from
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2588 any other entries, and any resulting duplicates will be removed entirely."
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2589 (if (or (featurep 'xemacs) (< emacs-major-version 22))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2590 (let (r e a)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2591 (while (setq e (pop specs))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2592 (cond
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2593 ((memq (car e) '(t default)) (push e r))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2594 ((setq a (member '(min-colors 8) (car e)))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2595 (nconc r (list (cons (cons '(type tty) (delq (car a) (car e)))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2596 (cdr e)))))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2597 ((setq a (assq 'min-colors (car e)))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2598 (setq e (cons (delq a (car e)) (cdr e)))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2599 (or (assoc (car e) r) (push e r)))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2600 (t (or (assoc (car e) r) (push e r)))))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2601 (nreverse r))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2602 specs))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2603
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
2604 (defface org-hide
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2605 '((((background light)) (:foreground "white"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2606 (((background dark)) (:foreground "black")))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2607 "Face used to hide leading stars in headlines.
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2608 The forground color of this face should be equal to the background
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2609 color of the frame."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2610 :group 'org-faces)
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
2611
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2612 (defface org-level-1 ;; font-lock-function-name-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2613 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2614 '((((class color) (min-colors 88) (background light)) (:foreground "Blue1"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2615 (((class color) (min-colors 88) (background dark)) (:foreground "LightSkyBlue"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2616 (((class color) (min-colors 16) (background light)) (:foreground "Blue"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2617 (((class color) (min-colors 16) (background dark)) (:foreground "LightSkyBlue"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2618 (((class color) (min-colors 8)) (:foreground "blue" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2619 (t (:bold t))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2620 "Face used for level 1 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2621 :group 'org-faces)
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2622
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2623 (defface org-level-2 ;; font-lock-variable-name-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2624 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2625 '((((class color) (min-colors 16) (background light)) (:foreground "DarkGoldenrod"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2626 (((class color) (min-colors 16) (background dark)) (:foreground "LightGoldenrod"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2627 (((class color) (min-colors 8) (background light)) (:foreground "yellow"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2628 (((class color) (min-colors 8) (background dark)) (:foreground "yellow" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2629 (t (:bold t))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2630 "Face used for level 2 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2631 :group 'org-faces)
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2632
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2633 (defface org-level-3 ;; font-lock-keyword-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2634 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2635 '((((class color) (min-colors 88) (background light)) (:foreground "Purple"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2636 (((class color) (min-colors 88) (background dark)) (:foreground "Cyan1"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2637 (((class color) (min-colors 16) (background light)) (:foreground "Purple"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2638 (((class color) (min-colors 16) (background dark)) (:foreground "Cyan"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2639 (((class color) (min-colors 8) (background light)) (:foreground "purple" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2640 (((class color) (min-colors 8) (background dark)) (:foreground "cyan" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2641 (t (:bold t))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2642 "Face used for level 3 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2643 :group 'org-faces)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
2644
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
2645 (defface org-level-4 ;; font-lock-comment-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2646 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2647 '((((class color) (min-colors 88) (background light)) (:foreground "Firebrick"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2648 (((class color) (min-colors 88) (background dark)) (:foreground "chocolate1"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2649 (((class color) (min-colors 16) (background light)) (:foreground "red"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2650 (((class color) (min-colors 16) (background dark)) (:foreground "red1"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2651 (((class color) (min-colors 8) (background light)) (:foreground "red" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2652 (((class color) (min-colors 8) (background dark)) (:foreground "red" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2653 (t (:bold t))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2654 "Face used for level 4 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2655 :group 'org-faces)
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2656
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2657 (defface org-level-5 ;; font-lock-type-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2658 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2659 '((((class color) (min-colors 16) (background light)) (:foreground "ForestGreen"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2660 (((class color) (min-colors 16) (background dark)) (:foreground "PaleGreen"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2661 (((class color) (min-colors 8)) (:foreground "green"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2662 "Face used for level 5 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2663 :group 'org-faces)
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2664
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2665 (defface org-level-6 ;; font-lock-constant-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2666 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2667 '((((class color) (min-colors 16) (background light)) (:foreground "CadetBlue"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2668 (((class color) (min-colors 16) (background dark)) (:foreground "Aquamarine"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2669 (((class color) (min-colors 8)) (:foreground "magenta"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2670 "Face used for level 6 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2671 :group 'org-faces)
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2672
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2673 (defface org-level-7 ;; font-lock-builtin-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2674 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2675 '((((class color) (min-colors 16) (background light)) (:foreground "Orchid"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2676 (((class color) (min-colors 16) (background dark)) (:foreground "LightSteelBlue"))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2677 (((class color) (min-colors 8)) (:foreground "blue"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2678 "Face used for level 7 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2679 :group 'org-faces)
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2680
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2681 (defface org-level-8 ;; font-lock-string-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2682 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2683 '((((class color) (min-colors 16) (background light)) (:foreground "RosyBrown"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2684 (((class color) (min-colors 16) (background dark)) (:foreground "LightSalmon"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2685 (((class color) (min-colors 8)) (:foreground "green"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2686 "Face used for level 8 headlines."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2687 :group 'org-faces)
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2688
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
2689 (defface org-special-keyword ;; font-lock-string-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2690 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2691 '((((class color) (min-colors 16) (background light)) (:foreground "RosyBrown"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2692 (((class color) (min-colors 16) (background dark)) (:foreground "LightSalmon"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2693 (t (:italic t))))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
2694 "Face used for special keywords."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2695 :group 'org-faces)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
2696
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2697 (defface org-warning ;; font-lock-warning-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2698 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2699 '((((class color) (min-colors 16) (background light)) (:foreground "Red1" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2700 (((class color) (min-colors 16) (background dark)) (:foreground "Pink" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2701 (((class color) (min-colors 8) (background light)) (:foreground "red" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2702 (((class color) (min-colors 8) (background dark)) (:foreground "red" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2703 (t (:bold t))))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
2704 "Face for deadlines and TODO keywords."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2705 :group 'org-faces)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
2706
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2707 (defface org-headline-done ;; font-lock-string-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2708 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2709 '((((class color) (min-colors 16) (background light)) (:foreground "RosyBrown"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2710 (((class color) (min-colors 16) (background dark)) (:foreground "LightSalmon"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2711 (((class color) (min-colors 8) (background light)) (:bold nil))))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2712 "Face used to indicate that a headline is DONE.
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2713 This face is only used if `org-fontify-done-headline' is set."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2714 :group 'org-faces)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
2715
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2716 (defface org-archived ; similar to shadow
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2717 (org-compatible-face
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2718 '((((class color grayscale) (min-colors 88) (background light))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2719 (:foreground "grey50"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2720 (((class color grayscale) (min-colors 88) (background dark))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2721 (:foreground "grey70"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2722 (((class color) (min-colors 8) (background light))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2723 (:foreground "green"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2724 (((class color) (min-colors 8) (background dark))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2725 (:foreground "yellow"))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2726 "Face for headline with the ARCHIVE tag."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2727 :group 'org-faces)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
2728
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
2729 (defface org-link
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2730 '((((class color) (background light)) (:foreground "Purple" :underline t))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2731 (((class color) (background dark)) (:foreground "Cyan" :underline t))
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2732 (t (:underline t)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2733 "Face for links."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2734 :group 'org-faces)
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2735
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2736 (defface org-date
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2737 '((((class color) (background light)) (:foreground "Purple" :underline t))
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2738 (((class color) (background dark)) (:foreground "Cyan" :underline t))
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2739 (t (:underline t)))
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2740 "Face for links."
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2741 :group 'org-faces)
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2742
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
2743 (defface org-tag
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2744 '((t (:bold t)))
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
2745 "Face for tags."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2746 :group 'org-faces)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
2747
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2748 (defface org-todo ;; font-lock-warning-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2749 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2750 '((((class color) (min-colors 16) (background light)) (:foreground "Red1" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2751 (((class color) (min-colors 16) (background dark)) (:foreground "Pink" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2752 (((class color) (min-colors 8) (background light)) (:foreground "red" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2753 (((class color) (min-colors 8) (background dark)) (:foreground "red" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2754 (t (:inverse-video t :bold t))))
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2755 "Face for TODO keywords."
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2756 :group 'org-faces)
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
2757
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2758 (defface org-done ;; font-lock-type-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2759 (org-compatible-face
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2760 '((((class color) (min-colors 16) (background light)) (:foreground "ForestGreen" :bold t))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2761 (((class color) (min-colors 16) (background dark)) (:foreground "PaleGreen" :bold t))
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2762 (((class color) (min-colors 8)) (:foreground "green"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2763 (t (:bold t))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2764 "Face used for DONE."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2765 :group 'org-faces)
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2766
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2767 (defface org-table ;; font-lock-function-name-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2768 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2769 '((((class color) (min-colors 88) (background light)) (:foreground "Blue1"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2770 (((class color) (min-colors 88) (background dark)) (:foreground "LightSkyBlue"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2771 (((class color) (min-colors 16) (background light)) (:foreground "Blue"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2772 (((class color) (min-colors 16) (background dark)) (:foreground "LightSkyBlue"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2773 (((class color) (min-colors 8) (background light)) (:foreground "blue"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2774 (((class color) (min-colors 8) (background dark)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2775 "Face used for tables."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2776 :group 'org-faces)
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2777
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2778 (defface org-formula
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2779 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2780 '((((class color) (min-colors 88) (background light)) (:foreground "Firebrick"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2781 (((class color) (min-colors 88) (background dark)) (:foreground "chocolate1"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2782 (((class color) (min-colors 8) (background light)) (:foreground "red"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2783 (((class color) (min-colors 8) (background dark)) (:foreground "red"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2784 (t (:bold t :italic t))))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2785 "Face for formulas."
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2786 :group 'org-faces)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2787
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2788 (defface org-scheduled-today
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2789 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2790 '((((class color) (min-colors 88) (background light)) (:foreground "DarkGreen"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2791 (((class color) (min-colors 88) (background dark)) (:foreground "PaleGreen"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2792 (((class color) (min-colors 8)) (:foreground "green"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2793 (t (:bold t :italic t))))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2794 "Face for items scheduled for a certain day."
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2795 :group 'org-faces)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2796
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2797 (defface org-scheduled-previously
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2798 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2799 '((((class color) (min-colors 88) (background light)) (:foreground "Firebrick"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2800 (((class color) (min-colors 88) (background dark)) (:foreground "chocolate1"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2801 (((class color) (min-colors 8) (background light)) (:foreground "red"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2802 (((class color) (min-colors 8) (background dark)) (:foreground "red" :bold t))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2803 (t (:bold t))))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2804 "Face for items scheduled previously, and not yet done."
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2805 :group 'org-faces)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2806
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2807 (defface org-upcoming-deadline
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2808 (org-compatible-face
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2809 '((((class color) (min-colors 88) (background light)) (:foreground "Firebrick"))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2810 (((class color) (min-colors 88) (background dark)) (:foreground "chocolate1"))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2811 (((class color) (min-colors 8) (background light)) (:foreground "red"))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2812 (((class color) (min-colors 8) (background dark)) (:foreground "red" :bold t))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2813 (t (:bold t))))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2814 "Face for items scheduled previously, and not yet done."
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2815 :group 'org-faces)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2816
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
2817 (defface org-time-grid ;; font-lock-variable-name-face
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2818 (org-compatible-face
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2819 '((((class color) (min-colors 16) (background light)) (:foreground "DarkGoldenrod"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2820 (((class color) (min-colors 16) (background dark)) (:foreground "LightGoldenrod"))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2821 (((class color) (min-colors 8)) (:foreground "yellow" :weight light))))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
2822 "Face used for time grids."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2823 :group 'org-faces)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
2824
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2825 (defconst org-level-faces
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
2826 '(org-level-1 org-level-2 org-level-3 org-level-4
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
2827 org-level-5 org-level-6 org-level-7 org-level-8
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
2828 ))
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2829 (defconst org-n-levels (length org-level-faces))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
2830
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2831
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2832 ;; Variables for pre-computed regular expressions, all buffer local
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2833 (defvar org-done-string nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2834 "The last string in `org-todo-keywords', indicating an item is DONE.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2835 (make-variable-buffer-local 'org-done-string)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2836 (defvar org-todo-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2837 "Matches any of the TODO state keywords.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2838 (make-variable-buffer-local 'org-todo-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2839 (defvar org-not-done-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2840 "Matches any of the TODO state keywords except the last one.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2841 (make-variable-buffer-local 'org-not-done-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2842 (defvar org-todo-line-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2843 "Matches a headline and puts TODO state into group 2 if present.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2844 (make-variable-buffer-local 'org-todo-line-regexp)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2845 (defvar org-todo-line-tags-regexp nil
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2846 "Matches a headline and puts TODO state into group 2 if present.
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2847 Also put tags into group 4 if tags are present.")
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
2848 (make-variable-buffer-local 'org-todo-line-tags-regexp)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2849 (defvar org-nl-done-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2850 "Matches newline followed by a headline with the DONE keyword.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2851 (make-variable-buffer-local 'org-nl-done-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2852 (defvar org-looking-at-done-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2853 "Matches the DONE keyword a point.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2854 (make-variable-buffer-local 'org-looking-at-done-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2855 (defvar org-todo-kwd-priority-p nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2856 "Do TODO items have priorities?")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2857 (make-variable-buffer-local 'org-todo-kwd-priority-p)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2858 (defvar org-todo-kwd-max-priority nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2859 "Maximum priority of TODO items.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2860 (make-variable-buffer-local 'org-todo-kwd-max-priority)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2861 (defvar org-ds-keyword-length 12
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2862 "Maximum length of the Deadline and SCHEDULED keywords.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2863 (make-variable-buffer-local 'org-ds-keyword-length)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2864 (defvar org-deadline-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2865 "Matches the DEADLINE keyword.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2866 (make-variable-buffer-local 'org-deadline-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2867 (defvar org-deadline-time-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2868 "Matches the DEADLINE keyword together with a time stamp.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2869 (make-variable-buffer-local 'org-deadline-time-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2870 (defvar org-deadline-line-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2871 "Matches the DEADLINE keyword and the rest of the line.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2872 (make-variable-buffer-local 'org-deadline-line-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2873 (defvar org-scheduled-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2874 "Matches the SCHEDULED keyword.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2875 (make-variable-buffer-local 'org-scheduled-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2876 (defvar org-scheduled-time-regexp nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2877 "Matches the SCHEDULED keyword together with a time stamp.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2878 (make-variable-buffer-local 'org-scheduled-time-regexp)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2879 (defvar org-closed-time-regexp nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2880 "Matches the CLOSED keyword together with a time stamp.")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2881 (make-variable-buffer-local 'org-closed-time-regexp)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2882
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2883 (defvar org-keyword-time-regexp nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2884 "Matches any of the 3 keywords, together with the time stamp.")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2885 (make-variable-buffer-local 'org-keyword-time-regexp)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2886 (defvar org-maybe-keyword-time-regexp nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2887 "Matches a timestamp, possibly preceeded by a keyword.")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2888 (make-variable-buffer-local 'org-keyword-time-regexp)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2889
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2890 (defconst org-rm-props '(invisible t face t keymap t intangible t mouse-face t
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2891 rear-nonsticky t mouse-map t)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2892 "Properties to remove when a string without properties is wanted.")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2893
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2894 (defsubst org-match-string-no-properties (num &optional string)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2895 (if (featurep 'xemacs)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2896 (let ((s (match-string num string)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2897 (remove-text-properties 0 (length s) org-rm-props s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2898 s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2899 (match-string-no-properties num string)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2900
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2901 (defsubst org-no-properties (s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2902 (remove-text-properties 0 (length s) org-rm-props s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2903 s)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
2904
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2905 (defsubst org-get-alist-option (option key)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2906 (cond ((eq key t) t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2907 ((eq option t) t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2908 ((assoc key option) (cdr (assoc key option)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2909 (t (cdr (assq 'default option)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2910
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2911 (defsubst org-set-local (var value)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2912 "Make VAR local in current buffer and set it to VALUE."
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2913 (set (make-variable-buffer-local var) value))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2914
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
2915 (defsubst org-mode-p ()
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
2916 "Check if the current buffer is in Org-mode."
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
2917 (eq major-mode 'org-mode))
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
2918
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2919 (defsubst org-last (list)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2920 "Return the last element of LIST."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2921 (car (last list)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2922
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2923 (defun org-let (list &rest body)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2924 (eval (cons 'let (cons list body))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2925 (put 'org-let 'lisp-indent-function 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2926
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2927 (defun org-let2 (list1 list2 &rest body)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2928 (eval (cons 'let (cons list1 (list (cons 'let (cons list2 body)))))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2929 (put 'org-let2 'lisp-indent-function 2)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2930
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2931 (defconst org-startup-options
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2932 '(("fold" org-startup-folded t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2933 ("overview" org-startup-folded t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2934 ("nofold" org-startup-folded nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2935 ("showall" org-startup-folded nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2936 ("content" org-startup-folded content)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2937 ("hidestars" org-hide-leading-stars t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2938 ("showstars" org-hide-leading-stars nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2939 ("odd" org-odd-levels-only t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2940 ("oddeven" org-odd-levels-only nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2941 ("align" org-startup-align-all-tables t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2942 ("noalign" org-startup-align-all-tables nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2943 ("customtime" org-display-custom-times t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2944 ("logging" org-log-done t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2945 ("nologging" org-log-done nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2946 ("dlcheck" org-startup-with-deadline-check t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2947 ("nodlcheck" org-startup-with-deadline-check nil)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2948
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2949 (defun org-set-regexps-and-options ()
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2950 "Precompute regular expressions for current buffer."
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
2951 (when (org-mode-p)
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2952 (let ((re (org-make-options-regexp
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2953 '("CATEGORY" "SEQ_TODO" "PRI_TODO" "TYP_TODO"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2954 "STARTUP" "ARCHIVE" "TAGS" "LINK")))
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2955 (splitre "[ \t]+")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2956 kwds int key value cat arch tags links)
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2957 (save-excursion
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2958 (save-restriction
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2959 (widen)
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2960 (goto-char (point-min))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2961 (while (re-search-forward re nil t)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2962 (setq key (match-string 1) value (org-match-string-no-properties 2))
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2963 (cond
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2964 ((equal key "CATEGORY")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2965 (if (string-match "[ \t]+$" value)
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2966 (setq value (replace-match "" t t value)))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2967 (setq cat (intern value)))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2968 ((equal key "SEQ_TODO")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2969 (setq int 'sequence
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2970 kwds (append kwds (org-split-string value splitre))))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2971 ((equal key "PRI_TODO")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2972 (setq int 'priority
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2973 kwds (append kwds (org-split-string value splitre))))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2974 ((equal key "TYP_TODO")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2975 (setq int 'type
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2976 kwds (append kwds (org-split-string value splitre))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2977 ((equal key "TAGS")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
2978 (setq tags (append tags (org-split-string value splitre))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2979 ((equal key "LINK")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2980 (when (string-match "^\\(\\S-+\\)[ \t]+\\(.+\\)" value)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2981 (push (cons (match-string 1 value)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2982 (org-trim (match-string 2 value)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2983 links)))
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2984 ((equal key "STARTUP")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2985 (let ((opts (org-split-string value splitre))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2986 l var val)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
2987 (while (setq l (assoc (pop opts) org-startup-options))
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2988 (setq var (nth 1 l) val (nth 2 l))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2989 (set (make-local-variable var) val))))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2990 ((equal key "ARCHIVE")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2991 (string-match " *$" value)
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2992 (setq arch (replace-match "" t t value))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2993 (remove-text-properties 0 (length arch)
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2994 '(face t fontified t) arch)))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
2995 )))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2996 (and cat (org-set-local 'org-category cat))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2997 (and kwds (org-set-local 'org-todo-keywords kwds))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2998 (and arch (org-set-local 'org-archive-location arch))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
2999 (and int (org-set-local 'org-todo-interpretation int))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3000 (and links (setq org-link-abbrev-alist-local (nreverse links)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3001 (when tags
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3002 (let (e tgs)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3003 (while (setq e (pop tags))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3004 (cond
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3005 ((equal e "{") (push '(:startgroup) tgs))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3006 ((equal e "}") (push '(:endgroup) tgs))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3007 ((string-match "^\\([0-9a-zA-Z_@]+\\)(\\(.\\))$" e)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3008 (push (cons (match-string 1 e)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3009 (string-to-char (match-string 2 e)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3010 tgs))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3011 (t (push (list e) tgs))))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3012 (org-set-local 'org-tag-alist nil)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3013 (while (setq e (pop tgs))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3014 (or (and (stringp (car e))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3015 (assoc (car e) org-tag-alist))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3016 (push e org-tag-alist))))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3017
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3018 ;; Compute the regular expressions and other local variables
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3019 (setq org-todo-kwd-priority-p (equal org-todo-interpretation 'priority)
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3020 org-todo-kwd-max-priority (1- (length org-todo-keywords))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3021 org-ds-keyword-length (+ 2 (max (length org-deadline-string)
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3022 (length org-scheduled-string)))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3023 org-done-string
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3024 (nth (1- (length org-todo-keywords)) org-todo-keywords)
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3025 org-todo-regexp
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3026 (concat "\\<\\(" (mapconcat 'regexp-quote org-todo-keywords
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3027 "\\|") "\\)\\>")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3028 org-not-done-regexp
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3029 (concat "\\<\\("
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3030 (mapconcat 'regexp-quote
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3031 (nreverse (cdr (reverse org-todo-keywords)))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3032 "\\|")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3033 "\\)\\>")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3034 org-todo-line-regexp
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3035 (concat "^\\(\\*+\\)[ \t]*\\(?:\\("
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3036 (mapconcat 'regexp-quote org-todo-keywords "\\|")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3037 "\\)\\>\\)? *\\(.*\\)")
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3038 org-nl-done-regexp
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3039 (concat "[\r\n]\\*+[ \t]+" org-done-string "\\>")
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
3040 org-todo-line-tags-regexp
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3041 (concat "^\\(\\*+\\)[ \t]*\\(?:\\("
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
3042 (mapconcat 'regexp-quote org-todo-keywords "\\|")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3043 "\\)\\>\\)? *\\(.*?\\([ \t]:[a-zA-Z0-9:_@]+:[ \t]*\\)?$\\)")
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3044 org-looking-at-done-regexp (concat "^" org-done-string "\\>")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3045 org-deadline-regexp (concat "\\<" org-deadline-string)
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3046 org-deadline-time-regexp
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3047 (concat "\\<" org-deadline-string " *<\\([^>]+\\)>")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3048 org-deadline-line-regexp
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3049 (concat "\\<\\(" org-deadline-string "\\).*")
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3050 org-scheduled-regexp
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3051 (concat "\\<" org-scheduled-string)
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3052 org-scheduled-time-regexp
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3053 (concat "\\<" org-scheduled-string " *<\\([^>]+\\)>")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3054 org-closed-time-regexp
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3055 (concat "\\<" org-closed-string " *\\[\\([^]]+\\)\\]")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3056 org-keyword-time-regexp
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3057 (concat "\\<\\(" org-scheduled-string
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3058 "\\|" org-deadline-string
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3059 "\\|" org-closed-string
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3060 "\\|" org-clock-string "\\)"
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
3061 " *[[<]\\([^]>]+\\)[]>]")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3062 org-maybe-keyword-time-regexp
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3063 (concat "\\(\\<\\(" org-scheduled-string
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3064 "\\|" org-deadline-string
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3065 "\\|" org-closed-string
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3066 "\\|" org-clock-string "\\)\\)?"
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
3067 " *\\([[<][0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^]\r\n>]*?[]>]\\)"))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3068
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3069 (org-set-font-lock-defaults)))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
3070
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3071 ;; Tell the compiler about dynamically scoped variables,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3072 ;; and variables from other packages
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
3073 (defvar calc-embedded-close-formula) ; defined by the calc package
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
3074 (defvar calc-embedded-open-formula) ; defined by the calc package
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
3075 (defvar font-lock-unfontify-region-function) ; defined by font-lock.el
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3076 (defvar zmacs-regions) ; XEmacs regions
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3077 (defvar original-date) ; dynamically scoped in calendar
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3078 (defvar org-old-auto-fill-inhibit-regexp) ; local variable used by `orgtbl-mode'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3079 (defvar orgtbl-mode-menu) ; defined when orgtbl mode get initialized
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3080 (defvar org-html-entities) ; defined later in this file
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3081 (defvar org-goto-start-pos) ; dynamically scoped parameter
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3082 (defvar org-time-was-given) ; dynamically scoped parameter
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3083 (defvar org-ts-what) ; dynamically scoped parameter
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3084 (defvar org-current-export-file) ; dynamically scoped parameter
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3085 (defvar org-current-export-dir) ; dynamically scoped parameter
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3086 (defvar mark-active) ; Emacs only, not available in XEmacs.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3087 (defvar timecnt) ; dynamically scoped parameter
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3088 (defvar levels-open) ; dynamically scoped parameter
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3089 (defvar entry) ; dynamically scoped parameter
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3090 (defvar state) ; dynamically scoped into `org-after-todo-state-change-hook'
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3091 (defvar date) ; dynamically scoped parameter
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3092 (defvar description) ; dynamically scoped parameter
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3093 (defvar ans1) ; dynamically scoped parameter
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3094 (defvar ans2) ; dynamically scoped parameter
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3095 (defvar starting-day) ; local variable
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3096 (defvar include-all-loc) ; local variable
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3097 (defvar vm-message-pointer) ; from vm
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3098 (defvar vm-folder-directory) ; from vm
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3099 (defvar gnus-other-frame-object) ; from gnus
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3100 (defvar wl-summary-buffer-elmo-folder) ; from wanderlust
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3101 (defvar wl-summary-buffer-folder-name) ; from wanderlust
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3102 (defvar gnus-group-name) ; from gnus
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3103 (defvar gnus-article-current) ; from gnus
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3104 (defvar w3m-current-url) ; from w3m
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
3105 (defvar w3m-current-title) ; from w3m
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3106 (defvar mh-progs) ; from MH-E
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3107 (defvar mh-current-folder) ; from MH-E
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3108 (defvar mh-show-folder-buffer) ; from MH-E
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3109 (defvar mh-index-folder) ; from MH-E
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3110 (defvar mh-searcher) ; from MH-E
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3111 (defvar org-selected-point) ; dynamically scoped parameter
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3112 (defvar calendar-mode-map) ; from calendar.el
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3113 (defvar last-arg) ; local variable
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3114 (defvar remember-save-after-remembering) ; from remember.el
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3115 (defvar remember-data-file) ; from remember.el
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3116 (defvar annotation) ; from remember.el, dynamically scoped in `remember-mode'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3117 (defvar initial) ; from remember.el, dynamically scoped in `remember-mode'
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3118 (defvar orgtbl-mode) ; defined later in this file
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3119 (defvar Info-current-file) ; from info.el
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3120 (defvar Info-current-node) ; from info.el
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
3121 (defvar texmathp-why) ; from texmathp.el
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
3122 (defvar org-latex-regexps)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3123 (defvar outline-mode-menu-heading)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3124 (defvar outline-mode-menu-show)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3125 (defvar outline-mode-menu-hide)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3126
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3127 ;;; Define the mode
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3128
73616
a81e38c24e22 (org-mode-map): No longer copy `outline-mode-map' explicitly
Carsten Dominik <dominik@science.uva.nl>
parents: 73245
diff changeset
3129 (if (and (not (keymapp outline-mode-map)) (featurep 'allout))
a81e38c24e22 (org-mode-map): No longer copy `outline-mode-map' explicitly
Carsten Dominik <dominik@science.uva.nl>
parents: 73245
diff changeset
3130 (error "Conflict with outdated version of allout.el. Load org.el before allout.el, or ugrade to newer allout, for example by switching to Emacs 22."))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3131
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3132 (defvar org-struct-menu) ; defined later in this file
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3133 (defvar org-org-menu) ; defined later in this file
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3134 (defvar org-tbl-menu) ; defined later in this file
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3135
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3136 ;; We use a before-change function to check if a table might need
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3137 ;; an update.
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3138 (defvar org-table-may-need-update t
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
3139 "Indicates that a table might need an update.
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
3140 This variable is set by `org-before-change-function'.
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
3141 `org-table-align' sets it back to nil.")
73616
a81e38c24e22 (org-mode-map): No longer copy `outline-mode-map' explicitly
Carsten Dominik <dominik@science.uva.nl>
parents: 73245
diff changeset
3142 (defvar org-mode-map)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3143 (defvar org-mode-hook nil)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3144 (defvar org-inhibit-startup nil) ; Dynamically-scoped param.
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
3145 (defvar org-agenda-keep-modes nil) ; Dynamically-scoped param.
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3146
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3147
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3148 ;;;###autoload
62712
b9935dc86aa4 (org-mode): Use `define-derived-mode' to define
Carsten Dominik <dominik@science.uva.nl>
parents: 62546
diff changeset
3149 (define-derived-mode org-mode outline-mode "Org"
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
3150 "Outline-based notes management and organizer, alias
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
3151 \"Carsten's outline-mode for keeping track of everything.\"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3152
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3153 Org-mode develops organizational tasks around a NOTES file which
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3154 contains information about projects as plain text. Org-mode is
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3155 implemented on top of outline-mode, which is ideal to keep the content
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3156 of large files well structured. It supports ToDo items, deadlines and
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3157 time stamps, which magically appear in the diary listing of the Emacs
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3158 calendar. Tables are easily created with a built-in table editor.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3159 Plain text URL-like links connect to websites, emails (VM), Usenet
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3160 messages (Gnus), BBDB entries, and any files related to the project.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3161 For printing and sharing of notes, an Org-mode file (or a part of it)
62712
b9935dc86aa4 (org-mode): Use `define-derived-mode' to define
Carsten Dominik <dominik@science.uva.nl>
parents: 62546
diff changeset
3162 can be exported as a structured ASCII or HTML file.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3163
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
3164 The following commands are available:
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3165
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3166 \\{org-mode-map}"
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3167
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3168 ;; Get rid of Outline menus, they are not needed
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3169 ;; Need to do this here because define-derived-mode sets up
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3170 ;; the keymap so late. Still, it is a waste to call this each time
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3171 ;; we switch another buffer into org-mode.
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3172 (if (featurep 'xemacs)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3173 (when (boundp 'outline-mode-menu-heading)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3174 ;; Assume this is Greg's port, it used easymenu
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3175 (easy-menu-remove outline-mode-menu-heading)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3176 (easy-menu-remove outline-mode-menu-show)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3177 (easy-menu-remove outline-mode-menu-hide))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3178 (define-key org-mode-map [menu-bar headings] 'undefined)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3179 (define-key org-mode-map [menu-bar hide] 'undefined)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3180 (define-key org-mode-map [menu-bar show] 'undefined))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3181
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3182 (easy-menu-add org-org-menu)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
3183 (easy-menu-add org-tbl-menu)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3184 (org-install-agenda-files-menu)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3185 (if org-descriptive-links (org-add-to-invisibility-spec '(org-link)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3186 (org-add-to-invisibility-spec '(org-cwidth))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3187 (when (featurep 'xemacs)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3188 (org-set-local 'line-move-ignore-invisible t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3189 (setq outline-regexp "\\*+")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3190 ;;(setq outline-regexp "\\(?:\\*+\\|[ \t]*\\(?:[-+*]\\|[0-9]+[.)]\\) \\)")
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3191 (setq outline-level 'org-outline-level)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3192 (when (and org-ellipsis (stringp org-ellipsis))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3193 (unless org-display-table
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3194 (setq org-display-table (make-display-table)))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3195 (set-display-table-slot org-display-table
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3196 4 (string-to-vector org-ellipsis))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3197 (setq buffer-display-table org-display-table))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3198 (org-set-regexps-and-options)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3199 ;; Calc embedded
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3200 (org-set-local 'calc-embedded-open-mode "# ")
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3201 (modify-syntax-entry ?# "<")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3202 (if org-startup-truncated (setq truncate-lines t))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3203 (org-set-local 'font-lock-unfontify-region-function
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3204 'org-unfontify-region)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3205 ;; Activate before-change-function
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3206 (org-set-local 'org-table-may-need-update t)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3207 (org-add-hook 'before-change-functions 'org-before-change-function nil
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3208 'local)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3209 ;; Check for running clock before killing a buffer
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3210 (org-add-hook 'kill-buffer-hook 'org-check-running-clock nil 'local)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
3211 ;; Paragraphs and auto-filling
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
3212 (org-set-autofill-regexps)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3213 (org-update-radio-target-regexp)
74727
1c1b185d7575 (org-mode): Show context after isearch.
Carsten Dominik <dominik@science.uva.nl>
parents: 74723
diff changeset
3214 ;; Make isearch reveal context after success
1c1b185d7575 (org-mode): Show context after isearch.
Carsten Dominik <dominik@science.uva.nl>
parents: 74723
diff changeset
3215 (org-set-local 'outline-isearch-open-invisible-function
1c1b185d7575 (org-mode): Show context after isearch.
Carsten Dominik <dominik@science.uva.nl>
parents: 74723
diff changeset
3216 (lambda (&rest ignore) (org-show-context nil t)))
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
3217
62712
b9935dc86aa4 (org-mode): Use `define-derived-mode' to define
Carsten Dominik <dominik@science.uva.nl>
parents: 62546
diff changeset
3218 (if (and org-insert-mode-line-in-empty-file
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3219 (interactive-p)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3220 (= (point-min) (point-max)))
62712
b9935dc86aa4 (org-mode): Use `define-derived-mode' to define
Carsten Dominik <dominik@science.uva.nl>
parents: 62546
diff changeset
3221 (insert " -*- mode: org -*-\n\n"))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
3222
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3223 (unless org-inhibit-startup
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
3224 (when org-startup-align-all-tables
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
3225 (let ((bmp (buffer-modified-p)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
3226 (org-table-map-tables 'org-table-align)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
3227 (set-buffer-modified-p bmp)))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3228 (if org-startup-with-deadline-check
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3229 (call-interactively 'org-check-deadlines)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3230 (cond
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3231 ((eq org-startup-folded t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3232 (org-cycle '(4)))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3233 ((eq org-startup-folded 'content)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3234 (let ((this-command 'org-cycle) (last-command 'org-cycle))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3235 (org-cycle '(4)) (org-cycle '(4))))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3236
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3237 (defsubst org-call-with-arg (command arg)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3238 "Call COMMAND interactively, but pretend prefix are was ARG."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3239 (let ((current-prefix-arg arg)) (call-interactively command)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3240
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
3241 (defsubst org-current-line (&optional pos)
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
3242 (save-excursion
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
3243 (and pos (goto-char pos))
74723
c6c8c744f694 (org-current-line): Make sure that lines are
Carsten Dominik <dominik@science.uva.nl>
parents: 74294
diff changeset
3244 (+ (if (bolp) 1 0) (count-lines 1 (point)))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
3245
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3246 (defun org-current-time ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3247 "Current time, possibly rounded to `org-time-stamp-rounding-minutes'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3248 (if (> org-time-stamp-rounding-minutes 0)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3249 (let ((r org-time-stamp-rounding-minutes)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3250 (time (decode-time)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3251 (apply 'encode-time
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3252 (append (list 0 (* r (floor (+ .5 (/ (float (nth 1 time)) r)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3253 (nthcdr 2 time))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3254 (current-time)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3255
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3256 (defun org-add-props (string plist &rest props)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3257 "Add text properties to entire string, from beginning to end.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3258 PLIST may be a list of properties, PROPS are individual properties and values
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3259 that will be added to PLIST. Returns the string that was modified."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3260 (add-text-properties
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3261 0 (length string) (if props (append plist props) plist) string)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
3262 string)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3263 (put 'org-add-props 'lisp-indent-function 2)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3264
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
3265
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3266 ;;; Font-Lock stuff
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3267
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3268 (defvar org-mouse-map (make-sparse-keymap))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
3269 (define-key org-mouse-map
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3270 (if (featurep 'xemacs) [button2] [mouse-2]) 'org-open-at-mouse)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3271 (define-key org-mouse-map
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3272 (if (featurep 'xemacs) [button3] [mouse-3]) 'org-find-file-at-mouse)
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
3273 (when org-mouse-1-follows-link
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
3274 (define-key org-mouse-map [follow-link] 'mouse-face))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3275 (when org-tab-follows-link
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3276 (define-key org-mouse-map [(tab)] 'org-open-at-point)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3277 (define-key org-mouse-map "\C-i" 'org-open-at-point))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3278 (when org-return-follows-link
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3279 (define-key org-mouse-map [(return)] 'org-open-at-point)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3280 (define-key org-mouse-map "\C-m" 'org-open-at-point))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3281
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3282 (require 'font-lock)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3283
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3284 (defconst org-non-link-chars "]\t\n\r<>")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3285 (defconst org-link-types '("https?" "ftp" "mailto" "file" "news" "bbdb" "vm"
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3286 "wl" "mhe" "rmail" "gnus" "shell" "info" "elisp"))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3287 (defconst org-link-re-with-space
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3288 (concat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3289 "<?\\(" (mapconcat 'identity org-link-types "\\|") "\\):"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3290 "\\([^" org-non-link-chars " ]"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3291 "[^" org-non-link-chars "]*"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3292 "[^" org-non-link-chars " ]\\)>?")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3293 "Matches a link with spaces, optional angular brackets around it.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3294
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3295 (defconst org-link-re-with-space2
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3296 (concat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3297 "<?\\(" (mapconcat 'identity org-link-types "\\|") "\\):"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3298 "\\([^" org-non-link-chars " ]"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3299 "[^]\t\n\r]*"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3300 "[^" org-non-link-chars " ]\\)>?")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3301 "Matches a link with spaces, optional angular brackets around it.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3302
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3303 (defconst org-angle-link-re
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3304 (concat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3305 "<\\(" (mapconcat 'identity org-link-types "\\|") "\\):"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3306 "\\([^" org-non-link-chars " ]"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3307 "[^" org-non-link-chars "]*"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3308 "\\)>")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3309 "Matches link with angular brackets, spaces are allowed.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3310 (defconst org-plain-link-re
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3311 (concat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3312 "\\(" (mapconcat 'identity org-link-types "\\|") "\\):"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3313 "\\([^]\t\n\r<>,;() ]+\\)")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3314 "Matches plain link, without spaces.")
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
3315
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3316 (defconst org-bracket-link-regexp
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3317 "\\[\\[\\([^]]+\\)\\]\\(\\[\\([^]]+\\)\\]\\)?\\]"
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3318 "Matches a link in double brackets.")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3319
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3320 (defconst org-bracket-link-analytic-regexp
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3321 (concat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3322 "\\[\\["
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3323 "\\(\\(" (mapconcat 'identity org-link-types "\\|") "\\):\\)?"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3324 "\\([^]]+\\)"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3325 "\\]"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3326 "\\(\\[" "\\([^]]+\\)" "\\]\\)?"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3327 "\\]"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3328 ; 1: http:
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3329 ; 2: http
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3330 ; 3: path
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3331 ; 4: [desc]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3332 ; 5: desc
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3333
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3334 (defconst org-ts-lengths
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3335 (cons (length (format-time-string (car org-time-stamp-formats)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3336 (length (format-time-string (cdr org-time-stamp-formats))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3337 "This holds the lengths of the two different time formats.")
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
3338 (defconst org-ts-regexp "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^\r\n>]*?\\)>"
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
3339 "Regular expression for fast time stamp matching.")
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
3340 (defconst org-ts-regexp-both "[[<]\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\}[^\r\n>]*?\\)[]>]"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3341 "Regular expression for fast time stamp matching.")
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
3342 (defconst org-ts-regexp1 "\\(\\([0-9]\\{4\\}\\)-\\([0-9]\\{2\\}\\)-\\([0-9]\\{2\\}\\)\\([^]0-9>\r\n]*\\)\\(\\([0-9]\\{2\\}\\):\\([0-9]\\{2\\}\\)\\)?\\)"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3343 "Regular expression matching time strings for analysis.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3344 (defconst org-ts-regexp2 (concat "<" org-ts-regexp1 ">")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3345 "Regular expression matching time stamps, with groups.")
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
3346 (defconst org-ts-regexp3 (concat "[[<]" org-ts-regexp1 "[]>]")
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
3347 "Regular expression matching time stamps (also [..]), with groups.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3348 (defconst org-tr-regexp (concat org-ts-regexp "--?-?" org-ts-regexp)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3349 "Regular expression matching a time stamp range.")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3350 (defconst org-tr-regexp-both
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3351 (concat org-ts-regexp-both "--?-?" org-ts-regexp-both)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3352 "Regular expression matching a time stamp range.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3353 (defconst org-tsr-regexp (concat org-ts-regexp "\\(--?-?"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3354 org-ts-regexp "\\)?")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3355 "Regular expression matching a time stamp or time stamp range.")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3356 (defconst org-tsr-regexp-both (concat org-ts-regexp-both "\\(--?-?"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3357 org-ts-regexp-both "\\)?")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3358 "Regular expression matching a time stamp or time stamp range.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3359 The time stamps may be either active or inactive.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3360
73983
a75094e97e8f (org-emph-face): fix typo in varible name.
Carsten Dominik <dominik@science.uva.nl>
parents: 73966
diff changeset
3361 (defvar org-emph-face nil)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3362
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3363 (defun org-do-emphasis-faces (limit)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3364 "Run through the buffer and add overlays to links."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3365 (if (re-search-forward org-emph-re limit t)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3366 (progn
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3367 (font-lock-prepend-text-property (match-beginning 2) (match-end 2)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3368 'face
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3369 (nth 1 (assoc (match-string 3)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3370 org-emphasis-alist)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3371 (add-text-properties (match-beginning 2) (match-end 2)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3372 '(font-lock-multiline t))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3373 (backward-char 1)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3374 t)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3375
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3376 (defun org-activate-plain-links (limit)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3377 "Run through the buffer and add overlays to links."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3378 (if (re-search-forward org-plain-link-re limit t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3379 (progn
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3380 (add-text-properties (match-beginning 0) (match-end 0)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3381 (list 'mouse-face 'highlight
73245
29e3148cc7f9 * textmodes/org.el (org-rm-props, org-activate-plain-links)
Carsten Dominik <dominik@science.uva.nl>
parents: 73164
diff changeset
3382 'rear-nonsticky t
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3383 'keymap org-mouse-map
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3384 ))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3385 t)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3386
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3387 (defun org-activate-angle-links (limit)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3388 "Run through the buffer and add overlays to links."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3389 (if (re-search-forward org-angle-link-re limit t)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3390 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3391 (add-text-properties (match-beginning 0) (match-end 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3392 (list 'mouse-face 'highlight
73245
29e3148cc7f9 * textmodes/org.el (org-rm-props, org-activate-plain-links)
Carsten Dominik <dominik@science.uva.nl>
parents: 73164
diff changeset
3393 'rear-nonsticky t
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3394 'keymap org-mouse-map
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3395 ))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3396 t)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3397
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3398 (defmacro org-maybe-intangible (props)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3399 "Add '(intangigble t) to PROPS if Emacs version is earlier than Emacs 22.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3400 In emacs 21, invisible text is not avoided by the command loop, so the
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3401 intangible property is needed to make sure point skips this text.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3402 In Emacs 22, this is not necessary. The intangible text property has
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3403 led to problems with flyspell. These problems are fixed in flyspell.el,
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3404 but we still avoid setting the property in Emacs 22 and later.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3405 We use a macro so that the test can happen at compilation time."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3406 (if (< emacs-major-version 22)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3407 `(append '(intangible t) ,props)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3408 props))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3409
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3410 (defun org-activate-bracket-links (limit)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3411 "Run through the buffer and add overlays to bracketed links."
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3412 (if (re-search-forward org-bracket-link-regexp limit t)
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
3413 (let* ((help (concat "LINK: "
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
3414 (org-match-string-no-properties 1)))
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
3415 ;; FIXME: above we should remove the escapes.
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3416 ;; but that requires another match, protecting match data,
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3417 ;; a lot of overhead for font-lock.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3418 (ip (org-maybe-intangible
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3419 (list 'invisible 'org-link 'rear-nonsticky t
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3420 'keymap org-mouse-map 'mouse-face 'highlight
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3421 'help-echo help)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3422 (vp (list 'rear-nonsticky t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3423 'keymap org-mouse-map 'mouse-face 'highlight
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3424 'help-echo help)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3425 ;; We need to remove the invisible property here. Table narrowing
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3426 ;; may have made some of this invisible.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3427 (remove-text-properties (match-beginning 0) (match-end 0)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3428 '(invisible nil))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3429 (if (match-end 3)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3430 (progn
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3431 (add-text-properties (match-beginning 0) (match-beginning 3) ip)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3432 (add-text-properties (match-beginning 3) (match-end 3) vp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3433 (add-text-properties (match-end 3) (match-end 0) ip))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3434 (add-text-properties (match-beginning 0) (match-beginning 1) ip)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3435 (add-text-properties (match-beginning 1) (match-end 1) vp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3436 (add-text-properties (match-end 1) (match-end 0) ip))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3437 t)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3438
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3439 (defun org-activate-dates (limit)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3440 "Run through the buffer and add overlays to dates."
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3441 ; (if (re-search-forward org-tsr-regexp limit t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3442 ; (if (re-search-forward
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3443 ; (if org-display-custom-times org-ts-regexp-both org-tsr-regexp-both)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3444 ; limit t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3445 (if (re-search-forward org-tsr-regexp-both limit t)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3446 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3447 (add-text-properties (match-beginning 0) (match-end 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3448 (list 'mouse-face 'highlight
73245
29e3148cc7f9 * textmodes/org.el (org-rm-props, org-activate-plain-links)
Carsten Dominik <dominik@science.uva.nl>
parents: 73164
diff changeset
3449 'rear-nonsticky t
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3450 'keymap org-mouse-map))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3451 (when org-display-custom-times
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3452 (if (match-end 3)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3453 (org-display-custom-time (match-beginning 3) (match-end 3)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3454 (org-display-custom-time (match-beginning 1) (match-end 1)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3455 t)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3456
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3457 (defvar org-target-link-regexp nil
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3458 "Regular expression matching radio targets in plain text.")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3459 (defvar org-target-regexp "<<\\([^<>\n\r]+\\)>>"
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3460 "Regular expression matching a link target.")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3461 (defvar org-radio-target-regexp "<<<\\([^<>\n\r]+\\)>>>"
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3462 "Regular expression matching a link target.")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3463
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3464 (defun org-activate-target-links (limit)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3465 "Run through the buffer and add overlays to target matches."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3466 (when org-target-link-regexp
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3467 (let ((case-fold-search t))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3468 (if (re-search-forward org-target-link-regexp limit t)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3469 (progn
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3470 (add-text-properties (match-beginning 0) (match-end 0)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3471 (list 'mouse-face 'highlight
73245
29e3148cc7f9 * textmodes/org.el (org-rm-props, org-activate-plain-links)
Carsten Dominik <dominik@science.uva.nl>
parents: 73164
diff changeset
3472 'rear-nonsticky t
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3473 'keymap org-mouse-map
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3474 'help-echo "Radio target link"
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3475 'org-linked-text t))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3476 t)))))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3477
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3478 (defun org-update-radio-target-regexp ()
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3479 "Find all radio targets in this file and update the regular expression."
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3480 (interactive)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3481 (when (memq 'radio org-activate-links)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3482 (setq org-target-link-regexp
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3483 (org-make-target-link-regexp (org-all-targets 'radio)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3484 (org-restart-font-lock)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3485
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3486 (defun org-hide-wide-columns (limit)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3487 (let (s e)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3488 (setq s (text-property-any (point) (or limit (point-max))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3489 'org-cwidth t))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3490 (when s
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3491 (setq e (next-single-property-change s 'org-cwidth))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3492 (add-text-properties s e (org-maybe-intangible '(invisible org-cwidth)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3493 (goto-char e)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3494 t)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3495
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3496 (defun org-restart-font-lock ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3497 "Restart font-lock-mode, to force refontification."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3498 (when (and (boundp 'font-lock-mode) font-lock-mode)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3499 (font-lock-mode -1)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3500 (font-lock-mode 1)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3501
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3502 (defun org-all-targets (&optional radio)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3503 "Return a list of all targets in this file.
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3504 With optional argument RADIO, only find radio targets."
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3505 (let ((re (if radio org-radio-target-regexp org-target-regexp))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3506 rtn)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3507 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3508 (goto-char (point-min))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3509 (while (re-search-forward re nil t)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3510 (add-to-list 'rtn (downcase (org-match-string-no-properties 1))))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3511 rtn)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3512
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3513 (defun org-make-target-link-regexp (targets)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3514 "Make regular expression matching all strings in TARGETS.
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3515 The regular expression finds the targets also if there is a line break
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3516 between words."
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3517 (and targets
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3518 (concat
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3519 "\\<\\("
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3520 (mapconcat
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3521 (lambda (x)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3522 (while (string-match " +" x)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3523 (setq x (replace-match "\\s-+" t t x)))
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3524 x)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3525 targets
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3526 "\\|")
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3527 "\\)\\>")))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3528
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
3529 (defvar org-camel-regexp "\\*?\\<[A-Z]+[a-z]+[A-Z][a-zA-Z]*\\>"
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
3530 "Matches CamelCase words, possibly with a star before it.")
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3531
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3532 (defun org-activate-camels (limit)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3533 "Run through the buffer and add overlays to dates."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3534 (if (re-search-forward org-camel-regexp limit t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3535 (progn
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3536 (add-text-properties (match-beginning 0) (match-end 0)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3537 (list 'mouse-face 'highlight
73245
29e3148cc7f9 * textmodes/org.el (org-rm-props, org-activate-plain-links)
Carsten Dominik <dominik@science.uva.nl>
parents: 73164
diff changeset
3538 'rear-nonsticky t
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3539 'keymap org-mouse-map))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3540 t)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3541
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3542 (defun org-activate-tags (limit)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3543 (if (re-search-forward "[ \t]\\(:[A-Za-z_@0-9:]+:\\)[ \r\n]" limit t)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3544 (progn
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3545 (add-text-properties (match-beginning 1) (match-end 1)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3546 (list 'mouse-face 'highlight
73245
29e3148cc7f9 * textmodes/org.el (org-rm-props, org-activate-plain-links)
Carsten Dominik <dominik@science.uva.nl>
parents: 73164
diff changeset
3547 'rear-nonsticky t
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3548 'keymap org-mouse-map))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3549 t)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
3550
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3551 (defun org-font-lock-level ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3552 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3553 (org-back-to-heading t)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3554 (- (match-end 0) (match-beginning 0))))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
3555
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3556 (defun org-outline-level ()
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3557 (save-excursion
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3558 (looking-at outline-regexp)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3559 (if (match-beginning 1)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3560 (+ (org-get-string-indentation (match-string 1)) 1000)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3561 (- (match-end 0) (match-beginning 0)))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3562
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3563 (defvar org-font-lock-keywords nil)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3564
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3565 (defun org-set-font-lock-defaults ()
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3566 (let* ((em org-fontify-emphasized-text)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3567 (lk org-activate-links)
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3568 (org-font-lock-extra-keywords
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3569 ;; Headlines
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3570 (list
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3571 '("^\\(\\**\\)\\(\\*\\)\\(.*\\)" (1 (org-get-level-face 1))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3572 (2 (org-get-level-face 2)) (3 (org-get-level-face 3)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3573 '("^[ \t]*\\(\\(|\\|\\+-[-+]\\).*\\S-\\)"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3574 (1 'org-table))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3575 ;; Links
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3576 (if (memq 'angle lk) '(org-activate-angle-links (0 'org-link t)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3577 (if (memq 'plain lk) '(org-activate-plain-links (0 'org-link t)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3578 (if (memq 'bracket lk) '(org-activate-bracket-links (0 'org-link t)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3579 (if (memq 'radio lk) '(org-activate-target-links (0 'org-link t)))
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
3580 (if (memq 'date lk) '(org-activate-dates (0 'org-date t)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3581 (if (memq 'camel lk) '(org-activate-camels (0 'org-link t)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3582 (if (memq 'tag lk) '(org-activate-tags (1 'org-tag prepend)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3583 (if org-table-limit-column-width
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3584 '(org-hide-wide-columns (0 nil append)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3585 ;; TODO lines
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3586 (list (concat "^\\*+[ \t]*" org-not-done-regexp)
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
3587 '(1 'org-todo t))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3588 ;; Priorities
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3589 (list (concat "\\[#[A-Z]\\]") '(0 'org-special-keyword t))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3590 ;; Special keywords
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3591 (list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3592 (list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3593 (list (concat "\\<" org-closed-string) '(0 'org-special-keyword t))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3594 (list (concat "\\<" org-clock-string) '(0 'org-special-keyword t))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3595 ;; Emphasis
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3596 (if em
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3597 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3598 '(org-do-emphasis-faces (0 nil append))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3599 '(org-do-emphasis-faces)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3600 ;; Checkboxes, similar to Frank Ruell's org-checklet.el
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3601 '("^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[ X]\\]\\)"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3602 2 'bold prepend)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3603 (if org-provide-checkbox-statistics
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3604 '("\\[\\([0-9]*%\\)\\]\\|\\[\\([0-9]*\\)/\\([0-9]*\\)\\]"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3605 (0 (org-get-checkbox-statistics-face) t)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3606 ;; COMMENT
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3607 (list (concat "^\\*+[ \t]*\\<\\(" org-comment-string
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3608 "\\|" org-quote-string "\\)\\>")
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3609 '(1 'org-special-keyword t))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3610 '("^#.*" (0 'font-lock-comment-face t))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3611 ;; DONE
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3612 (if org-fontify-done-headline
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3613 (list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\(.*\\)\\>")
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3614 '(1 'org-done t) '(2 'org-headline-done t))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3615 (list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\>")
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3616 '(1 'org-done t)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3617 ;; Table stuff
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3618 '("^[ \t]*\\(:.*\\)" (1 'org-table t))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3619 '("| *\\(:?=[^|\n]*\\)" (1 'org-formula t))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3620 '("^[ \t]*| *\\([#!$*_^]\\) *|" (1 'org-formula t))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3621 (if org-format-transports-properties-p
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
3622 '("| *\\(<[0-9]+>\\) *" (1 'org-formula t)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3623 '("^\\*+ \\(.*:ARCHIVE:.*\\)" (1 'org-archived prepend))
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3624 )))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
3625 (setq org-font-lock-extra-keywords (delq nil org-font-lock-extra-keywords))
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
3626 ;; Now set the full font-lock-keywords
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3627 (org-set-local 'org-font-lock-keywords org-font-lock-extra-keywords)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3628 (org-set-local 'font-lock-defaults
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
3629 '(org-font-lock-keywords t nil nil backward-paragraph))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3630 (kill-local-variable 'font-lock-keywords) nil))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
3631
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3632 (defvar org-m nil)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3633 (defvar org-l nil)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3634 (defvar org-f nil)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3635 (defun org-get-level-face (n)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3636 "Get the right face for match N in font-lock matching of healdines."
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3637 (setq org-l (- (match-end 2) (match-beginning 1)))
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3638 (if org-odd-levels-only (setq org-l (1+ (/ org-l 2))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3639 ; (setq org-f (nth (1- (% org-l org-n-levels)) org-level-faces))
69685
15d9920a3a63 (org-get-level-face): Fixed bug with level counting.
Carsten Dominik <dominik@science.uva.nl>
parents: 69620
diff changeset
3640 (setq org-f (nth (% (1- org-l) org-n-levels) org-level-faces))
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3641 (cond
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3642 ((eq n 1) (if org-hide-leading-stars 'org-hide org-f))
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3643 ((eq n 2) org-f)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3644 (t (if org-level-color-stars-only nil org-f))))
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3645
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3646 (defun org-unfontify-region (beg end &optional maybe_loudly)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3647 "Remove fontification and activation overlays from links."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3648 (font-lock-default-unfontify-region beg end)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3649 (let* ((buffer-undo-list t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3650 (inhibit-read-only t) (inhibit-point-motion-hooks t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3651 (inhibit-modification-hooks t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3652 deactivate-mark buffer-file-name buffer-file-truename)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3653 (remove-text-properties beg end
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3654 '(mouse-face t keymap t org-linked-text t
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3655 rear-nonsticky t
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3656 invisible t intangible t))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3657
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3658 ;;; Visibility cycling
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3659
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3660 (defvar org-cycle-global-status nil)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3661 (make-variable-buffer-local 'org-cycle-global-status)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3662 (defvar org-cycle-subtree-status nil)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3663 (make-variable-buffer-local 'org-cycle-subtree-status)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3664
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3665 ;;;###autoload
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3666 (defun org-cycle (&optional arg)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
3667 "Visibility cycling for Org-mode.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3668
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3669 - When this function is called with a prefix argument, rotate the entire
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3670 buffer through 3 states (global cycling)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3671 1. OVERVIEW: Show only top-level headlines.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3672 2. CONTENTS: Show all headlines of all levels, but no body text.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3673 3. SHOW ALL: Show everything.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3674
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3675 - When point is at the beginning of a headline, rotate the subtree started
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3676 by this line through 3 different states (local cycling)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3677 1. FOLDED: Only the main headline is shown.
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
3678 2. CHILDREN: The main headline and the direct children are shown.
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
3679 From this state, you can move to one of the children
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
3680 and zoom in further.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3681 3. SUBTREE: Show the entire subtree, including body text.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3682
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
3683 - When there is a numeric prefix, go up to a heading with level ARG, do
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
3684 a `show-subtree' and return to the previous cursor position. If ARG
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
3685 is negative, go up that many levels.
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
3686
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3687 - When point is not at the beginning of a headline, execute
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3688 `indent-relative', like TAB normally does. See the option
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3689 `org-cycle-emulate-tab' for details.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3690
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3691 - Special case: if point is the the beginning of the buffer and there is
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3692 no headline in line 1, this function will act as if called with prefix arg."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3693 (interactive "P")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3694 (let* ((outline-regexp
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3695 (if (and (org-mode-p) org-cycle-include-plain-lists)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3696 "\\(?:\\*+\\|\\([ \t]*\\)\\([-+*]\\|[0-9]+[.)]\\) \\)"
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3697 outline-regexp))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3698 (bob-special (and org-cycle-global-at-bob (bobp)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3699 (not (looking-at outline-regexp))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3700 (org-cycle-hook
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3701 (if bob-special
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3702 (delq 'org-optimize-window-after-visibility-change
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3703 (copy-sequence org-cycle-hook))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3704 org-cycle-hook))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3705 (pos (point)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3706
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3707 (if (or bob-special (equal arg '(4)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3708 ;; special case: use global cycling
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3709 (setq arg t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3710
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3711 (cond
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3712
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3713 ((org-at-table-p 'any)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3714 ;; Enter the table or move to the next field in the table
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3715 (or (org-table-recognize-table.el)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3716 (progn
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3717 (if arg (org-table-edit-field t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3718 (org-table-justify-field-maybe)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3719 (call-interactively 'org-table-next-field)))))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3720
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3721 ((eq arg t) ;; Global cycling
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
3722
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3723 (cond
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3724 ((and (eq last-command this-command)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3725 (eq org-cycle-global-status 'overview))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3726 ;; We just created the overview - now do table of contents
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3727 ;; This can be slow in very large buffers, so indicate action
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3728 (message "CONTENTS...")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3729 (org-content)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3730 (message "CONTENTS...done")
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3731 (setq org-cycle-global-status 'contents)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3732 (run-hook-with-args 'org-cycle-hook 'contents))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3733
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3734 ((and (eq last-command this-command)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3735 (eq org-cycle-global-status 'contents))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3736 ;; We just showed the table of contents - now show everything
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3737 (show-all)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3738 (message "SHOW ALL")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3739 (setq org-cycle-global-status 'all)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3740 (run-hook-with-args 'org-cycle-hook 'all))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3741
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3742 (t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3743 ;; Default action: go to overview
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3744 (org-overview)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3745 (message "OVERVIEW")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3746 (setq org-cycle-global-status 'overview)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3747 (run-hook-with-args 'org-cycle-hook 'overview))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3748
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3749 ((integerp arg)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3750 ;; Show-subtree, ARG levels up from here.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3751 (save-excursion
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3752 (org-back-to-heading)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3753 (outline-up-heading (if (< arg 0) (- arg)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
3754 (- (funcall outline-level) arg)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3755 (org-show-subtree)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3756
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3757 ((save-excursion (beginning-of-line 1) (looking-at outline-regexp))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3758 ;; At a heading: rotate between three different views
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3759 (org-back-to-heading)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3760 (let ((goal-column 0) eoh eol eos)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3761 ;; First, some boundaries
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3762 (save-excursion
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3763 (org-back-to-heading)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3764 (save-excursion
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3765 (beginning-of-line 2)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3766 (while (and (not (eobp)) ;; this is like `next-line'
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3767 (get-char-property (1- (point)) 'invisible))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3768 (beginning-of-line 2)) (setq eol (point)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3769 (outline-end-of-heading) (setq eoh (point))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
3770 (org-end-of-subtree t) (setq eos (point))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3771 (outline-next-heading))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3772 ;; Find out what to do next and set `this-command'
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3773 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3774 ((and (= eos eoh)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3775 ;; Nothing is hidden behind this heading
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3776 (message "EMPTY ENTRY")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3777 (setq org-cycle-subtree-status nil)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3778 ((>= eol eos)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3779 ;; Entire subtree is hidden in one line: open it
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3780 (org-show-entry)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3781 (show-children)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3782 (message "CHILDREN")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3783 (setq org-cycle-subtree-status 'children)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3784 (run-hook-with-args 'org-cycle-hook 'children))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3785 ((and (eq last-command this-command)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3786 (eq org-cycle-subtree-status 'children))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3787 ;; We just showed the children, now show everything.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3788 (org-show-subtree)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3789 (message "SUBTREE")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3790 (setq org-cycle-subtree-status 'subtree)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3791 (run-hook-with-args 'org-cycle-hook 'subtree))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3792 (t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3793 ;; Default action: hide the subtree.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3794 (hide-subtree)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3795 (message "FOLDED")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3796 (setq org-cycle-subtree-status 'folded)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3797 (run-hook-with-args 'org-cycle-hook 'folded)))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3798
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3799 ;; TAB emulation
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3800 (buffer-read-only (org-back-to-heading))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3801
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3802 ((org-try-cdlatex-tab))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
3803
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3804 ((if (and (memq org-cycle-emulate-tab '(white whitestart))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3805 (save-excursion (beginning-of-line 1) (looking-at "[ \t]*"))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3806 (or (and (eq org-cycle-emulate-tab 'white)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3807 (= (match-end 0) (point-at-eol)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3808 (and (eq org-cycle-emulate-tab 'whitestart)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
3809 (>= (match-end 0) pos))))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3810 t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3811 (eq org-cycle-emulate-tab t))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3812 (if (and (looking-at "[ \n\r\t]")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3813 (string-match "^[ \t]*$" (buffer-substring
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3814 (point-at-bol) (point))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3815 (progn
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3816 (beginning-of-line 1)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3817 (and (looking-at "[ \t]+") (replace-match ""))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3818 (indent-relative))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3819
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3820 (t (save-excursion
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3821 (org-back-to-heading)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
3822 (org-cycle))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3823
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3824 ;;;###autoload
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3825 (defun org-global-cycle (&optional arg)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3826 "Cycle the global visibility. For details see `org-cycle'."
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
3827 (interactive "P")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3828 (let ((org-cycle-include-plain-lists
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3829 (if (org-mode-p) org-cycle-include-plain-lists nil)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3830 (if (integerp arg)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3831 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3832 (show-all)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3833 (hide-sublevels arg)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3834 (setq org-cycle-global-status 'contents))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3835 (org-cycle '(4)))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3836
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3837 (defun org-overview ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3838 "Switch to overview mode, shoing only top-level headlines.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3839 Really, this shows all headlines with level equal or greater than the level
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3840 of the first headline in the buffer. This is important, because if the
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3841 first headline is not level one, then (hide-sublevels 1) gives confusing
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3842 results."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3843 (interactive)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3844 (hide-sublevels (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3845 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3846 (if (re-search-forward (concat "^" outline-regexp) nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3847 (progn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3848 (goto-char (match-beginning 0))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3849 (funcall outline-level))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3850 1))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3851
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3852 ;; FIXME: allow an argument to give a limiting level for this.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3853 (defun org-content ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3854 "Show all headlines in the buffer, like a table of contents"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3855 (interactive)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3856 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3857 ;; Visit all headings and show their offspring
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3858 (goto-char (point-max))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3859 (catch 'exit
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3860 (while (and (progn (condition-case nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3861 (outline-previous-visible-heading 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3862 (error (goto-char (point-min))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3863 t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3864 (looking-at outline-regexp))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3865 (show-branches)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3866 (if (bobp) (throw 'exit nil))))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3867
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
3868
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3869 (defun org-optimize-window-after-visibility-change (state)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3870 "Adjust the window after a change in outline visibility.
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3871 This function is the default value of the hook `org-cycle-hook'."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3872 (when (get-buffer-window (current-buffer))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3873 (cond
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3874 ((eq state 'overview) (org-first-headline-recenter 1))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3875 ((eq state 'content) nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3876 ((eq state 'all) nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3877 ((eq state 'folded) nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3878 ((eq state 'children) (or (org-subtree-end-visible-p) (recenter 1)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3879 ((eq state 'subtree) (or (org-subtree-end-visible-p) (recenter 1))))))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3880
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3881 (defun org-subtree-end-visible-p ()
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3882 "Is the end of the current subtree visible?"
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3883 (pos-visible-in-window-p
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
3884 (save-excursion (org-end-of-subtree t) (point))))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3885
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3886 (defun org-first-headline-recenter (&optional N)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3887 "Move cursor to the first headline and recenter the headline.
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3888 Optional argument N means, put the headline into the Nth line of the window."
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3889 (goto-char (point-min))
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
3890 (when (re-search-forward (concat "^\\(" outline-regexp "\\)") nil t)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3891 (beginning-of-line)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3892 (recenter (prefix-numeric-value N))))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3893
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3894 (defvar org-goto-window-configuration nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3895 (defvar org-goto-marker nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3896 (defvar org-goto-map (make-sparse-keymap))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3897 (let ((cmds '(isearch-forward isearch-backward)) cmd)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3898 (while (setq cmd (pop cmds))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3899 (substitute-key-definition cmd cmd org-goto-map global-map)))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
3900 (define-key org-goto-map "\C-m" 'org-goto-ret)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3901 (define-key org-goto-map [(left)] 'org-goto-left)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3902 (define-key org-goto-map [(right)] 'org-goto-right)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3903 (define-key org-goto-map [(?q)] 'org-goto-quit)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3904 (define-key org-goto-map [(control ?g)] 'org-goto-quit)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
3905 (define-key org-goto-map "\C-i" 'org-cycle)
69482
a305f07816a9 (org-insert-centered): Use `string-width' to make
Carsten Dominik <dominik@science.uva.nl>
parents: 69454
diff changeset
3906 (define-key org-goto-map [(tab)] 'org-cycle)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3907 (define-key org-goto-map [(down)] 'outline-next-visible-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3908 (define-key org-goto-map [(up)] 'outline-previous-visible-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3909 (define-key org-goto-map "n" 'outline-next-visible-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3910 (define-key org-goto-map "p" 'outline-previous-visible-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3911 (define-key org-goto-map "f" 'outline-forward-same-level)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3912 (define-key org-goto-map "b" 'outline-backward-same-level)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3913 (define-key org-goto-map "u" 'outline-up-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3914 (define-key org-goto-map "\C-c\C-n" 'outline-next-visible-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3915 (define-key org-goto-map "\C-c\C-p" 'outline-previous-visible-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3916 (define-key org-goto-map "\C-c\C-f" 'outline-forward-same-level)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3917 (define-key org-goto-map "\C-c\C-b" 'outline-backward-same-level)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3918 (define-key org-goto-map "\C-c\C-u" 'outline-up-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3919 (let ((l '(1 2 3 4 5 6 7 8 9 0)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3920 (while l (define-key org-goto-map (int-to-string (pop l)) 'digit-argument)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3921
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3922 (defconst org-goto-help
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3923 "Select a location to jump to, press RET
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3924 \[Up]/[Down]=next/prev headline TAB=cycle visibility RET=select [Q]uit")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3925
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3926 (defun org-goto ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3927 "Go to a different location of the document, keeping current visibility.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3928
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3929 When you want to go to a different location in a document, the fastest way
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3930 is often to fold the entire buffer and then dive into the tree. This
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3931 method has the disadvantage, that the previous location will be folded,
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
3932 which may not be what you want.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3933
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3934 This command works around this by showing a copy of the current buffer in
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3935 overview mode. You can dive into the tree in that copy, to find the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3936 location you want to reach. When pressing RET, the command returns to the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3937 original buffer in which the visibility is still unchanged. It then jumps
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3938 to the new location, making it and the headline hierarchy above it visible."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3939 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3940 (let* ((org-goto-start-pos (point))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3941 (selected-point
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3942 (org-get-location (current-buffer) org-goto-help)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3943 (if selected-point
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3944 (progn
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3945 (org-mark-ring-push org-goto-start-pos)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3946 (goto-char selected-point)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
3947 (if (or (org-invisible-p) (org-invisible-p2))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
3948 (org-show-context 'org-goto)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3949 (error "Quit"))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3950
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3951 (defun org-get-location (buf help)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3952 "Let the user select a location in the Org-mode buffer BUF.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3953 This function uses a recursive edit. It returns the selected position
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3954 or nil."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3955 (let (org-selected-point)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3956 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3957 (save-window-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3958 (delete-other-windows)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3959 (switch-to-buffer (get-buffer-create "*org-goto*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3960 (with-output-to-temp-buffer "*Help*"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3961 (princ help))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3962 (shrink-window-if-larger-than-buffer (get-buffer-window "*Help*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3963 (setq buffer-read-only nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3964 (erase-buffer)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
3965 (insert-buffer-substring buf)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3966 (let ((org-startup-truncated t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3967 (org-startup-folded t)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
3968 (org-startup-align-all-tables nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3969 (org-startup-with-deadline-check nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3970 (org-mode))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3971 (setq buffer-read-only t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3972 (if (boundp 'org-goto-start-pos)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3973 (goto-char org-goto-start-pos)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3974 (goto-char (point-min)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3975 (org-beginning-of-line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3976 (message "Select location and press RET")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3977 ;; now we make sure that during selection, ony very few keys work
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3978 ;; and that it is impossible to switch to another window.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3979 (let ((gm (current-global-map))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3980 (overriding-local-map org-goto-map))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3981 (unwind-protect
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3982 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3983 (use-global-map org-goto-map)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3984 (recursive-edit))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3985 (use-global-map gm)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3986 (kill-buffer "*org-goto*")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3987 org-selected-point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3988
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3989 (defun org-goto-ret (&optional arg)
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
3990 "Finish `org-goto' by going to the new location."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3991 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3992 (setq org-selected-point (point)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
3993 current-prefix-arg arg)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3994 (throw 'exit nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3995
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3996 (defun org-goto-left ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
3997 "Finish `org-goto' by going to the new location."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
3998 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3999 (if (org-on-heading-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4000 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4001 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4002 (setq org-selected-point (point)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4003 current-prefix-arg (- (match-end 0) (match-beginning 0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4004 (throw 'exit nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4005 (error "Not on a heading")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4006
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4007 (defun org-goto-right ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
4008 "Finish `org-goto' by going to the new location."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4009 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4010 (if (org-on-heading-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4011 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4012 (outline-end-of-subtree)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4013 (or (eobp) (forward-char 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4014 (setq org-selected-point (point)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4015 current-prefix-arg (- (match-end 0) (match-beginning 0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4016 (throw 'exit nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4017 (error "Not on a heading")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4018
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4019 (defun org-goto-quit ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
4020 "Finish `org-goto' without cursor motion."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4021 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4022 (setq org-selected-point nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4023 (throw 'exit nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4024
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4025 ;;; Promotion, Demotion, Inserting new headlines
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4026
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4027 (defvar org-ignore-region nil
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4028 "To temporarily disable the active region.")
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4029
67380
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4030 (defun org-insert-heading (&optional force-heading)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4031 "Insert a new heading or item with same depth at point.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4032 If point is in a plain list and FORCE-HEADING is nil, create a new list item.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4033 If point is at the beginning of a headline, insert a sibling before the
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4034 current headline. If point is in the middle of a headline, split the headline
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4035 at that position and make the rest of the headline part of the sibling below
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4036 the current headline."
67380
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4037 (interactive "P")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4038 (if (= (buffer-size) 0)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4039 (insert "\n* ")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4040 (when (or force-heading (not (org-insert-item)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4041 (let* ((head (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4042 (condition-case nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4043 (progn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4044 (org-back-to-heading)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4045 (match-string 0))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4046 (error "*"))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4047 (blank (cdr (assq 'heading org-blank-before-new-entry)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4048 pos)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
4049 (cond
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
4050 ((and (org-on-heading-p) (bolp)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4051 (save-excursion (backward-char 1) (not (org-invisible-p))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4052 (open-line (if blank 2 1)))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
4053 ((and (bolp) (save-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
4054 (backward-char 1) (not (org-invisible-p))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
4055 nil)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4056 (t (newline (if blank 2 1))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4057 (insert head) (just-one-space)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4058 (setq pos (point))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4059 (end-of-line 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4060 (unless (= (point) pos) (just-one-space) (backward-delete-char 1))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4061 (run-hooks 'org-insert-heading-hook)))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4062
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4063 (defun org-in-item-p ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4064 "It the cursor inside a plain list item.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4065 Does not have to be the first line."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4066 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4067 (condition-case nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4068 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4069 (org-beginning-of-item)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4070 (org-at-item-p)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4071 t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4072 (error nil))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4073
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4074 (defun org-insert-item (&optional checkbox)
67380
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4075 "Insert a new item at the current level.
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
4076 Return t when things worked, nil when we are not in an item."
67380
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4077 (when (save-excursion
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4078 (condition-case nil
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4079 (progn
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4080 (org-beginning-of-item)
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4081 (org-at-item-p)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4082 (if (org-invisible-p) (error "Invisible item"))
67380
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4083 t)
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4084 (error nil)))
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4085 (let* ((bul (match-string 0))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4086 (eow (save-excursion (beginning-of-line 1) (looking-at "[ \t]*")
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4087 (match-end 0)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4088 (blank (cdr (assq 'plain-list-item org-blank-before-new-entry)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4089 pos)
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4090 (cond
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4091 ((and (org-at-item-p) (<= (point) eow))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4092 ;; before the bullet
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4093 (beginning-of-line 1)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4094 (open-line (if blank 2 1)))
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4095 ((<= (point) eow)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
4096 (beginning-of-line 1))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4097 (t (newline (if blank 2 1))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4098 (insert bul (if checkbox "[ ]" ""))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4099 (just-one-space)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4100 (setq pos (point))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4101 (end-of-line 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4102 (unless (= (point) pos) (just-one-space) (backward-delete-char 1)))
67380
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4103 (org-maybe-renumber-ordered-list)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4104 (and checkbox (org-update-checkbox-count-maybe))
67380
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4105 t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4106
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4107 (defun org-insert-todo-heading (arg)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4108 "Insert a new heading with the same level and TODO state as current heading.
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4109 If the heading has no TODO state, or if the state is DONE, use the first
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4110 state (TODO by default). Also with prefix arg, force first state."
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4111 (interactive "P")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4112 (when (not (org-insert-item 'checkbox))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4113 (org-insert-heading)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4114 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4115 (org-back-to-heading)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
4116 (outline-previous-heading)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4117 (looking-at org-todo-line-regexp))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4118 (if (or arg
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4119 (not (match-beginning 2))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4120 (equal (match-string 2) org-done-string))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4121 (insert (car org-todo-keywords) " ")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4122 (insert (match-string 2) " "))))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4123
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4124 (defun org-promote-subtree ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4125 "Promote the entire subtree.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4126 See also `org-promote'."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4127 (interactive)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4128 (save-excursion
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4129 (org-map-tree 'org-promote))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4130 (org-fix-position-after-promote))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4131
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4132 (defun org-demote-subtree ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4133 "Demote the entire subtree. See `org-demote'.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4134 See also `org-promote'."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4135 (interactive)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4136 (save-excursion
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4137 (org-map-tree 'org-demote))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4138 (org-fix-position-after-promote))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4139
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4140
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4141 (defun org-do-promote ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4142 "Promote the current heading higher up the tree.
62076
4f2150e05f24 (org-get-entries-from-diary): Remove unused vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 61924
diff changeset
4143 If the region is active in `transient-mark-mode', promote all headings
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4144 in the region."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4145 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4146 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4147 (if (org-region-active-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4148 (org-map-region 'org-promote (region-beginning) (region-end))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4149 (org-promote)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4150 (org-fix-position-after-promote))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4151
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4152 (defun org-do-demote ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4153 "Demote the current heading lower down the tree.
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4154 If the region is active in `transient-mark-mode', demote all headings
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4155 in the region."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4156 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4157 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4158 (if (org-region-active-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4159 (org-map-region 'org-demote (region-beginning) (region-end))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4160 (org-demote)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4161 (org-fix-position-after-promote))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4162
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4163 (defun org-fix-position-after-promote ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4164 "Make sure that after pro/demotion cursor position is right."
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4165 (if (and (equal (char-after) ?\n)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4166 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4167 (skip-chars-backward "a-zA-Z0-9_@")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4168 (looking-at org-todo-regexp)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4169 (insert " "))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4170 (and (equal (char-after) ?\ )
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4171 (equal (char-before) ?*)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4172 (forward-char 1)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4173
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4174 (defun org-get-legal-level (level &optional change)
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4175 "Rectify a level change under the influence of `org-odd-levels-only'
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4176 LEVEL is a current level, CHANGE is by how much the level should be
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4177 modified. Even if CHANGE is nil, LEVEL may be returned modified because
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4178 even level numbers will become the next higher odd number."
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4179 (if org-odd-levels-only
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4180 (cond ((or (not change) (= 0 change)) (1+ (* 2 (/ level 2))))
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4181 ((> change 0) (1+ (* 2 (/ (+ level (* 2 change)) 2))))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4182 ((< change 0) (max 1 (1+ (* 2 (/ (+ level (* 2 change)) 2))))))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4183 (max 1 (+ level change))))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4184
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4185 (defun org-promote ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4186 "Promote the current heading higher up the tree.
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4187 If the region is active in `transient-mark-mode', promote all headings
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4188 in the region."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4189 (org-back-to-heading t)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4190 (let* ((level (save-match-data (funcall outline-level)))
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4191 (up-head (make-string (org-get-legal-level level -1) ?*))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4192 (diff (abs (- level (length up-head)))))
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
4193 (if (= level 1) (error "Cannot promote to level 0. UNDO to recover if necessary"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4194 (replace-match up-head nil t)
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
4195 ;; Fixup tag positioning
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
4196 (and org-auto-align-tags (org-set-tags nil t))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4197 (if org-adapt-indentation (org-fixup-indentation (- diff)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4198
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4199 (defun org-demote ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4200 "Demote the current heading lower down the tree.
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4201 If the region is active in `transient-mark-mode', demote all headings
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4202 in the region."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4203 (org-back-to-heading t)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4204 (let* ((level (save-match-data (funcall outline-level)))
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4205 (down-head (make-string (org-get-legal-level level 1) ?*))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4206 (diff (abs (- level (length down-head)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4207 (replace-match down-head nil t)
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
4208 ;; Fixup tag positioning
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
4209 (and org-auto-align-tags (org-set-tags nil t))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4210 (if org-adapt-indentation (org-fixup-indentation diff))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4211
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4212 (defun org-map-tree (fun)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4213 "Call FUN for every heading underneath the current one."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4214 (org-back-to-heading)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
4215 (let ((level (funcall outline-level)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4216 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4217 (funcall fun)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4218 (while (and (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4219 (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4220 (> (funcall outline-level) level))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4221 (not (eobp)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4222 (funcall fun)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4223
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4224 (defun org-map-region (fun beg end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4225 "Call FUN for every heading between BEG and END."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4226 (let ((org-ignore-region t))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4227 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4228 (setq end (copy-marker end))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4229 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4230 (if (and (re-search-forward (concat "^" outline-regexp) nil t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4231 (< (point) end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4232 (funcall fun))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4233 (while (and (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4234 (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4235 (< (point) end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4236 (not (eobp)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4237 (funcall fun)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4238
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4239 (defun org-fixup-indentation (diff)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4240 "Change the indentation in the current entry by DIFF
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4241 However, if any line in the current entry has no indentation, or if it
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4242 would end up with no indentation after the change, nothing at all is done."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4243 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4244 (let ((end (save-excursion (outline-next-heading)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4245 (point-marker)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4246 (prohibit (if (> diff 0)
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
4247 "^\\S-"
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4248 (concat "^ \\{0," (int-to-string (- diff)) "\\}\\S-")))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4249 col)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4250 (unless (save-excursion (re-search-forward prohibit end t))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4251 (while (re-search-forward "^[ \t]+" end t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4252 (goto-char (match-end 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4253 (setq col (current-column))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4254 (if (< diff 0) (replace-match ""))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4255 (indent-to (+ diff col))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4256 (move-marker end nil))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4257
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4258 ;;; Vertical tree motion, cutting and pasting of subtrees
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4259
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4260 (defun org-move-subtree-up (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4261 "Move the current subtree up past ARG headlines of the same level."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4262 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4263 (org-move-subtree-down (- (prefix-numeric-value arg))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4264
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4265 (defun org-move-subtree-down (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4266 "Move the current subtree down past ARG headlines of the same level."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4267 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4268 (setq arg (prefix-numeric-value arg))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4269 (let ((movfunc (if (> arg 0) 'outline-get-next-sibling
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4270 'outline-get-last-sibling))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4271 (ins-point (make-marker))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4272 (cnt (abs arg))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4273 beg end txt folded)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4274 ;; Select the tree
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4275 (org-back-to-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4276 (setq beg (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4277 (save-match-data
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4278 (save-excursion (outline-end-of-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4279 (setq folded (org-invisible-p)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4280 (outline-end-of-subtree))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
4281 (outline-next-heading)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4282 (setq end (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4283 ;; Find insertion point, with error handling
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4284 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4285 (while (> cnt 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4286 (or (and (funcall movfunc) (looking-at outline-regexp))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4287 (progn (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4288 (error "Cannot move past superior level or buffer limit")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4289 (setq cnt (1- cnt)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4290 (if (> arg 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4291 ;; Moving forward - still need to move over subtree
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4292 (progn (outline-end-of-subtree)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4293 (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4294 (if (not (or (looking-at (concat "^" outline-regexp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4295 (bolp)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4296 (newline))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4297 (move-marker ins-point (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4298 (setq txt (buffer-substring beg end))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4299 (delete-region beg end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4300 (insert txt)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4301 (goto-char ins-point)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4302 (if folded (hide-subtree))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4303 (move-marker ins-point nil)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4304
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4305 (defvar org-subtree-clip ""
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4306 "Clipboard for cut and paste of subtrees.
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
4307 This is actually only a copy of the kill, because we use the normal kill
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4308 ring. We need it to check if the kill was created by `org-copy-subtree'.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4309
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4310 (defvar org-subtree-clip-folded nil
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4311 "Was the last copied subtree folded?
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4312 This is used to fold the tree back after pasting.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4313
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4314 (defun org-cut-subtree ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4315 "Cut the current subtree into the clipboard.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4316 This is a short-hand for marking the subtree and then cutting it."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4317 (interactive)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4318 (org-copy-subtree 'cut))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4319
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4320 (defun org-copy-subtree (&optional cut)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4321 "Cut the current subtree into the clipboard.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4322 This is a short-hand for marking the subtree and then copying it.
73653
ad4fe300688b (org-copy-subtree): Use "non-nil" in docstrings.
Juanma Barranquero <lekktu@gmail.com>
parents: 73616
diff changeset
4323 If CUT is non-nil, actually cut the subtree."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
4324 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4325 (let (beg end folded)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4326 (org-back-to-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4327 (setq beg (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4328 (save-match-data
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4329 (save-excursion (outline-end-of-heading)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4330 (setq folded (org-invisible-p)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4331 (outline-end-of-subtree))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4332 (if (equal (char-after) ?\n) (forward-char 1))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4333 (setq end (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4334 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4335 (when (> end beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4336 (setq org-subtree-clip-folded folded)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4337 (if cut (kill-region beg end) (copy-region-as-kill beg end))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4338 (setq org-subtree-clip (current-kill 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4339 (message "%s: Subtree with %d characters"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4340 (if cut "Cut" "Copied")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4341 (length org-subtree-clip)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4342
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4343 (defun org-paste-subtree (&optional level tree)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4344 "Paste the clipboard as a subtree, with modification of headline level.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4345 The entire subtree is promoted or demoted in order to match a new headline
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4346 level. By default, the new level is derived from the visible headings
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4347 before and after the insertion point, and taken to be the inferior headline
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4348 level of the two. So if the previous visible heading is level 3 and the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4349 next is level 4 (or vice versa), level 4 will be used for insertion.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4350 This makes sure that the subtree remains an independent subtree and does
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4351 not swallow low level entries.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4352
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4353 You can also force a different level, either by using a numeric prefix
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4354 argument, or by inserting the heading marker by hand. For example, if the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4355 cursor is after \"*****\", then the tree will be shifted to level 5.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4356
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4357 If you want to insert the tree as is, just use \\[yank].
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4358
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4359 If optional TREE is given, use this text instead of the kill ring."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4360 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4361 (unless (org-kill-is-subtree-p tree)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4362 (error
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4363 (substitute-command-keys
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4364 "The kill is not a (set of) tree(s) - please use \\[yank] to yank anyway")))
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
4365 (let* ((txt (or tree (and kill-ring (current-kill 0))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4366 (^re (concat "^\\(" outline-regexp "\\)"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4367 (re (concat "\\(" outline-regexp "\\)"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4368 (^re_ (concat "\\(" outline-regexp "\\)[ \t]*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4369
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4370 (old-level (if (string-match ^re txt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4371 (- (match-end 0) (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4372 -1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4373 (force-level (cond (level (prefix-numeric-value level))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4374 ((string-match
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4375 ^re_ (buffer-substring (point-at-bol) (point)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4376 (- (match-end 0) (match-beginning 0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4377 (t nil)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4378 (previous-level (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4379 (condition-case nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4380 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4381 (outline-previous-visible-heading 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4382 (if (looking-at re)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4383 (- (match-end 0) (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4384 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4385 (error 1))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4386 (next-level (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4387 (condition-case nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4388 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4389 (outline-next-visible-heading 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4390 (if (looking-at re)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4391 (- (match-end 0) (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4392 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4393 (error 1))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4394 (new-level (or force-level (max previous-level next-level)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4395 (shift (if (or (= old-level -1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4396 (= new-level -1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4397 (= old-level new-level))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4398 0
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4399 (- new-level old-level)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4400 (shift1 shift)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4401 (delta (if (> shift 0) -1 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4402 (func (if (> shift 0) 'org-demote 'org-promote))
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
4403 (org-odd-levels-only nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4404 beg end)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4405 ;; Remove the forces level indicator
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4406 (if force-level
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4407 (delete-region (point-at-bol) (point)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4408 ;; Make sure we start at the beginning of an empty line
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4409 (if (not (bolp)) (insert "\n"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4410 (if (not (looking-at "[ \t]*$"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4411 (progn (insert "\n") (backward-char 1)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4412 ;; Paste
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4413 (setq beg (point))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4414 (if (string-match "[ \t\r\n]+\\'" txt)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4415 (setq txt (replace-match "\n" t t txt)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4416 (insert txt)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4417 (setq end (point))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4418 (if (looking-at "[ \t\r\n]+")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4419 (replace-match "\n"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4420 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4421 ;; Shift if necessary
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4422 (if (= shift 0)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4423 (message "Pasted at level %d, without shift" new-level)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4424 (save-restriction
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4425 (narrow-to-region beg end)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4426 (while (not (= shift 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4427 (org-map-region func (point-min) (point-max))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4428 (setq shift (+ delta shift)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4429 (goto-char (point-min))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4430 (message "Pasted at level %d, with shift by %d levels"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4431 new-level shift1)))
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
4432 (if (and kill-ring
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
4433 (eq org-subtree-clip (current-kill 0))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4434 org-subtree-clip-folded)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4435 ;; The tree was folded before it was killed/copied
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4436 (hide-subtree))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4437
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4438 (defun org-kill-is-subtree-p (&optional txt)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4439 "Check if the current kill is an outline subtree, or a set of trees.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4440 Returns nil if kill does not start with a headline, or if the first
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4441 headline level is not the largest headline level in the tree.
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
4442 So this will actually accept several entries of equal levels as well,
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4443 which is OK for `org-paste-subtree'.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4444 If optional TXT is given, check this string instead of the current kill."
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
4445 (let* ((kill (or txt (and kill-ring (current-kill 0)) ""))
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
4446 (start-level (and kill
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
4447 (string-match (concat "\\`" outline-regexp) kill)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4448 (- (match-end 0) (match-beginning 0))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4449 (re (concat "^" outline-regexp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4450 (start 1))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4451 (if (not start-level)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4452 nil ;; does not even start with a heading
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4453 (catch 'exit
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4454 (while (setq start (string-match re kill (1+ start)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4455 (if (< (- (match-end 0) (match-beginning 0)) start-level)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4456 (throw 'exit nil)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4457 t))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4458
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4459 (defun org-narrow-to-subtree ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4460 "Narrow buffer to the current subtree."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4461 (interactive)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4462 (save-excursion
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4463 (narrow-to-region
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4464 (progn (org-back-to-heading) (point))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4465 (progn (org-end-of-subtree t) (point)))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4466
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
4467 ;;; Plain list items
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4468
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4469 (defun org-at-item-p ()
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4470 "Is point in a line starting a hand-formatted item?"
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4471 (let ((llt org-plain-list-ordered-item-terminator))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4472 (save-excursion
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4473 (goto-char (point-at-bol))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
4474 (looking-at
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4475 (cond
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4476 ((eq llt t) "\\([ \t]*\\([-+]\\|\\([0-9]+[.)]\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4477 ((= llt ?.) "\\([ \t]*\\([-+]\\|\\([0-9]+\\.\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4478 ((= llt ?\)) "\\([ \t]*\\([-+]\\|\\([0-9]+)\\)\\)\\|[ \t]+\\*\\)\\( \\|$\\)")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4479 (t (error "Invalid value of `org-plain-list-ordered-item-terminator'")))))))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4480
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4481 (defun org-at-item-checkbox-p ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4482 "Is point at a line starting a plain-list item with a checklet?"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4483 (and (org-at-item-p)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4484 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4485 (goto-char (match-end 0))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4486 (skip-chars-forward " \t")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4487 (looking-at "\\[[ X]\\]"))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4488
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4489 (defun org-toggle-checkbox (&optional arg)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4490 "Toggle the checkbox in the current line."
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4491 (interactive "P")
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4492 (catch 'exit
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4493 (let (beg end status (firstnew 'unknown))
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4494 (cond
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4495 ((org-region-active-p)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4496 (setq beg (region-beginning) end (region-end)))
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4497 ((org-on-heading-p)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4498 (setq beg (point) end (save-excursion (outline-next-heading) (point))))
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4499 ((org-at-item-checkbox-p)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4500 (save-excursion
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4501 (replace-match (if (equal (match-string 0) "[ ]") "[X]" "[ ]") t t))
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4502 (throw 'exit t))
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4503 (t (error "Not at a checkbox or heading, and no active region")))
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4504 (save-excursion
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4505 (goto-char beg)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4506 (while (< (point) end)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4507 (when (org-at-item-checkbox-p)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4508 (setq status (equal (match-string 0) "[X]"))
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4509 (when (eq firstnew 'unknown)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4510 (setq firstnew (not status)))
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
4511 (replace-match
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4512 (if (if arg (not status) firstnew) "[X]" "[ ]") t t))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4513 (beginning-of-line 2)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4514 (org-update-checkbox-count-maybe))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4515
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4516 (defun org-update-checkbox-count-maybe ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4517 "Update checkbox statistics unless turned off by user."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4518 (when org-provide-checkbox-statistics
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4519 (org-update-checkbox-count)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4520
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4521 (defun org-update-checkbox-count (&optional all)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4522 "Update the checkbox statistics in the current section.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4523 This will find all statistic cookies like [57%] and [6/12] and update them
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4524 with the current numbers. With optional prefix argument ALL, do this for
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4525 the whole buffer."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4526 (interactive "P")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4527 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4528 (let* ((buffer-invisibility-spec nil) ; Emacs 21 compatibility
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4529 (beg (progn (outline-back-to-heading) (point)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4530 (end (move-marker (make-marker)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4531 (progn (outline-next-heading) (point))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4532 (re "\\(\\[[0-9]*%\\]\\)\\|\\(\\[[0-9]*/[0-9]*\\]\\)")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4533 (re-box "^[ \t]*\\([-+*]\\|[0-9]+[.)]\\) +\\(\\[[ X]\\]\\)")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4534 b1 e1 f1 c-on c-off lim (cstat 0))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4535 (when all
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4536 (goto-char (point-min))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4537 (outline-next-heading)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4538 (setq beg (point) end (point-max)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4539 (goto-char beg)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4540 (while (re-search-forward re end t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4541 (setq cstat (1+ cstat)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4542 b1 (match-beginning 0)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4543 e1 (match-end 0)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4544 f1 (match-beginning 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4545 lim (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4546 ((org-on-heading-p) (outline-next-heading) (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4547 ((org-at-item-p) (org-end-of-item) (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4548 (t nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4549 c-on 0 c-off 0)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4550 (goto-char e1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4551 (when lim
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4552 (while (re-search-forward re-box lim t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4553 (if (equal (match-string 2) "[ ]")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4554 (setq c-off (1+ c-off))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4555 (setq c-on (1+ c-on))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4556 (delete-region b1 e1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4557 (goto-char b1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4558 (insert (if f1
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4559 (format "[%d%%]" (/ (* 100 c-on) (max 1 (+ c-on c-off))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4560 (format "[%d/%d]" c-on (+ c-on c-off))))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4561 (when (interactive-p)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4562 (message "Checkbox satistics updated %s (%d places)"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4563 (if all "in entire file" "in current outline entry") cstat)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4564
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4565 (defun org-get-checkbox-statistics-face ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4566 "Select the face for checkbox statistics.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4567 The face will be `org-done' when all relevant boxes are checked. Otherwise
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4568 it will be `org-todo'."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4569 (if (match-end 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4570 (if (equal (match-string 1) "100%") 'org-done 'org-todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4571 (if (and (> (match-end 2) (match-beginning 2))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4572 (equal (match-string 2) (match-string 3)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4573 'org-done
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4574 'org-todo)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4575
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4576 (defun org-get-indentation (&optional line)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4577 "Get the indentation of the current line, interpreting tabs.
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4578 When LINE is given, assume it represents a line and compute its indentation."
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4579 (if line
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4580 (if (string-match "^ *" (org-remove-tabs line))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4581 (match-end 0))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4582 (save-excursion
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4583 (beginning-of-line 1)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4584 (skip-chars-forward " \t")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4585 (current-column))))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4586
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4587 (defun org-remove-tabs (s &optional width)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4588 "Replace tabulators in S with spaces.
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4589 Assumes that s is a single line, starting in column 0."
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4590 (setq width (or width tab-width))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4591 (while (string-match "\t" s)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4592 (setq s (replace-match
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4593 (make-string
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4594 (- (* width (/ (+ (match-beginning 0) width) width))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4595 (match-beginning 0)) ?\ )
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4596 t t s)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4597 s)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4598
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4599 ;; FIXME: document properly.
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4600 (defun org-fix-indentation (line ind)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4601 "If the current indenation is smaller than ind1, leave it alone.
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4602 If it is larger than ind, reduce it by ind."
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4603 (let* ((l (org-remove-tabs line))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4604 (i (org-get-indentation l))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4605 (i1 (car ind)) (i2 (cdr ind)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4606 (if (>= i i2) (setq l (substring line i2)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4607 (if (> i1 0)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4608 (concat (make-string i1 ?\ ) l)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
4609 l)))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4610
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4611 (defun org-beginning-of-item ()
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4612 "Go to the beginning of the current hand-formatted item.
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4613 If the cursor is not in an item, throw an error."
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4614 (interactive)
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4615 (let ((pos (point))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
4616 (limit (save-excursion (org-back-to-heading)
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4617 (beginning-of-line 2) (point)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4618 ind ind1)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4619 (if (org-at-item-p)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4620 (beginning-of-line 1)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4621 (beginning-of-line 1)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4622 (skip-chars-forward " \t")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4623 (setq ind (current-column))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4624 (if (catch 'exit
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4625 (while t
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4626 (beginning-of-line 0)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4627 (if (< (point) limit) (throw 'exit nil))
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4628 (unless (looking-at "[ \t]*$")
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4629 (skip-chars-forward " \t")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4630 (setq ind1 (current-column))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4631 (if (< ind1 ind)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4632 (throw 'exit (org-at-item-p))))))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4633 nil
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4634 (goto-char pos)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4635 (error "Not in an item")))))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4636
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4637 (defun org-end-of-item ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
4638 "Go to the end of the current hand-formatted item.
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4639 If the cursor is not in an item, throw an error."
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4640 (interactive)
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4641 (let ((pos (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4642 (limit (save-excursion (outline-next-heading) (point)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4643 (ind (save-excursion
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4644 (org-beginning-of-item)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4645 (skip-chars-forward " \t")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4646 (current-column)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4647 ind1)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4648 (if (catch 'exit
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4649 (while t
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4650 (beginning-of-line 2)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4651 (if (>= (point) limit) (throw 'exit t))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4652 (unless (looking-at "[ \t]*$")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4653 (skip-chars-forward " \t")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4654 (setq ind1 (current-column))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4655 (if (<= ind1 ind) (throw 'exit t)))))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4656 (beginning-of-line 1)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4657 (goto-char pos)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4658 (error "Not in an item"))))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
4659
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4660 (defun org-next-item ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4661 "Move to the beginning of the next item in the current plain list.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4662 Error if not at a plain list, or if this is the last item in the list."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4663 (interactive)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4664 (let (ind ind1 (pos (point)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4665 (org-beginning-of-item)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4666 (setq ind (org-get-indentation))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4667 (org-end-of-item)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4668 (setq ind1 (org-get-indentation))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4669 (unless (and (org-at-item-p) (= ind ind1))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4670 (goto-char pos)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
4671 (error "On last item"))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4672
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4673 (defun org-previous-item ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4674 "Move to the beginning of the previous item in the current plain list.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4675 Error if not at a plain list, or if this is the last item in the list."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4676 (interactive)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4677 (let (beg ind (pos (point)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4678 (org-beginning-of-item)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4679 (setq beg (point))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4680 (setq ind (org-get-indentation))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4681 (goto-char beg)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4682 (catch 'exit
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4683 (while t
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4684 (beginning-of-line 0)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4685 (if (looking-at "[ \t]*$")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4686 nil
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4687 (if (<= (org-get-indentation) ind)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4688 (throw 'exit t)))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4689 (condition-case nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4690 (org-beginning-of-item)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4691 (error (goto-char pos)
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
4692 (error "On first item")))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4693
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4694 (defun org-move-item-down ()
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4695 "Move the plain list item at point down, i.e. swap with following item.
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
4696 Subitems (items with larger indentation) are considered part of the item,
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4697 so this really moves item trees."
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4698 (interactive)
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4699 (let (beg end ind ind1 (pos (point)) txt)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4700 (org-beginning-of-item)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4701 (setq beg (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4702 (setq ind (org-get-indentation))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4703 (org-end-of-item)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4704 (setq end (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4705 (setq ind1 (org-get-indentation))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4706 (if (and (org-at-item-p) (= ind ind1))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4707 (progn
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4708 (org-end-of-item)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4709 (setq txt (buffer-substring beg end))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4710 (save-excursion
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4711 (delete-region beg end))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4712 (setq pos (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4713 (insert txt)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4714 (goto-char pos)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4715 (org-maybe-renumber-ordered-list))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4716 (goto-char pos)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4717 (error "Cannot move this item further down"))))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
4718
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4719 (defun org-move-item-up (arg)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4720 "Move the plain list item at point up, i.e. swap with previous item.
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
4721 Subitems (items with larger indentation) are considered part of the item,
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4722 so this really moves item trees."
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4723 (interactive "p")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4724 (let (beg end ind ind1 (pos (point)) txt)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4725 (org-beginning-of-item)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4726 (setq beg (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4727 (setq ind (org-get-indentation))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4728 (org-end-of-item)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4729 (setq end (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4730 (goto-char beg)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4731 (catch 'exit
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4732 (while t
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4733 (beginning-of-line 0)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4734 (if (looking-at "[ \t]*$")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4735 nil
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4736 (if (<= (setq ind1 (org-get-indentation)) ind)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4737 (throw 'exit t)))))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4738 (condition-case nil
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4739 (org-beginning-of-item)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4740 (error (goto-char beg)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4741 (error "Cannot move this item further up")))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4742 (setq ind1 (org-get-indentation))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4743 (if (and (org-at-item-p) (= ind ind1))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4744 (progn
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4745 (setq txt (buffer-substring beg end))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4746 (save-excursion
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4747 (delete-region beg end))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4748 (setq pos (point))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4749 (insert txt)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4750 (goto-char pos)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4751 (org-maybe-renumber-ordered-list))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4752 (goto-char pos)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4753 (error "Cannot move this item further up"))))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
4754
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4755 (defun org-maybe-renumber-ordered-list ()
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4756 "Renumber the ordered list at point if setup allows it.
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4757 This tests the user option `org-auto-renumber-ordered-lists' before
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4758 doing the renumbering."
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4759 (and org-auto-renumber-ordered-lists
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4760 (org-at-item-p)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4761 (match-beginning 3)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4762 (org-renumber-ordered-list 1)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4763
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4764 (defun org-get-string-indentation (s)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4765 "What indentation has S due to SPACE and TAB at the beginning of the string?"
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4766 (let ((n -1) (i 0) (w tab-width) c)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4767 (catch 'exit
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4768 (while (< (setq n (1+ n)) (length s))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4769 (setq c (aref s n))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4770 (cond ((= c ?\ ) (setq i (1+ i)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4771 ((= c ?\t) (setq i (* (/ (+ w i) w) w)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4772 (t (throw 'exit t)))))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4773 i))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4774
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4775 (defun org-renumber-ordered-list (arg)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4776 "Renumber an ordered plain list.
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4777 Cursor needs to be in the first line of an item, the line that starts
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4778 with something like \"1.\" or \"2)\"."
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4779 (interactive "p")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4780 (unless (and (org-at-item-p)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4781 (match-beginning 3))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4782 (error "This is not an ordered list"))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4783 (let ((line (org-current-line))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4784 (col (current-column))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4785 (ind (org-get-string-indentation
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4786 (buffer-substring (point-at-bol) (match-beginning 3))))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
4787 ;; (term (substring (match-string 3) -1))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4788 ind1 (n (1- arg)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4789 ;; find where this list begins
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4790 (catch 'exit
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4791 (while t
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4792 (catch 'next
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4793 (beginning-of-line 0)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4794 (if (looking-at "[ \t]*$") (throw 'next t))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4795 (skip-chars-forward " \t") (setq ind1 (current-column))
67380
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4796 (if (or (< ind1 ind)
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4797 (and (= ind1 ind)
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4798 (not (org-at-item-p))))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4799 (throw 'exit t)))))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4800 ;; Walk forward and replace these numbers
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4801 (catch 'exit
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4802 (while t
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4803 (catch 'next
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4804 (beginning-of-line 2)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4805 (if (eobp) (throw 'exit nil))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4806 (if (looking-at "[ \t]*$") (throw 'next nil))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4807 (skip-chars-forward " \t") (setq ind1 (current-column))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4808 (if (> ind1 ind) (throw 'next t))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4809 (if (< ind1 ind) (throw 'exit t))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4810 (if (not (org-at-item-p)) (throw 'exit nil))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4811 (if (not (match-beginning 3))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4812 (error "unordered bullet in ordered list. Press \\[undo] to recover"))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4813 (delete-region (match-beginning 3) (1- (match-end 3)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4814 (goto-char (match-beginning 3))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4815 (insert (format "%d" (setq n (1+ n)))))))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4816 (goto-line line)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4817 (move-to-column col)))
67380
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
4818
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4819 (defvar org-last-indent-begin-marker (make-marker))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4820 (defvar org-last-indent-end-marker (make-marker))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4821
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4822 (defun org-outdent-item (arg)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4823 "Outdent a local list item."
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4824 (interactive "p")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4825 (org-indent-item (- arg)))
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4826
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4827 (defun org-indent-item (arg)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4828 "Indent a local list item."
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4829 (interactive "p")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4830 (unless (org-at-item-p)
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4831 (error "Not on an item"))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4832 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4833 (let (beg end ind ind1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4834 (if (memq last-command '(org-shiftmetaright org-shiftmetaleft))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4835 (setq beg org-last-indent-begin-marker
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4836 end org-last-indent-end-marker)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4837 (org-beginning-of-item)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4838 (setq beg (move-marker org-last-indent-begin-marker (point)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4839 (org-end-of-item)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4840 (setq end (move-marker org-last-indent-end-marker (point))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4841 (goto-char beg)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4842 (skip-chars-forward " \t") (setq ind (current-column))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4843 (if (< (+ arg ind) 0) (error "Cannot outdent beyond margin"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4844 (while (< (point) end)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4845 (beginning-of-line 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4846 (skip-chars-forward " \t") (setq ind1 (current-column))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4847 (delete-region (point-at-bol) (point))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4848 (indent-to-column (+ ind1 arg))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
4849 (beginning-of-line 2)))))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4850
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4851 ;;; Archiving
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
4852
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4853 (defun org-archive-subtree (&optional find-done)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
4854 "Move the current subtree to the archive.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
4855 The archive can be a certain top-level heading in the current file, or in
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
4856 a different file. The tree will be moved to that location, the subtree
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4857 heading be marked DONE, and the current time will be added.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4858
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4859 When called with prefix argument FIND-DONE, find whole trees without any
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4860 open TODO items and archive them (after getting confirmation from the user).
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4861 If the cursor is not at a headline when this comand is called, try all level
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4862 1 trees. If the cursor is on a headline, only try the direct children of
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4863 this heading. "
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4864 (interactive "P")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4865 (if find-done
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4866 (org-archive-all-done)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4867 ;; Save all relevant TODO keyword-relatex variables
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
4868
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4869 (let ((tr-org-todo-line-regexp org-todo-line-regexp) ; keep despite compiler
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4870 (tr-org-todo-keywords org-todo-keywords)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4871 (tr-org-todo-interpretation org-todo-interpretation)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4872 (tr-org-done-string org-done-string)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4873 (tr-org-todo-regexp org-todo-regexp)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4874 (tr-org-todo-line-regexp org-todo-line-regexp)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4875 (this-buffer (current-buffer))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4876 file heading buffer level newfile-p)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4877 (if (string-match "\\(.*\\)::\\(.*\\)" org-archive-location)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4878 (progn
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4879 (setq file (format (match-string 1 org-archive-location)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4880 (file-name-nondirectory buffer-file-name))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4881 heading (match-string 2 org-archive-location)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4882 (error "Invalid `org-archive-location'"))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4883 (if (> (length file) 0)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4884 (setq newfile-p (not (file-exists-p file))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4885 buffer (find-file-noselect file))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4886 (setq buffer (current-buffer)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4887 (unless buffer
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4888 (error "Cannot access file \"%s\"" file))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4889 (if (and (> (length heading) 0)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4890 (string-match "^\\*+" heading))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4891 (setq level (match-end 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4892 (setq heading nil level 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4893 (save-excursion
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4894 ;; We first only copy, in case something goes wrong
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4895 ;; we need to protect this-command, to avoid kill-region sets it,
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4896 ;; which would lead to duplication of subtrees
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4897 (let (this-command) (org-copy-subtree))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4898 (set-buffer buffer)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4899 ;; Enforce org-mode for the archive buffer
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
4900 (if (not (org-mode-p))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4901 ;; Force the mode for future visits.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4902 (let ((org-insert-mode-line-in-empty-file t))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4903 (call-interactively 'org-mode)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4904 (when newfile-p
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4905 (goto-char (point-max))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4906 (insert (format "\nArchived entries from file %s\n\n"
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4907 (buffer-file-name this-buffer))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4908 ;; Force the TODO keywords of the original buffer
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4909 (let ((org-todo-line-regexp tr-org-todo-line-regexp)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4910 (org-todo-keywords tr-org-todo-keywords)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4911 (org-todo-interpretation tr-org-todo-interpretation)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4912 (org-done-string tr-org-done-string)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4913 (org-todo-regexp tr-org-todo-regexp)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4914 (org-todo-line-regexp tr-org-todo-line-regexp))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4915 (goto-char (point-min))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4916 (if heading
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4917 (progn
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4918 (if (re-search-forward
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4919 (concat "\\(^\\|\r\\)"
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4920 (regexp-quote heading) "[ \t]*\\($\\|\r\\)")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4921 nil t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4922 (goto-char (match-end 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4923 ;; Heading not found, just insert it at the end
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4924 (goto-char (point-max))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4925 (or (bolp) (insert "\n"))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4926 (insert "\n" heading "\n")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4927 (end-of-line 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4928 ;; Make the subtree visible
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4929 (show-subtree)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4930 (org-end-of-subtree t)
73164
4eef6a4c871f (org-file-remote-p): Get regexp from list.
Carsten Dominik <dominik@science.uva.nl>
parents: 73010
diff changeset
4931 (skip-chars-backward " \t\r\n")
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4932 (and (looking-at "[ \t\r\n]*")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4933 (replace-match "\n\n")))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4934 ;; No specific heading, just go to end of file.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4935 (goto-char (point-max)) (insert "\n"))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4936 ;; Paste
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4937 (org-paste-subtree (1+ level))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4938 ;; Mark the entry as done, i.e. set to last work in org-todo-keywords
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4939 (if org-archive-mark-done
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4940 (org-todo (length org-todo-keywords)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4941 ;; Move cursor to right after the TODO keyword
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4942 (when org-archive-stamp-time
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4943 (beginning-of-line 1)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4944 (looking-at org-todo-line-regexp)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4945 (goto-char (or (match-end 2) (match-beginning 3)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4946 (org-insert-time-stamp (org-current-time) t t "(" ")"))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4947 ;; Save the buffer, if it is not the same buffer.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4948 (if (not (eq this-buffer buffer)) (save-buffer))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4949 ;; Here we are back in the original buffer. Everything seems to have
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4950 ;; worked. So now cut the tree and finish up.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4951 (let (this-command) (org-cut-subtree))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4952 (if (and (not (eobp)) (looking-at "[ \t]*$")) (kill-line))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4953 (message "Subtree archived %s"
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4954 (if (eq this-buffer buffer)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4955 (concat "under heading: " heading)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4956 (concat "in file: " (abbreviate-file-name file)))))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4957
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4958 (defun org-archive-all-done (&optional tag)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4959 "Archive sublevels of the current tree without open TODO items.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4960 If the cursor is not on a headline, try all level 1 trees. If
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4961 it is on a headline, try all direct children.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4962 When TAG is non-nil, don't move trees, but mark them with the ARCHIVE tag."
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4963 (let ((re (concat "^\\*+ +" org-not-done-regexp)) re1
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4964 (rea (concat ".*:" org-archive-tag ":"))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4965 (begm (make-marker))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4966 (endm (make-marker))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4967 (question (if tag "Set ARCHIVE tag (no open TODO items)? "
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4968 "Move subtree to archive (no open TODO items)? "))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4969 beg end (cntarch 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4970 (if (org-on-heading-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
4971 (progn
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4972 (setq re1 (concat "^" (regexp-quote
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
4973 (make-string
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4974 (1+ (- (match-end 0) (match-beginning 0)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4975 ?*))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4976 " "))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4977 (move-marker begm (point))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
4978 (move-marker endm (org-end-of-subtree t)))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4979 (setq re1 "^* ")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4980 (move-marker begm (point-min))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4981 (move-marker endm (point-max)))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
4982 (save-excursion
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4983 (goto-char begm)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4984 (while (re-search-forward re1 endm t)
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4985 (setq beg (match-beginning 0)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4986 end (save-excursion (org-end-of-subtree t) (point)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4987 (goto-char beg)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4988 (if (re-search-forward re end t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4989 (goto-char end)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4990 (goto-char beg)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4991 (if (and (or (not tag) (not (looking-at rea)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4992 (y-or-n-p question))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4993 (progn
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4994 (if tag
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4995 (org-toggle-tag org-archive-tag 'on)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
4996 (org-archive-subtree))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4997 (setq cntarch (1+ cntarch)))
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
4998 (goto-char end)))))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
4999 (message "%d trees archived" cntarch)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5000
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5001 (defun org-cycle-hide-archived-subtrees (state)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5002 "Re-hide all archived subtrees after a visibility state change."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5003 (when (and (not org-cycle-open-archived-trees)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5004 (not (memq state '(overview folded))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5005 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5006 (let* ((globalp (memq state '(contents all)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5007 (beg (if globalp (point-min) (point)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5008 (end (if globalp (point-max) (org-end-of-subtree t))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5009 (org-hide-archived-subtrees beg end)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5010 (goto-char beg)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5011 (if (looking-at (concat ".*:" org-archive-tag ":"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5012 (message (substitute-command-keys
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5013 "Subtree is archived and stays closed. Use \\[org-force-cycle-archived] to cycle it anyway.")))))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5014
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5015 (defun org-force-cycle-archived ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5016 "Cycle subtree even if it is archived."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5017 (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5018 (setq this-command 'org-cycle)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5019 (let ((org-cycle-open-archived-trees t))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5020 (call-interactively 'org-cycle)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5021
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5022 (defun org-hide-archived-subtrees (beg end)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5023 "Re-hide all archived subtrees after a visibility state change."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5024 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5025 (let* ((re (concat ":" org-archive-tag ":")))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5026 (goto-char beg)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5027 (while (re-search-forward re end t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5028 (and (org-on-heading-p) (hide-subtree))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5029 (org-end-of-subtree t)))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5030
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5031 (defun org-toggle-tag (tag &optional onoff)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5032 "Toggle the tag TAG for the current line.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5033 If ONOFF is `on' or `off', don't toggle but set to this state."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5034 (unless (org-on-heading-p) (error "Not on headling"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5035 (let (res current)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5036 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5037 (beginning-of-line)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5038 (if (re-search-forward "[ \t]:\\([a-zA-Z0-9_@:]+\\):[ \t]*$"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5039 (point-at-eol) t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5040 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5041 (setq current (match-string 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5042 (replace-match ""))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5043 (setq current ""))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5044 (setq current (nreverse (org-split-string current ":")))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5045 (cond
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5046 ((eq onoff 'on)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5047 (setq res t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5048 (or (member tag current) (push tag current)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5049 ((eq onoff 'off)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5050 (or (not (member tag current)) (setq current (delete tag current))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5051 (t (if (member tag current)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5052 (setq current (delete tag current))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5053 (setq res t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5054 (push tag current))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5055 (end-of-line 1)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5056 (when current
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5057 (insert " :" (mapconcat 'identity (nreverse current) ":") ":"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5058 (org-set-tags nil t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5059 res))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5060
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5061 (defun org-toggle-archive-tag (&optional arg)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5062 "Toggle the archive tag for the current headline.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5063 With prefix ARG, check all children of current headline and offer tagging
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5064 the children that do not contain any open TODO items."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5065 (interactive "P")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5066 (if arg
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5067 (org-archive-all-done 'tag)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5068 (let (set)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5069 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5070 (org-back-to-heading t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5071 (setq set (org-toggle-tag org-archive-tag))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5072 (when set (hide-subtree)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5073 (and set (beginning-of-line 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5074 (message "Subtree %s" (if set "archived" "unarchived")))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5075
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5076 (defvar org-agenda-multi nil) ; dynammically scoped
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5077 (defvar org-agenda-buffer-name "*Org Agenda*")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5078 (defvar org-pre-agenda-window-conf nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5079 (defun org-prepare-agenda ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5080 (if org-agenda-multi
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5081 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5082 (setq buffer-read-only nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5083 (goto-char (point-max))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5084 (unless (= (point) 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5085 (insert "\n" (make-string (window-width) ?=) "\n"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5086 (narrow-to-region (point) (point-max)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5087 (org-agenda-maybe-reset-markers 'force)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5088 (org-prepare-agenda-buffers (org-agenda-files))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5089 (let* ((abuf (get-buffer-create org-agenda-buffer-name))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5090 (awin (get-buffer-window abuf)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5091 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5092 ((equal (current-buffer) abuf) nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5093 (awin (select-window awin))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5094 ((not (setq org-pre-agenda-window-conf (current-window-configuration))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5095 ((equal org-agenda-window-setup 'current-window)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5096 (switch-to-buffer abuf))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5097 ((equal org-agenda-window-setup 'other-window)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5098 (switch-to-buffer-other-window abuf))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5099 ((equal org-agenda-window-setup 'other-frame)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5100 (switch-to-buffer-other-frame abuf))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5101 ((equal org-agenda-window-setup 'reorganize-frame)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5102 (delete-other-windows)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5103 (switch-to-buffer-other-window abuf))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5104 (setq buffer-read-only nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5105 (erase-buffer)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5106 (org-agenda-mode))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5107 (setq buffer-read-only nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5108
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5109 (defun org-finalize-agenda ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5110 "Finishing touch for the agenda buffer, called just before displaying it."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5111 (unless org-agenda-multi
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5112 (org-agenda-align-tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5113 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5114 (let ((buffer-read-only))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5115 (goto-char (point-min))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5116 (while (org-activate-bracket-links (point-max))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5117 (add-text-properties (match-beginning 0) (match-end 0)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5118 '(face org-link))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5119 (run-hooks 'org-finalize-agenda-hook))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5120
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5121 (defun org-prepare-agenda-buffers (files)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5122 "Create buffers for all agenda files, protect archived trees and comments."
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
5123 (interactive)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5124 (let ((pa '(:org-archived t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5125 (pc '(:org-comment t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5126 (pall '(:org-archived t :org-comment t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5127 (rea (concat ":" org-archive-tag ":"))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
5128 bmp file re)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5129 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5130 (while (setq file (pop files))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5131 (org-check-agenda-file file)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5132 (set-buffer (org-get-agenda-file-buffer file))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5133 (widen)
71652
4df24233cf1e (org-agenda-get-todos): Skip subtree also if entry is
Carsten Dominik <dominik@science.uva.nl>
parents: 71567
diff changeset
5134 (setq bmp (buffer-modified-p))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5135 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5136 (remove-text-properties (point-min) (point-max) pall)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5137 (when org-agenda-skip-archived-trees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5138 (goto-char (point-min))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5139 (while (re-search-forward rea nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5140 (if (org-on-heading-p)
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
5141 (add-text-properties (point-at-bol) (org-end-of-subtree t) pa))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5142 (goto-char (point-min))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5143 (setq re (concat "^\\*+ +" org-comment-string "\\>"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5144 (while (re-search-forward re nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5145 (add-text-properties
71652
4df24233cf1e (org-agenda-get-todos): Skip subtree also if entry is
Carsten Dominik <dominik@science.uva.nl>
parents: 71567
diff changeset
5146 (match-beginning 0) (org-end-of-subtree t) pc)))
4df24233cf1e (org-agenda-get-todos): Skip subtree also if entry is
Carsten Dominik <dominik@science.uva.nl>
parents: 71567
diff changeset
5147 (set-buffer-modified-p bmp)))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5148
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5149 (defun org-agenda-skip ()
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5150 "Throw to `:skip' in places that should be skipped."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5151 (let ((p (point-at-bol)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5152 (and org-agenda-skip-archived-trees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5153 (get-text-property p :org-archived)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5154 (org-end-of-subtree t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5155 (throw :skip t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5156 (and (get-text-property p :org-comment)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5157 (org-end-of-subtree t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5158 (throw :skip t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5159 (if (equal (char-after p) ?#) (throw :skip t))))
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
5160
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5161 (defun org-agenda-toggle-archive-tag ()
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5162 "Toggle the archive tag for the current entry."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5163 (interactive)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5164 (org-agenda-check-no-diary)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5165 (org-agenda-show) ;;; FIXME This is a stupid hack and should not be needed
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5166 (let* ((hdmarker (or (get-text-property (point) 'org-hd-marker)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5167 (org-agenda-error)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5168 (buffer (marker-buffer hdmarker))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5169 (pos (marker-position hdmarker))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5170 (buffer-read-only nil)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5171 newhead)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5172 (with-current-buffer buffer
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5173 (widen)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5174 (goto-char pos)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5175 (org-show-context 'agenda)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5176 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5177 (and (outline-next-heading)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5178 (org-flag-heading nil))) ; show the next heading
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5179 (call-interactively 'org-toggle-archive-tag)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5180 (end-of-line 1)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5181 (setq newhead (org-get-heading)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5182 (org-agenda-change-all-lines newhead hdmarker)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5183 (beginning-of-line 1)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5184
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5185 ;;; Dynamic blocks
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5186
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5187 (defun org-find-dblock (name)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5188 "Find the first dynamic block with name NAME in the buffer.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5189 If not found, stay at current position and return nil."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5190 (let (pos)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5191 (save-excursion
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5192 (goto-char (point-min))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5193 (setq pos (and (re-search-forward (concat "^#\\+BEGIN:[ \t]+" name "\\>")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5194 nil t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5195 (match-beginning 0))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5196 (if pos (goto-char pos))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5197 pos))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5198
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5199 (defconst org-dblock-start-re
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
5200 "^#\\+BEGIN:[ \t]+\\(\\S-+\\)\\([ \t]+\\(.*\\)\\)?"
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5201 "Matches the startline of a dynamic block, with parameters.")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5202
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5203 (defconst org-dblock-end-re "^#\\+END\\([: \t\r\n]\\|$\\)"
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5204 "Matches the end of a dyhamic block.")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5205
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5206 (defun org-create-dblock (plist)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5207 "Create a dynamic block section, with parameters taken from PLIST.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5208 PLIST must containe a :name entry which is used as name of the block."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5209 (unless (bolp) (newline))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5210 (let ((name (plist-get plist :name)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5211 (insert "#+BEGIN: " name)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5212 (while plist
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5213 (if (eq (car plist) :name)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5214 (setq plist (cddr plist))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5215 (insert " " (prin1-to-string (pop plist)))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5216 (insert "\n\n#+END:\n")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5217 (beginning-of-line -2)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5218
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5219 (defun org-prepare-dblock ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5220 "Prepare dynamic block for refresh.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5221 This empties the block, puts the cursor at the insert position and returns
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5222 the property list including an extra property :name with the block name."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5223 (unless (looking-at org-dblock-start-re)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5224 (error "Not at a dynamic block"))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5225 (let* ((begdel (1+ (match-end 0)))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5226 (name (match-string 1))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5227 (params (append (list :name name)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
5228 (read (concat "(" (match-string 3) ")")))))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5229 (unless (re-search-forward org-dblock-end-re nil t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5230 (error "Dynamic block not terminated"))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5231 (delete-region begdel (match-beginning 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5232 (goto-char begdel)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5233 (open-line 1)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5234 params))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5235
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5236 (defun org-map-dblocks (&optional command)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5237 "Apply COMMAND to all dynamic blocks in the current buffer.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5238 If COMMAND is not given, use `org-update-dblock'."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5239 (let ((cmd (or command 'org-update-dblock))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5240 pos)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5241 (save-excursion
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5242 (goto-char (point-min))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5243 (while (re-search-forward org-dblock-start-re nil t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5244 (goto-char (setq pos (match-beginning 0)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5245 (condition-case nil
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5246 (funcall cmd)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5247 (error (message "Error during update of dynamic block")))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5248 (goto-char pos)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5249 (unless (re-search-forward org-dblock-end-re nil t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5250 (error "Dynamic block not terminated"))))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5251
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5252 (defun org-dblock-update (&optional arg)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5253 "User command for updating dynamic blocks.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5254 Update the dynamic block at point. With prefix ARG, update all dynamic
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5255 blocks in the buffer."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5256 (interactive "P")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5257 (if arg
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5258 (org-update-all-dblocks)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5259 (or (looking-at org-dblock-start-re)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5260 (org-beginning-of-dblock))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5261 (org-update-dblock)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5262
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5263 (defun org-update-dblock ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5264 "Update the dynamic block at point
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5265 This means to empty the block, parse for parameters and then call
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5266 the correct writing function."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5267 (let* ((pos (point))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5268 (params (org-prepare-dblock))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5269 (name (plist-get params :name))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5270 (cmd (intern (concat "org-dblock-write:" name))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5271 (funcall cmd params)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5272 (goto-char pos)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5273
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5274 (defun org-beginning-of-dblock ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5275 "Find the beginning of the dynamic block at point.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5276 Error if there is no scuh block at point."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5277 (let ((pos (point))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5278 beg)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5279 (end-of-line 1)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5280 (if (and (re-search-backward org-dblock-start-re nil t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5281 (setq beg (match-beginning 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5282 (re-search-forward org-dblock-end-re nil t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5283 (> (match-end 0) pos))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5284 (goto-char beg)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5285 (goto-char pos)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5286 (error "Not in a dynamic block"))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5287
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5288 (defun org-update-all-dblocks ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5289 "Update all dynamic blocks in the buffer.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5290 This function can be used in a hook."
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
5291 (when (org-mode-p)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5292 (org-map-dblocks 'org-update-dblock)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5293
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
5294
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5295 ;;; Completion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5296
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5297 (defun org-complete (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5298 "Perform completion on word at point.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5299 At the beginning of a headline, this completes TODO keywords as given in
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5300 `org-todo-keywords'.
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5301 If the current word is preceded by a backslash, completes the TeX symbols
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5302 that are supported for HTML support.
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5303 If the current word is preceded by \"#+\", completes special words for
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5304 setting file options.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5305 In the line after \"#+STARTUP:, complete valid keywords.\"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5306 At all other locations, this simply calls `ispell-complete-word'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5307 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5308 (catch 'exit
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5309 (let* ((end (point))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
5310 (beg1 (save-excursion
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
5311 (skip-chars-backward "a-zA-Z_@0-9")
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
5312 (point)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5313 (beg (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5314 (skip-chars-backward "a-zA-Z0-9_:$")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5315 (point)))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
5316 (confirm (lambda (x) (stringp (car x))))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5317 (camel (equal (char-before beg) ?*))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
5318 (tag (equal (char-before beg1) ?:))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5319 (texp (equal (char-before beg) ?\\))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5320 (link (equal (char-before beg) ?\[))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5321 (opt (equal (buffer-substring (max (point-at-bol) (- beg 2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5322 beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5323 "#+"))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5324 (startup (string-match "^#\\+STARTUP:.*"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5325 (buffer-substring (point-at-bol) (point))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5326 (completion-ignore-case opt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5327 (type nil)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5328 (tbl nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5329 (table (cond
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5330 (opt
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5331 (setq type :opt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5332 (mapcar (lambda (x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5333 (string-match "^#\\+\\(\\([A-Z_]+:?\\).*\\)" x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5334 (cons (match-string 2 x) (match-string 1 x)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5335 (org-split-string (org-get-current-options) "\n")))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5336 (startup
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5337 (setq type :startup)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5338 org-startup-options)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5339 (link (append org-link-abbrev-alist-local
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5340 org-link-abbrev-alist))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5341 (texp
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5342 (setq type :tex)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5343 org-html-entities)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5344 ((string-match "\\`\\*+[ \t]*\\'"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5345 (buffer-substring (point-at-bol) beg))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5346 (setq type :todo)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5347 (mapcar 'list org-todo-keywords))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5348 (camel
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5349 (setq type :camel)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5350 (save-excursion
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5351 (goto-char (point-min))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5352 (while (re-search-forward org-todo-line-regexp nil t)
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
5353 (push (list
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
5354 (if org-file-link-context-use-camel-case
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
5355 (org-make-org-heading-camel (match-string 3) t)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
5356 (org-make-org-heading-search-string
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
5357 (match-string 3) t)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5358 tbl)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5359 tbl)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
5360 (tag (setq type :tag beg beg1)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5361 (or org-tag-alist (org-get-buffer-tags)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5362 (t (progn (ispell-complete-word arg) (throw 'exit nil)))))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
5363 (pattern (buffer-substring-no-properties beg end))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
5364 (completion (try-completion pattern table confirm)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5365 (cond ((eq completion t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5366 (if (equal type :opt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5367 (insert (substring (cdr (assoc (upcase pattern) table))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5368 (length pattern)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5369 ((null completion)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5370 (message "Can't find completion for \"%s\"" pattern)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5371 (ding))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5372 ((not (string= pattern completion))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5373 (delete-region beg end)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5374 (if (string-match " +$" completion)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5375 (setq completion (replace-match "" t t completion)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5376 (insert completion)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5377 (if (get-buffer-window "*Completions*")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5378 (delete-window (get-buffer-window "*Completions*")))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
5379 (if (assoc completion table)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
5380 (if (eq type :todo) (insert " ")
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
5381 (if (eq type :tag) (insert ":"))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5382 (if (and (equal type :opt) (assoc completion table))
65583
703495630901 Message format spec fixes (2)
Deepak Goel <deego@gnufans.org>
parents: 65264
diff changeset
5383 (message "%s" (substitute-command-keys
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
5384 "Press \\[org-complete] again to insert example settings"))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5385 (t
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5386 (message "Making completion list...")
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
5387 (let ((list (sort (all-completions pattern table confirm)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
5388 'string<)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5389 (with-output-to-temp-buffer "*Completions*"
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
5390 (condition-case nil
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
5391 ;; Protection needed for XEmacs and emacs 21
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
5392 (display-completion-list list pattern)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
5393 (error (display-completion-list list)))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5394 (message "Making completion list...%s" "done"))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5395
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5396 ;;; Comments, TODO and DEADLINE
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5397
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5398 (defun org-toggle-comment ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5399 "Change the COMMENT state of an entry."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5400 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5401 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5402 (org-back-to-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5403 (if (looking-at (concat outline-regexp
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5404 "\\( +\\<" org-comment-string "\\>\\)"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5405 (replace-match "" t t nil 1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5406 (if (looking-at outline-regexp)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5407 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5408 (goto-char (match-end 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5409 (insert " " org-comment-string))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5410
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5411 (defvar org-last-todo-state-is-todo nil
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5412 "This is non-nil when the last TODO state change led to a TODO state.
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5413 If the last change removed the TODO tag or switched to DONE, then
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5414 this is nil.")
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5415
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5416 (defun org-todo (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5417 "Change the TODO state of an item.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5418 The state of an item is given by a keyword at the start of the heading,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5419 like
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5420 *** TODO Write paper
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5421 *** DONE Call mom
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5422
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
5423 The different keywords are specified in the variable `org-todo-keywords'.
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
5424 By default the available states are \"TODO\" and \"DONE\".
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5425 So for this example: when the item starts with TODO, it is changed to DONE.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5426 When it starts with DONE, the DONE is removed. And when neither TODO nor
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5427 DONE are present, add TODO at the beginning of the heading.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5428
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
5429 With prefix arg, use completion to determine the new state. With numeric
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5430 prefix arg, switch to that state."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5431 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5432 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5433 (org-back-to-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5434 (if (looking-at outline-regexp) (goto-char (match-end 0)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5435 (or (looking-at (concat " +" org-todo-regexp " *"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5436 (looking-at " *"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5437 (let* ((this (match-string 1))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5438 (completion-ignore-case t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5439 (member (member this org-todo-keywords))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5440 (tail (cdr member))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5441 (state (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5442 ((equal arg '(4))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5443 ;; Read a state with completion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5444 (completing-read "State: " (mapcar (lambda(x) (list x))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5445 org-todo-keywords)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5446 nil t))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5447 ((eq arg 'right)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5448 (if this
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5449 (if tail (car tail) nil)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5450 (car org-todo-keywords)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5451 ((eq arg 'left)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5452 (if (equal member org-todo-keywords)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5453 nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5454 (if this
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5455 (nth (- (length org-todo-keywords) (length tail) 2)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5456 org-todo-keywords)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5457 org-done-string)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5458 (arg
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5459 ;; user requests a specific state
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5460 (nth (1- (prefix-numeric-value arg))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5461 org-todo-keywords))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5462 ((null member) (car org-todo-keywords))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5463 ((null tail) nil) ;; -> first entry
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5464 ((eq org-todo-interpretation 'sequence)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5465 (car tail))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5466 ((memq org-todo-interpretation '(type priority))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5467 (if (eq this-command last-command)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5468 (car tail)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5469 (if (> (length tail) 0) org-done-string nil)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5470 (t nil)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5471 (next (if state (concat " " state " ") " ")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5472 (replace-match next t t)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5473 (setq org-last-todo-state-is-todo
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5474 (not (equal state org-done-string)))
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
5475 (when org-log-done
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
5476 (if (equal state org-done-string)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5477 (org-add-planning-info 'closed (org-current-time) 'scheduled)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
5478 (if (not this)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5479 (org-add-planning-info nil nil 'closed))))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
5480 ;; Fixup tag positioning
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
5481 (and org-auto-align-tags (org-set-tags nil t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5482 (run-hooks 'org-after-todo-state-change-hook)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5483 ;; Fixup cursor location if close to the keyword
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5484 (if (and (outline-on-heading-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5485 (not (bolp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5486 (save-excursion (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5487 (looking-at org-todo-line-regexp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5488 (< (point) (+ 2 (or (match-end 2) (match-end 1)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5489 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5490 (goto-char (or (match-end 2) (match-end 1)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5491 (just-one-space))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5492
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5493 (defun org-show-todo-tree (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5494 "Make a compact tree which shows all headlines marked with TODO.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5495 The tree will show the lines where the regexp matches, and all higher
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5496 headlines above the match.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5497 With \\[universal-argument] prefix, also show the DONE entries.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5498 With a numeric prefix N, construct a sparse tree for the Nth element
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5499 of `org-todo-keywords'."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5500 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5501 (let ((case-fold-search nil)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5502 (kwd-re
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5503 (cond ((null arg) org-not-done-regexp)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5504 ((equal arg '(4)) org-todo-regexp)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5505 ((<= (prefix-numeric-value arg) (length org-todo-keywords))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5506 (regexp-quote (nth (1- (prefix-numeric-value arg))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5507 org-todo-keywords)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5508 (t (error "Invalid prefix argument: %s" arg)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5509 (message "%d TODO entries found"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5510 (org-occur (concat "^" outline-regexp " +" kwd-re )))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5511
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5512 (defun org-deadline ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5513 "Insert the DEADLINE: string to make a deadline.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5514 A timestamp is also inserted - use \\[org-timestamp-up] and \\[org-timestamp-down]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5515 to modify it to the correct date."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5516 (interactive)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5517 (org-add-planning-info 'deadline nil 'closed))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5518
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5519 (defun org-schedule ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5520 "Insert the SCHEDULED: string to schedule a TODO item.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5521 A timestamp is also inserted - use \\[org-timestamp-up] and \\[org-timestamp-down]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5522 to modify it to the correct date."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5523 (interactive)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5524 (org-add-planning-info 'scheduled nil 'closed))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5525
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5526 (defun org-add-planning-info (what &optional time &rest remove)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5527 "Insert new timestamp with keyword in the line directly after the headline.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5528 WHAT indicates what kind of time stamp to add. TIME indicated the time to use.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5529 If non is given, the user is prompted for a date.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5530 REMOVE indicates what kind of entries to remove. An old WHAT entry will also
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5531 be removed."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5532 (interactive)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5533 (when what (setq time (or time (org-read-date nil 'to-time))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5534 (when (and org-insert-labeled-timestamps-at-point
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5535 (member what '(scheduled deadline)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5536 (insert
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5537 (if (eq what 'scheduled) org-scheduled-string org-deadline-string) " ")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5538 (org-insert-time-stamp time)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5539 (setq what nil))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5540 (save-excursion
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5541 (save-restriction
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5542 (let (col list elt ts buffer-invisibility-spec)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5543 (org-back-to-heading t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5544 (looking-at (concat outline-regexp "\\( *\\)[^\r\n]*"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5545 (goto-char (match-end 1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5546 (setq col (current-column))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5547 (goto-char (1+ (match-end 0)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5548 (if (and (not (looking-at outline-regexp))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5549 (looking-at (concat "[^\r\n]*?" org-keyword-time-regexp
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5550 "[^\r\n]*"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5551 (not (equal (match-string 1) org-clock-string)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5552 (narrow-to-region (match-beginning 0) (match-end 0))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5553 (insert "\n")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5554 (backward-char 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5555 (narrow-to-region (point) (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5556 (indent-to-column col))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5557 ;; Check if we have to remove something.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5558 (setq list (cons what remove))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5559 (while list
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5560 (setq elt (pop list))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5561 (goto-char (point-min))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5562 (when (or (and (eq elt 'scheduled)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5563 (re-search-forward org-scheduled-time-regexp nil t))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5564 (and (eq elt 'deadline)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5565 (re-search-forward org-deadline-time-regexp nil t))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5566 (and (eq elt 'closed)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5567 (re-search-forward org-closed-time-regexp nil t)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5568 (replace-match "")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5569 (if (looking-at " +") (replace-match ""))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5570 (goto-char (point-max))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5571 (when what
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5572 (insert
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5573 (if (not (equal (char-before) ?\ )) " " "")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5574 (cond ((eq what 'scheduled) org-scheduled-string)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5575 ((eq what 'deadline) org-deadline-string)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5576 ((eq what 'closed) org-closed-string))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5577 " ")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5578 (org-insert-time-stamp time nil (eq what 'closed))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5579 (end-of-line 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5580 (org-add-log-maybe 'done))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5581 (goto-char (point-min))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5582 (widen)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5583 (if (looking-at "[ \t]+\r?\n")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5584 (replace-match ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5585 ts))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5586
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5587 (defvar org-log-note-marker (make-marker))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5588 (defvar org-log-note-purpose nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5589 (defvar org-log-note-window-configuration nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5590
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5591 (defun org-add-log-maybe (&optional purpose)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5592 (when (and (listp org-log-done)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5593 (memq purpose org-log-done))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5594 (move-marker org-log-note-marker (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5595 (setq org-log-note-purpose purpose)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5596 (add-hook 'post-command-hook 'org-add-log-note 'append)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5597
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5598 (defun org-add-log-note (&optional purpose)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5599 "Pop up a window for taking a note, and add this note later at point."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5600 (remove-hook 'post-command-hook 'org-add-log-note)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5601 (setq org-log-note-window-configuration (current-window-configuration))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5602 (delete-other-windows)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5603 (switch-to-buffer (marker-buffer org-log-note-marker))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5604 (goto-char org-log-note-marker)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5605 (switch-to-buffer-other-window "*Org Note*")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5606 (erase-buffer)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5607 (org-mode)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5608 (insert (format "# Insert note for %s, finish with C-c C-c.\n\n"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5609 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5610 ((eq org-log-note-purpose 'clock-out) "stopped clock")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5611 ((eq org-log-note-purpose 'done) "closed todo item")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5612 (t (error "This should not happen")))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5613 (org-set-local 'org-finish-function 'org-store-log-note))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5614
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5615 (defun org-store-log-note ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5616 "Finish taking a log note, and insert it to where it belongs."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5617 (let ((txt (buffer-string))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5618 (note (cdr (assq org-log-note-purpose org-log-note-headings)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5619 lines ind)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5620 (kill-buffer (current-buffer))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5621 (if (string-match "^#.*\n[ \t\\n]*" txt)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5622 (setq txt (replace-match "" t t txt)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5623 (when (string-match "\\S-" txt)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5624 (if (string-match "\\s-+\\'" txt)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5625 (setq txt (replace-match "" t t txt)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5626 (setq lines (org-split-string txt "\n"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5627 (and note (string-match "\\S-" note) (push note lines))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5628 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5629 (set-buffer (marker-buffer org-log-note-marker))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5630 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5631 (goto-char org-log-note-marker)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5632 (if (not (bolp)) (newline))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5633 (indent-relative t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5634 (setq ind (concat (buffer-substring (point-at-bol) (point)) " "))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5635 (insert " - " (pop lines))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5636 (while lines
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5637 (insert "\n" ind (pop lines))))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5638 (set-window-configuration org-log-note-window-configuration)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5639
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5640 (defvar org-occur-highlights nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5641 (make-variable-buffer-local 'org-occur-highlights)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5642
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5643 (defun org-occur (regexp &optional keep-previous callback)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5644 "Make a compact tree which shows all matches of REGEXP.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5645 The tree will show the lines where the regexp matches, and all higher
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5646 headlines above the match. It will also show the heading after the match,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5647 to make sure editing the matching entry is easy.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5648 If KEEP-PREVIOUS is non-nil, highlighting and exposing done by a previous
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5649 call to `org-occur' will be kept, to allow stacking of calls to this
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5650 command.
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
5651 If CALLBACK is non-nil, it is a function which is called to confirm
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5652 that the match should indeed be shown."
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5653 (interactive "sRegexp: \nP")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5654 (or keep-previous (org-remove-occur-highlights nil nil t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5655 (let ((cnt 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5656 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5657 (goto-char (point-min))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5658 (if (or (not keep-previous) ; do not want to keep
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5659 (not org-occur-highlights)) ; no previous matches
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5660 ;; hide everything
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5661 (org-overview))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5662 (while (re-search-forward regexp nil t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5663 (when (or (not callback)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5664 (save-match-data (funcall callback)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5665 (setq cnt (1+ cnt))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5666 (org-highlight-new-match (match-beginning 0) (match-end 0))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5667 (org-show-context 'occur-tree))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5668 (when org-remove-highlights-with-change
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5669 (org-add-hook 'before-change-functions 'org-remove-occur-highlights
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5670 nil 'local))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5671 (unless org-sparse-tree-open-archived-trees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
5672 (org-hide-archived-subtrees (point-min) (point-max)))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5673 (run-hooks 'org-occur-hook)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5674 (if (interactive-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5675 (message "%d match(es) for regexp %s" cnt regexp))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5676 cnt))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5677
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5678 (defun org-show-context (&optional key siblings)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5679 "Make sure point and context and visible.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5680 How much context is shown depends upon the variables
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5681 `org-show-hierarchy-above' and `org-show-following-heading'.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5682 When SIBLINGS is non-nil, show all siblings on each hierarchy level."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5683 (let ((heading-p (org-on-heading-p t))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5684 (hierarchy-p (org-get-alist-option org-show-hierarchy-above key))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5685 (following-p (org-get-alist-option org-show-following-heading key)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5686 (catch 'exit
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5687 ;; Show heading or entry text
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5688 (if heading-p
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5689 (org-flag-heading nil) ; only show the heading
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5690 (and (or (org-invisible-p) (org-invisible-p2))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5691 (org-show-hidden-entry))) ; show entire entry
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5692 (when following-p
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5693 ;; Show next sibling, or heading below text
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5694 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5695 (and (if heading-p (org-goto-sibling) (outline-next-heading))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5696 (org-flag-heading nil))))
74727
1c1b185d7575 (org-mode): Show context after isearch.
Carsten Dominik <dominik@science.uva.nl>
parents: 74723
diff changeset
5697 (when siblings (org-show-siblings))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5698 (when hierarchy-p
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5699 ;; show all higher headings, possibly with siblings
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5700 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5701 (while (and (condition-case nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5702 (progn (org-up-heading-all 1) t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5703 (error nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5704 (not (bobp)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5705 (org-flag-heading nil)
74727
1c1b185d7575 (org-mode): Show context after isearch.
Carsten Dominik <dominik@science.uva.nl>
parents: 74723
diff changeset
5706 (when siblings (org-show-siblings))))))))
1c1b185d7575 (org-mode): Show context after isearch.
Carsten Dominik <dominik@science.uva.nl>
parents: 74723
diff changeset
5707
1c1b185d7575 (org-mode): Show context after isearch.
Carsten Dominik <dominik@science.uva.nl>
parents: 74723
diff changeset
5708 (defun org-show-siblings ()
1c1b185d7575 (org-mode): Show context after isearch.
Carsten Dominik <dominik@science.uva.nl>
parents: 74723
diff changeset
5709 "Show all siblings of the current headline."
1c1b185d7575 (org-mode): Show context after isearch.
Carsten Dominik <dominik@science.uva.nl>
parents: 74723
diff changeset
5710 (save-excursion
1c1b185d7575 (org-mode): Show context after isearch.
Carsten Dominik <dominik@science.uva.nl>
parents: 74723
diff changeset
5711 (while (org-goto-sibling) (org-flag-heading nil)))
1c1b185d7575 (org-mode): Show context after isearch.
Carsten Dominik <dominik@science.uva.nl>
parents: 74723
diff changeset
5712 (save-excursion
1c1b185d7575 (org-mode): Show context after isearch.
Carsten Dominik <dominik@science.uva.nl>
parents: 74723
diff changeset
5713 (while (org-goto-sibling 'previous)
1c1b185d7575 (org-mode): Show context after isearch.
Carsten Dominik <dominik@science.uva.nl>
parents: 74723
diff changeset
5714 (org-flag-heading nil))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5715
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5716 (defun org-reveal (&optional siblings)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5717 "Show current entry, hierarchy above it, and the following headline.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5718 This can be used to show a consistent set of context around locations
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5719 exposed with `org-show-hierarchy-above' or `org-show-following-heading'
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5720 not t for the search context.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5721
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5722 With optional argument SIBLINGS, on each level of the hierarchy all
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5723 siblings are shown. This repairs the tree structure so what it would
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5724 look like when opend with successive calls to `org-cycle'."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5725 (interactive "P")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5726 (let ((org-show-hierarchy-above t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5727 (org-show-following-heading t))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5728 (org-show-context nil siblings)))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5729
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5730 ;; Overlay compatibility functions
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5731 (defun org-make-overlay (beg end &optional buffer)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5732 (if (featurep 'xemacs)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5733 (make-extent beg end buffer)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5734 (make-overlay beg end buffer)))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5735 (defun org-delete-overlay (ovl)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5736 (if (featurep 'xemacs) (delete-extent ovl) (delete-overlay ovl)))
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
5737 (defun org-detach-overlay (ovl)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5738 (if (featurep 'xemacs) (detach-extent ovl) (delete-overlay ovl)))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5739 (defun org-move-overlay (ovl beg end &optional buffer)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5740 (if (featurep 'xemacs)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5741 (set-extent-endpoints ovl beg end (or buffer (current-buffer)))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5742 (move-overlay ovl beg end buffer)))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5743 (defun org-overlay-put (ovl prop value)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5744 (if (featurep 'xemacs)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5745 (set-extent-property ovl prop value)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5746 (overlay-put ovl prop value)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5747 (defun org-overlay-display (ovl text &optional face)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5748 "Make overlay OVL display TEXT with face FACE."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5749 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5750 (let ((gl (make-glyph text)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5751 (and face (set-glyph-face gl face))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5752 (set-extent-property ovl 'invisible t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5753 (set-extent-property ovl 'end-glyph gl))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5754 (overlay-put ovl 'display text)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5755 (if face (overlay-put ovl 'face face))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5756 (defun org-overlay-get (ovl prop)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5757 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5758 (extent-property ovl prop)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5759 (overlay-get ovl prop)))
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
5760 (defun org-overlays-at (pos)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
5761 (if (featurep 'xemacs) (extents-at pos) (overlays-at pos)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5762 (defun org-overlays-in (&optional start end)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5763 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5764 (extent-list nil start end)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5765 (overlays-in start end)))
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
5766 (defun org-overlay-start (o)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
5767 (if (featurep 'xemacs) (extent-start-position o) (overlay-start o)))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
5768 (defun org-overlay-end (o)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
5769 (if (featurep 'xemacs) (extent-end-position o) (overlay-end o)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5770
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5771 (defun org-highlight-new-match (beg end)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5772 "Highlight from BEG to END and mark the highlight is an occur headline."
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5773 (let ((ov (org-make-overlay beg end)))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5774 (org-overlay-put ov 'face 'secondary-selection)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5775 (push ov org-occur-highlights)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5776
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5777 (defvar org-inhibit-highlight-removal nil)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5778 (defun org-remove-occur-highlights (&optional beg end noremove)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5779 "Remove the occur highlights from the buffer.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5780 BEG and END are ignored. If NOREMOVE is nil, remove this function
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
5781 from the `before-change-functions' in the current buffer."
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
5782 (interactive)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5783 (unless org-inhibit-highlight-removal
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5784 (mapc 'org-delete-overlay org-occur-highlights)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5785 (setq org-occur-highlights nil)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5786 (unless noremove
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5787 (remove-hook 'before-change-functions
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
5788 'org-remove-occur-highlights 'local))))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
5789
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5790 ;;; Priorities
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5791
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5792 (defvar org-priority-regexp ".*?\\(\\[#\\([A-Z]\\)\\] ?\\)"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5793 "Regular expression matching the priority indicator.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5794
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5795 (defvar org-remove-priority-next-time nil)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
5796
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5797 (defun org-priority-up ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5798 "Increase the priority of the current item."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5799 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5800 (org-priority 'up))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5801
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5802 (defun org-priority-down ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5803 "Decrease the priority of the current item."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5804 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5805 (org-priority 'down))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5806
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5807 (defun org-priority (&optional action)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5808 "Change the priority of an item by ARG.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5809 ACTION can be set, up, or down."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5810 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5811 (setq action (or action 'set))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5812 (let (current new news have remove)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5813 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5814 (org-back-to-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5815 (if (looking-at org-priority-regexp)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5816 (setq current (string-to-char (match-string 2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5817 have t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5818 (setq current org-default-priority))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5819 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5820 ((eq action 'set)
65583
703495630901 Message format spec fixes (2)
Deepak Goel <deego@gnufans.org>
parents: 65264
diff changeset
5821 (message "Priority A-%c, SPC to remove: " org-lowest-priority)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5822 (setq new (read-char-exclusive))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5823 (cond ((equal new ?\ ) (setq remove t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5824 ((or (< (upcase new) ?A) (> (upcase new) org-lowest-priority))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5825 (error "Priority must be between `%c' and `%c'"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5826 ?A org-lowest-priority))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5827 ((eq action 'up)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5828 (setq new (1- current)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5829 ((eq action 'down)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5830 (setq new (1+ current)))
60918
58a53f588384 * textmodes/refbib.el, textmodes/refer.el, textmodes/reftex-cite.el,
Werner LEMBERG <wl@gnu.org>
parents: 59596
diff changeset
5831 (t (error "Invalid action")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5832 (setq new (min (max ?A (upcase new)) org-lowest-priority))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5833 (setq news (format "%c" new))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5834 (if have
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5835 (if remove
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5836 (replace-match "" t t nil 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5837 (replace-match news t t nil 2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5838 (if remove
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5839 (error "No priority cookie found in line")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5840 (looking-at org-todo-line-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5841 (if (match-end 2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5842 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5843 (goto-char (match-end 2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5844 (insert " [#" news "]"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5845 (goto-char (match-beginning 3))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5846 (insert "[#" news "] ")))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5847 (if remove
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5848 (message "Priority removed")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5849 (message "Priority of current item set to %s" news))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5850
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5851
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5852 (defun org-get-priority (s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5853 "Find priority cookie and return priority."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5854 (save-match-data
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5855 (if (not (string-match org-priority-regexp s))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5856 (* 1000 (- org-lowest-priority org-default-priority))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
5857 (* 1000 (- org-lowest-priority
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5858 (string-to-char (match-string 2 s)))))))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
5859
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5860 ;;; Timestamps
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5861
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5862 (defvar org-last-changed-timestamp nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5863
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5864 (defun org-time-stamp (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5865 "Prompt for a date/time and insert a time stamp.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5866 If the user specifies a time like HH:MM, or if this command is called
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5867 with a prefix argument, the time stamp will contain date and time.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5868 Otherwise, only the date will be included. All parts of a date not
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5869 specified by the user will be filled in from the current date/time.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5870 So if you press just return without typing anything, the time stamp
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5871 will represent the current date/time. If there is already a timestamp
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
5872 at the cursor, it will be modified."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5873 (interactive "P")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5874 (let (org-time-was-given time)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5875 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5876 ((and (org-at-timestamp-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5877 (eq last-command 'org-time-stamp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5878 (eq this-command 'org-time-stamp))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5879 (insert "--")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5880 (setq time (let ((this-command this-command))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5881 (org-read-date arg 'totime)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5882 (org-insert-time-stamp time (or org-time-was-given arg)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5883 ((org-at-timestamp-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5884 (setq time (let ((this-command this-command))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5885 (org-read-date arg 'totime)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5886 (when (org-at-timestamp-p) ; just to get the match data
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5887 (replace-match "")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5888 (setq org-last-changed-timestamp
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5889 (org-insert-time-stamp time (or org-time-was-given arg))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5890 (message "Timestamp updated"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5891 (t
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5892 (setq time (let ((this-command this-command))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5893 (org-read-date arg 'totime)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5894 (org-insert-time-stamp time (or org-time-was-given arg))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5895
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
5896 (defun org-time-stamp-inactive (&optional arg)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
5897 "Insert an inactive time stamp.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
5898 An inactive time stamp is enclosed in square brackets instead of angle
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
5899 brackets. It is inactive in the sense that it does not trigger agenda entries,
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
5900 does not link to the calendar and cannot be changed with the S-cursor keys.
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
5901 So these are more for recording a certain time/date."
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
5902 (interactive "P")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5903 (let (org-time-was-given time)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
5904 (setq time (org-read-date arg 'totime))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5905 (org-insert-time-stamp time (or org-time-was-given arg) 'inactive)))
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
5906
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5907 (defvar org-date-ovl (org-make-overlay 1 1))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5908 (org-overlay-put org-date-ovl 'face 'org-warning)
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
5909 (org-detach-overlay org-date-ovl)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
5910
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5911 (defun org-read-date (&optional with-time to-time from-string)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5912 "Read a date and make things smooth for the user.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5913 The prompt will suggest to enter an ISO date, but you can also enter anything
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5914 which will at least partially be understood by `parse-time-string'.
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
5915 Unrecognized parts of the date will default to the current day, month, year,
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5916 hour and minute. For example,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5917 3-2-5 --> 2003-02-05
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5918 feb 15 --> currentyear-02-15
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5919 sep 12 9 --> 2009-09-12
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5920 12:45 --> today 12:45
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5921 22 sept 0:34 --> currentyear-09-22 0:34
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5922 12 --> currentyear-currentmonth-12
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5923 Fri --> nearest Friday (today or later)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5924 etc.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5925 The function understands only English month and weekday abbreviations,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5926 but this can be configured with the variables `parse-time-months' and
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5927 `parse-time-weekdays'.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5928
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5929 While prompting, a calendar is popped up - you can also select the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5930 date with the mouse (button 1). The calendar shows a period of three
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
5931 months. To scroll it to other months, use the keys `>' and `<'.
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
5932 If you don't like the calendar, turn it off with
73885
47bff65beeb2 (org-export-with-timestamps)
Glenn Morris <rgm@gnu.org>
parents: 73872
diff changeset
5933 \(setq org-popup-calendar-for-date-prompt nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5934
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5935 With optional argument TO-TIME, the date will immediately be converted
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5936 to an internal time.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5937 With an optional argument WITH-TIME, the prompt will suggest to also
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5938 insert a time. Note that when WITH-TIME is not set, you can still
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5939 enter a time, and this function will inform the calling routine about
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5940 this change. The calling routine may then choose to change the format
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5941 used to insert the time stamp into the buffer to include the time."
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
5942 (require 'parse-time)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5943 (let* ((org-time-stamp-rounding-minutes
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5944 (if (equal with-time '(16)) 0 org-time-stamp-rounding-minutes))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5945 (ct (org-current-time))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5946 (default-time
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5947 ;; Default time is either today, or, when entering a range,
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5948 ;; the range start.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5949 (if (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5950 (re-search-backward
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
5951 (concat org-ts-regexp "--?-?\\=") ; 1-3 minuses
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5952 (- (point) 20) t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5953 (apply
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5954 'encode-time
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5955 (mapcar (lambda(x) (or x 0))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5956 (parse-time-string (match-string 1))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5957 ct))
66689
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
5958 (calendar-move-hook nil)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
5959 (view-diary-entries-initially nil)
70585
af0fd91baddc (org-read-date, org-goto-calendar, org-agenda-goto-calendar): Bind
Carsten Dominik <dominik@science.uva.nl>
parents: 70162
diff changeset
5960 (view-calendar-holidays-initially nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5961 (timestr (format-time-string
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5962 (if with-time "%Y-%m-%d %H:%M" "%Y-%m-%d") default-time))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5963 (prompt (format "YYYY-MM-DD [%s]: " timestr))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
5964 ans ans1 ans2
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
5965 second minute hour day month year tl wday wday1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5966
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5967 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5968 (from-string (setq ans from-string))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5969 (org-popup-calendar-for-date-prompt
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5970 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5971 (save-window-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5972 (calendar)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5973 (calendar-forward-day (- (time-to-days default-time)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5974 (calendar-absolute-from-gregorian
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5975 (calendar-current-date))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5976 (org-eval-in-calendar nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5977 (let* ((old-map (current-local-map))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5978 (map (copy-keymap calendar-mode-map))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5979 (minibuffer-local-map (copy-keymap minibuffer-local-map)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5980 (define-key map (kbd "RET") 'org-calendar-select)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5981 (define-key map (if (featurep 'xemacs) [button1] [mouse-1])
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5982 'org-calendar-select-mouse)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5983 (define-key map (if (featurep 'xemacs) [button2] [mouse-2])
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5984 'org-calendar-select-mouse)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5985 (define-key minibuffer-local-map [(meta shift left)]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5986 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5987 (org-eval-in-calendar '(calendar-backward-month 1))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5988 (define-key minibuffer-local-map [(meta shift right)]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5989 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5990 (org-eval-in-calendar '(calendar-forward-month 1))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5991 (define-key minibuffer-local-map [(shift up)]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5992 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5993 (org-eval-in-calendar '(calendar-backward-week 1))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5994 (define-key minibuffer-local-map [(shift down)]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5995 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5996 (org-eval-in-calendar '(calendar-forward-week 1))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5997 (define-key minibuffer-local-map [(shift left)]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5998 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
5999 (org-eval-in-calendar '(calendar-backward-day 1))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6000 (define-key minibuffer-local-map [(shift right)]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6001 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6002 (org-eval-in-calendar '(calendar-forward-day 1))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6003 (define-key minibuffer-local-map ">"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6004 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6005 (org-eval-in-calendar '(scroll-calendar-left 1))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6006 (define-key minibuffer-local-map "<"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6007 (lambda () (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6008 (org-eval-in-calendar '(scroll-calendar-right 1))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6009 (unwind-protect
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6010 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6011 (use-local-map map)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6012 (setq ans (read-string prompt "" nil nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6013 (if (not (string-match "\\S-" ans)) (setq ans nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6014 (setq ans (or ans1 ans ans2)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6015 (use-local-map old-map))))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6016 (t ; Naked prompt only
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6017 (setq ans (read-string prompt "" nil timestr))))
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
6018 (org-detach-overlay org-date-ovl)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6019
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6020 (if (string-match
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6021 "^ *\\(\\([0-9]+\\)-\\)?\\([0-1]?[0-9]\\)-\\([0-3]?[0-9]\\)\\([^-0-9]\\|$\\)" ans)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6022 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6023 (setq year (if (match-end 2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6024 (string-to-number (match-string 2 ans))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6025 (string-to-number (format-time-string "%Y")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6026 month (string-to-number (match-string 3 ans))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6027 day (string-to-number (match-string 4 ans)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6028 (if (< year 100) (setq year (+ 2000 year)))
69531
b1e915361a06 (org-read-date): Include subgroup 5 into
Carsten Dominik <dominik@science.uva.nl>
parents: 69482
diff changeset
6029 (setq ans (replace-match (format "%04d-%02d-%02d\\5" year month day)
b1e915361a06 (org-read-date): Include subgroup 5 into
Carsten Dominik <dominik@science.uva.nl>
parents: 69482
diff changeset
6030 t nil ans))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6031 (setq tl (parse-time-string ans)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6032 year (or (nth 5 tl) (string-to-number (format-time-string "%Y" ct)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6033 month (or (nth 4 tl) (string-to-number (format-time-string "%m" ct)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6034 day (or (nth 3 tl) (string-to-number (format-time-string "%d" ct)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6035 hour (or (nth 2 tl) (string-to-number (format-time-string "%H" ct)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6036 minute (or (nth 1 tl) (string-to-number (format-time-string "%M" ct)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6037 second (or (nth 0 tl) 0)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6038 wday (nth 6 tl))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6039 (when (and wday (not (nth 3 tl)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6040 ;; Weekday was given, but no day, so pick that day in the week
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6041 ;; on or after the derived date.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6042 (setq wday1 (nth 6 (decode-time (encode-time 0 0 0 day month year))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6043 (unless (equal wday wday1)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6044 (setq day (+ day (% (- wday wday1 -7) 7)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6045 (if (and (boundp 'org-time-was-given)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6046 (nth 2 tl))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6047 (setq org-time-was-given t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6048 (if (< year 100) (setq year (+ 2000 year)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6049 (if to-time
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6050 (encode-time second minute hour day month year)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6051 (if (or (nth 1 tl) (nth 2 tl))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6052 (format "%04d-%02d-%02d %02d:%02d" year month day hour minute)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6053 (format "%04d-%02d-%02d" year month day)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6054
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6055 (defun org-eval-in-calendar (form)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6056 "Eval FORM in the calendar window and return to current window.
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6057 Also, store the cursor date in variable ans2."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6058 (let ((sw (selected-window)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6059 (select-window (get-buffer-window "*Calendar*"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6060 (eval form)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6061 (when (calendar-cursor-to-date)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6062 (let* ((date (calendar-cursor-to-date))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6063 (time (encode-time 0 0 0 (nth 1 date) (nth 0 date) (nth 2 date))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6064 (setq ans2 (format-time-string "%Y-%m-%d" time))))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6065 (org-move-overlay org-date-ovl (1- (point)) (1+ (point)) (current-buffer))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6066 (select-window sw)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6067
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6068 (defun org-calendar-select ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6069 "Return to `org-read-date' with the date currently selected.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6070 This is used by `org-read-date' in a temporary keymap for the calendar buffer."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6071 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6072 (when (calendar-cursor-to-date)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6073 (let* ((date (calendar-cursor-to-date))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6074 (time (encode-time 0 0 0 (nth 1 date) (nth 0 date) (nth 2 date))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6075 (setq ans1 (format-time-string "%Y-%m-%d" time)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6076 (if (active-minibuffer-window) (exit-minibuffer))))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
6077
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6078 (defun org-insert-time-stamp (time &optional with-hm inactive pre post)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6079 "Insert a date stamp for the date given by the internal TIME.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6080 WITH-HM means, use the stamp format that includes the time of the day.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6081 INACTIVE means use square brackets instead of angular ones, so that the
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6082 stamp will not contribute to the agenda.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6083 PRE and POST are optional strings to be inserted before and after the
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6084 stamp.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6085 The command returns the inserted time stamp."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6086 (let ((fmt (funcall (if with-hm 'cdr 'car) org-time-stamp-formats))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6087 stamp)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6088 (if inactive (setq fmt (concat "[" (substring fmt 1 -1) "]")))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6089 (insert (or pre ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6090 (insert (setq stamp (format-time-string fmt time)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6091 (insert (or post ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6092 stamp))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6093
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6094 (defun org-toggle-time-stamp-overlays ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6095 "Toggle the use of custom time stamp formats."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6096 (interactive)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6097 (setq org-display-custom-times (not org-display-custom-times))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6098 (unless org-display-custom-times
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6099 (let ((p (point-min)) (bmp (buffer-modified-p)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6100 (while (setq p (next-single-property-change p 'display))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6101 (if (and (get-text-property p 'display)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6102 (eq (get-text-property p 'face) 'org-date))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6103 (remove-text-properties
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6104 p (setq p (next-single-property-change p 'display))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6105 '(display t))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6106 (set-buffer-modified-p bmp)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6107 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6108 (remove-text-properties (point-min) (point-max) '(end-glyph t)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6109 (org-restart-font-lock)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6110 (setq org-table-may-need-update t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6111 (if org-display-custom-times
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6112 (message "Time stamps are overlayed with custom format")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6113 (message "Time stamp overlays removed")))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6114
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6115 (defun org-display-custom-time (beg end)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6116 "Overlay modified time stamp format over timestamp between BED and END."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6117 (let* ((t1 (save-match-data
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6118 (org-parse-time-string (buffer-substring beg end) t)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6119 (w1 (- end beg))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6120 (with-hm (and (nth 1 t1) (nth 2 t1)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6121 (inactive (= (char-before (1- beg)) ?\[))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6122 (tf (funcall (if with-hm 'cdr 'car) org-time-stamp-custom-formats))
74039
c00ab73bb294 * textmodes/org.el (org-fix-decoded-time): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 74029
diff changeset
6123 (time (org-fix-decoded-time t1))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6124 (time (mapcar (lambda (x) (or x 0)) t1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6125 (str (org-add-props
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6126 (format-time-string
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6127 (substring tf 1 -1) (apply 'encode-time time))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6128 nil 'mouse-face 'highlight))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6129 (w2 (length str)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6130 (if (not (= w2 w1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6131 (add-text-properties (1+ beg) (+ 2 beg)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6132 (list 'org-dwidth t 'org-dwidth-n (- w1 w2))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6133 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6134 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6135 (put-text-property beg end 'invisible t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6136 (put-text-property beg end 'end-glyph (make-glyph str)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6137 (put-text-property beg end 'display str))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6138
74039
c00ab73bb294 * textmodes/org.el (org-fix-decoded-time): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 74029
diff changeset
6139 (defun org-fix-decoded-time (time)
c00ab73bb294 * textmodes/org.el (org-fix-decoded-time): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 74029
diff changeset
6140 "Set 0 instead of nil for the first 6 elements of time.
c00ab73bb294 * textmodes/org.el (org-fix-decoded-time): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 74029
diff changeset
6141 Don't touch the rest."
c00ab73bb294 * textmodes/org.el (org-fix-decoded-time): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 74029
diff changeset
6142 (let ((n 0))
c00ab73bb294 * textmodes/org.el (org-fix-decoded-time): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 74029
diff changeset
6143 (mapcar (lambda (x) (if (< (setq n (1+ n)) 7) (or x 0) x)) time)))
c00ab73bb294 * textmodes/org.el (org-fix-decoded-time): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 74029
diff changeset
6144
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6145 (defun org-days-to-time (timestamp-string)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6146 "Difference between TIMESTAMP-STRING and now in days."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6147 (- (time-to-days (org-time-string-to-time timestamp-string))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6148 (time-to-days (current-time))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6149
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6150 (defun org-deadline-close (timestamp-string &optional ndays)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6151 "Is the time in TIMESTAMP-STRING close to the current date?"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6152 (and (< (org-days-to-time timestamp-string)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6153 (or ndays org-deadline-warning-days))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6154 (not (org-entry-is-done-p))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6155
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6156 (defun org-calendar-select-mouse (ev)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6157 "Return to `org-read-date' with the date currently selected.
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6158 This is used by `org-read-date' in a temporary keymap for the calendar buffer."
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6159 (interactive "e")
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6160 (mouse-set-point ev)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6161 (when (calendar-cursor-to-date)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6162 (let* ((date (calendar-cursor-to-date))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6163 (time (encode-time 0 0 0 (nth 1 date) (nth 0 date) (nth 2 date))))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6164 (setq ans1 (format-time-string "%Y-%m-%d" time)))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6165 (if (active-minibuffer-window) (exit-minibuffer))))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6166
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6167 (defun org-check-deadlines (ndays)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6168 "Check if there are any deadlines due or past due.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6169 A deadline is considered due if it happens within `org-deadline-warning-days'
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
6170 days from today's date. If the deadline appears in an entry marked DONE,
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6171 it is not shown. The prefix arg NDAYS can be used to test that many
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
6172 days. If the prefix is a raw \\[universal-argument] prefix, all deadlines are shown."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6173 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6174 (let* ((org-warn-days
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6175 (cond
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6176 ((equal ndays '(4)) 100000)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6177 (ndays (prefix-numeric-value ndays))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6178 (t org-deadline-warning-days)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6179 (case-fold-search nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6180 (regexp (concat "\\<" org-deadline-string " *<\\([^>]+\\)>"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6181 (callback
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6182 (lambda () (org-deadline-close (match-string 1) org-warn-days))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6183
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6184 (message "%d deadlines past-due or due within %d days"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6185 (org-occur regexp nil callback)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6186 org-warn-days)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6187
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6188 (defun org-evaluate-time-range (&optional to-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6189 "Evaluate a time range by computing the difference between start and end.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6190 Normally the result is just printed in the echo area, but with prefix arg
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6191 TO-BUFFER, the result is inserted just after the date stamp into the buffer.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6192 If the time range is actually in a table, the result is inserted into the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6193 next column.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6194 For time difference computation, a year is assumed to be exactly 365
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6195 days in order to avoid rounding problems."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6196 (interactive "P")
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6197 (or
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6198 (org-clock-update-time-maybe)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6199 (save-excursion
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6200 (unless (org-at-date-range-p)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6201 (goto-char (point-at-bol))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6202 (re-search-forward org-tr-regexp (point-at-eol) t))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6203 (if (not (org-at-date-range-p))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6204 (error "Not at a time-stamp range, and none found in current line")))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6205 (let* ((ts1 (match-string 1))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6206 (ts2 (match-string 2))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6207 (havetime (or (> (length ts1) 15) (> (length ts2) 15)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6208 (match-end (match-end 0))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6209 (time1 (org-time-string-to-time ts1))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6210 (time2 (org-time-string-to-time ts2))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6211 (t1 (time-to-seconds time1))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6212 (t2 (time-to-seconds time2))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6213 (diff (abs (- t2 t1)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6214 (negative (< (- t2 t1) 0))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6215 ;; (ys (floor (* 365 24 60 60)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6216 (ds (* 24 60 60))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6217 (hs (* 60 60))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6218 (fy "%dy %dd %02d:%02d")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6219 (fy1 "%dy %dd")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6220 (fd "%dd %02d:%02d")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6221 (fd1 "%dd")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6222 (fh "%02d:%02d")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6223 y d h m align)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6224 (if havetime
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6225 (setq ; y (floor (/ diff ys)) diff (mod diff ys)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6226 y 0
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6227 d (floor (/ diff ds)) diff (mod diff ds)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6228 h (floor (/ diff hs)) diff (mod diff hs)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6229 m (floor (/ diff 60)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6230 (setq ; y (floor (/ diff ys)) diff (mod diff ys)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6231 y 0
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6232 d (floor (+ (/ diff ds) 0.5))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6233 h 0 m 0))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6234 (if (not to-buffer)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6235 (message (org-make-tdiff-string y d h m))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6236 (when (org-at-table-p)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6237 (goto-char match-end)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6238 (setq align t)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6239 (and (looking-at " *|") (goto-char (match-end 0))))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6240 (if (looking-at
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6241 "\\( *-? *[0-9]+y\\)?\\( *[0-9]+d\\)? *[0-9][0-9]:[0-9][0-9]")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6242 (replace-match ""))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6243 (if negative (insert " -"))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6244 (if (> y 0) (insert " " (format (if havetime fy fy1) y d h m))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6245 (if (> d 0) (insert " " (format (if havetime fd fd1) d h m))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6246 (insert " " (format fh h m))))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6247 (if align (org-table-align))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6248 (message "Time difference inserted")))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6249
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6250 (defun org-make-tdiff-string (y d h m)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6251 (let ((fmt "")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6252 (l nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6253 (if (> y 0) (setq fmt (concat fmt "%d year" (if (> y 1) "s" "") " ")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6254 l (push y l)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6255 (if (> d 0) (setq fmt (concat fmt "%d day" (if (> d 1) "s" "") " ")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6256 l (push d l)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6257 (if (> h 0) (setq fmt (concat fmt "%d hour" (if (> h 1) "s" "") " ")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6258 l (push h l)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6259 (if (> m 0) (setq fmt (concat fmt "%d minute" (if (> m 1) "s" "") " ")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6260 l (push m l)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6261 (apply 'format fmt (nreverse l))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6262
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6263 (defun org-time-string-to-time (s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6264 (apply 'encode-time (org-parse-time-string s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6265
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
6266 (defun org-parse-time-string (s &optional nodefault)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6267 "Parse the standard Org-mode time string.
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
6268 This should be a lot faster than the normal `parse-time-string'.
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
6269 If time is not given, defaults to 0:00. However, with optional NODEFAULT,
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
6270 hour and minute fields will be nil if not given."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6271 (if (string-match org-ts-regexp1 s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6272 (list 0
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6273 (if (or (match-beginning 8) (not nodefault))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6274 (string-to-number (or (match-string 8 s) "0")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6275 (if (or (match-beginning 7) (not nodefault))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6276 (string-to-number (or (match-string 7 s) "0")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6277 (string-to-number (match-string 4 s))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6278 (string-to-number (match-string 3 s))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6279 (string-to-number (match-string 2 s))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6280 nil nil nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6281 (make-list 9 0)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6282
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6283 (defun org-timestamp-up (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6284 "Increase the date item at the cursor by one.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6285 If the cursor is on the year, change the year. If it is on the month or
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6286 the day, change that.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6287 With prefix ARG, change by that many units."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6288 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6289 (org-timestamp-change (prefix-numeric-value arg)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6290
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6291 (defun org-timestamp-down (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6292 "Decrease the date item at the cursor by one.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6293 If the cursor is on the year, change the year. If it is on the month or
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6294 the day, change that.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6295 With prefix ARG, change by that many units."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6296 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6297 (org-timestamp-change (- (prefix-numeric-value arg))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6298
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6299 (defun org-timestamp-up-day (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6300 "Increase the date in the time stamp by one day.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6301 With prefix ARG, change that many days."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6302 (interactive "p")
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
6303 (if (and (not (org-at-timestamp-p t))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
6304 (org-on-heading-p))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
6305 (org-todo 'up)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
6306 (org-timestamp-change (prefix-numeric-value arg) 'day)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6307
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6308 (defun org-timestamp-down-day (&optional arg)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
6309 "Decrease the date in the time stamp by one day.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6310 With prefix ARG, change that many days."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6311 (interactive "p")
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
6312 (if (and (not (org-at-timestamp-p t))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
6313 (org-on-heading-p))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
6314 (org-todo 'down)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
6315 (org-timestamp-change (- (prefix-numeric-value arg)) 'day)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6316
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6317 (defsubst org-pos-in-match-range (pos n)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6318 (and (match-beginning n)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6319 (<= (match-beginning n) pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6320 (>= (match-end n) pos)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6321
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6322 (defun org-at-timestamp-p (&optional inactive-ok)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
6323 "Determine if the cursor is in or at a timestamp."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6324 (interactive)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6325 (let* ((tsr (if inactive-ok org-ts-regexp3 org-ts-regexp2))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6326 (pos (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6327 (ans (or (looking-at tsr)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6328 (save-excursion
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
6329 (skip-chars-backward "^[<\n\r\t")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6330 (if (> (point) 1) (backward-char 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6331 (and (looking-at tsr)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6332 (> (- (match-end 0) pos) -1))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6333 (and (boundp 'org-ts-what)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6334 (setq org-ts-what
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6335 (cond
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6336 ((org-pos-in-match-range pos 2) 'year)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6337 ((org-pos-in-match-range pos 3) 'month)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6338 ((org-pos-in-match-range pos 7) 'hour)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6339 ((org-pos-in-match-range pos 8) 'minute)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6340 ((or (org-pos-in-match-range pos 4)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6341 (org-pos-in-match-range pos 5)) 'day)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6342 (t 'day))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6343 ans))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6344
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6345 (defun org-timestamp-change (n &optional what)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6346 "Change the date in the time stamp at point.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6347 The date will be changed by N times WHAT. WHAT can be `day', `month',
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6348 `year', `minute', `second'. If WHAT is not given, the cursor position
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6349 in the timestamp determines what will be changed."
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6350 (let ((pos (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6351 with-hm inactive
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6352 org-ts-what
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6353 ts time time0)
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
6354 (if (not (org-at-timestamp-p t))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6355 (error "Not at a timestamp"))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6356 (if (and (not what) (not (eq org-ts-what 'day))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6357 org-display-custom-times
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6358 (get-text-property (point) 'display)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6359 (not (get-text-property (1- (point)) 'display)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6360 (setq org-ts-what 'day))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6361 (setq org-ts-what (or what org-ts-what)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6362 with-hm (<= (abs (- (cdr org-ts-lengths)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6363 (- (match-end 0) (match-beginning 0))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6364 1)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6365 inactive (= (char-after (match-beginning 0)) ?\[)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6366 ts (match-string 0))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6367 (replace-match "")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6368 (setq time0 (org-parse-time-string ts))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6369 (setq time
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6370 (apply 'encode-time
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6371 (append
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6372 (list (or (car time0) 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6373 (list (+ (if (eq org-ts-what 'minute) n 0) (nth 1 time0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6374 (list (+ (if (eq org-ts-what 'hour) n 0) (nth 2 time0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6375 (list (+ (if (eq org-ts-what 'day) n 0) (nth 3 time0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6376 (list (+ (if (eq org-ts-what 'month) n 0) (nth 4 time0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6377 (list (+ (if (eq org-ts-what 'year) n 0) (nth 5 time0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6378 (nthcdr 6 time0))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6379 (if (eq what 'calendar)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6380 (let ((cal-date
68294
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
6381 (save-excursion
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
6382 (save-match-data
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
6383 (set-buffer "*Calendar*")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6384 (calendar-cursor-to-date)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6385 (setcar (nthcdr 4 time0) (nth 0 cal-date)) ; month
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6386 (setcar (nthcdr 3 time0) (nth 1 cal-date)) ; day
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6387 (setcar (nthcdr 5 time0) (nth 2 cal-date)) ; year
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6388 (setcar time0 (or (car time0) 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6389 (setcar (nthcdr 1 time0) (or (nth 1 time0) 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6390 (setcar (nthcdr 2 time0) (or (nth 1 time0) 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6391 (setq time (apply 'encode-time time0))))
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
6392 (setq org-last-changed-timestamp
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
6393 (org-insert-time-stamp time with-hm inactive))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6394 (org-clock-update-time-maybe)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6395 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6396 ;; Try to recenter the calendar window, if any
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6397 (if (and org-calendar-follow-timestamp-change
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6398 (get-buffer-window "*Calendar*" t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6399 (memq org-ts-what '(day month year)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6400 (org-recenter-calendar (time-to-days time)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6401
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6402 (defun org-recenter-calendar (date)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6403 "If the calendar is visible, recenter it to DATE."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6404 (let* ((win (selected-window))
66689
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
6405 (cwin (get-buffer-window "*Calendar*" t))
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
6406 (calendar-move-hook nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6407 (when cwin
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6408 (select-window cwin)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6409 (calendar-goto-date (if (listp date) date
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6410 (calendar-gregorian-from-absolute date)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6411 (select-window win))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6412
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6413 (defun org-goto-calendar (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6414 "Go to the Emacs calendar at the current date.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6415 If there is a time stamp in the current line, go to that date.
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
6416 A prefix ARG can be used to force the current date."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6417 (interactive "P")
66689
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
6418 (let ((tsr org-ts-regexp) diff
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
6419 (calendar-move-hook nil)
70585
af0fd91baddc (org-read-date, org-goto-calendar, org-agenda-goto-calendar): Bind
Carsten Dominik <dominik@science.uva.nl>
parents: 70162
diff changeset
6420 (view-calendar-holidays-initially nil)
66689
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
6421 (view-diary-entries-initially nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6422 (if (or (org-at-timestamp-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6423 (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6424 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6425 (looking-at (concat ".*" tsr))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6426 (let ((d1 (time-to-days (current-time)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6427 (d2 (time-to-days
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6428 (org-time-string-to-time (match-string 1)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6429 (setq diff (- d2 d1))))
66689
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
6430 (calendar)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6431 (calendar-goto-today)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6432 (if (and diff (not arg)) (calendar-forward-day diff))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6433
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6434 (defun org-date-from-calendar ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6435 "Insert time stamp corresponding to cursor date in *Calendar* buffer.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6436 If there is already a time stamp at the cursor position, update it."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6437 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6438 (org-timestamp-change 0 'calendar))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6439
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6440 ;;; The clock for measuring work time.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6441
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6442 (defvar org-clock-marker (make-marker)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6443 "Marker recording the last clock-in.")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6444
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6445 (defun org-clock-in ()
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6446 "Start the clock on the current item.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6447 If necessary, clock-out of the currently active clock."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6448 (interactive)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6449 (org-clock-out t)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6450 (let (ts)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6451 (save-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6452 (org-back-to-heading t)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6453 (beginning-of-line 2)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6454 (if (and (looking-at (concat "[ \t]*" org-keyword-time-regexp))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6455 (not (equal (match-string 1) org-clock-string)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6456 (beginning-of-line 1))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6457 (insert "\n") (backward-char 1)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6458 (indent-relative)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6459 (insert org-clock-string " ")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6460 (setq ts (org-insert-time-stamp (current-time) 'with-hm 'inactive))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6461 (move-marker org-clock-marker (point))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6462 (message "Clock started at %s" ts))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6463
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6464 (defun org-clock-out (&optional fail-quietly)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6465 "Stop the currently running clock.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6466 If there is no running clock, throw an error, unless FAIL-QUIETLY is set."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6467 (interactive)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6468 (catch 'exit
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6469 (if (not (marker-buffer org-clock-marker))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6470 (if fail-quietly (throw 'exit t) (error "No active clock")))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6471 (let (ts te s h m)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6472 (save-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6473 (set-buffer (marker-buffer org-clock-marker))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6474 (goto-char org-clock-marker)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6475 (beginning-of-line 1)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6476 (if (and (looking-at (concat "[ \t]*" org-keyword-time-regexp))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6477 (equal (match-string 1) org-clock-string))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6478 (setq ts (match-string 2))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6479 (if fail-quietly (throw 'exit nil) (error "Clock start time is gone")))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6480 (goto-char org-clock-marker)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6481 (insert "--")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6482 (setq te (org-insert-time-stamp (current-time) 'with-hm 'inactive))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6483 (setq s (- (time-to-seconds (apply 'encode-time (org-parse-time-string te)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6484 (time-to-seconds (apply 'encode-time (org-parse-time-string ts))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6485 h (floor (/ s 3600))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6486 s (- s (* 3600 h))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6487 m (floor (/ s 60))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6488 s (- s (* 60 s)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6489 (insert " => " (format "%2d:%02d" h m))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6490 (move-marker org-clock-marker nil)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6491 (org-add-log-maybe 'clock-out)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6492 (message "Clock stopped at %s after HH:MM = %d:%02d" te h m)))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6493
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6494 (defun org-clock-cancel ()
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6495 "Cancel the running clock be removing the start timestamp."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6496 (interactive)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6497 (if (not (marker-buffer org-clock-marker))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6498 (error "No active clock"))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6499 (save-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6500 (set-buffer (marker-buffer org-clock-marker))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6501 (goto-char org-clock-marker)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6502 (delete-region (1- (point-at-bol)) (point-at-eol)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6503 (message "Clock canceled"))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6504
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6505 (defvar org-clock-file-total-minutes nil
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6506 "Holds the file total time in minutes, after a call to `org-clock-sum'.")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6507 (make-variable-buffer-local 'org-clock-file-total-minutes)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6508
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6509 (defun org-clock-sum (&optional tstart tend)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6510 "Sum the times for each subtree.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6511 Puts the resulting times in minutes as a text property on each headline."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6512 (interactive)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6513 (let* ((bmp (buffer-modified-p))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6514 (re (concat "^\\(\\*+\\)[ \t]\\|^[ \t]*"
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6515 org-clock-string
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6516 "[ \t]*\\(\\[.*?\\]\\)-+\\(\\[.*?\\]\\)"))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6517 (lmax 30)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6518 (ltimes (make-vector lmax 0))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6519 (t1 0)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6520 (level 0)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6521 ts te dt
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
6522 time)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6523 (remove-text-properties (point-min) (point-max) '(:org-clock-minutes t))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6524 (save-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6525 (goto-char (point-max))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6526 (while (re-search-backward re nil t)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6527 (if (match-end 2)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6528 ;; A time
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6529 (setq ts (match-string 2)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6530 te (match-string 3)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6531 ts (time-to-seconds
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6532 (apply 'encode-time (org-parse-time-string ts)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6533 te (time-to-seconds
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6534 (apply 'encode-time (org-parse-time-string te)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6535 ts (if tstart (max ts tstart) ts)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6536 te (if tend (min te tend) te)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6537 dt (- te ts)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6538 t1 (if (> dt 0) (+ t1 (floor (/ dt 60))) t1))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6539 ;; A headline
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6540 (setq level (- (match-end 1) (match-beginning 1)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6541 (when (or (> t1 0) (> (aref ltimes level) 0))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6542 (loop for l from 0 to level do
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6543 (aset ltimes l (+ (aref ltimes l) t1)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6544 (setq t1 0 time (aref ltimes level))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6545 (loop for l from level to (1- lmax) do
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6546 (aset ltimes l 0))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6547 (goto-char (match-beginning 0))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6548 (put-text-property (point) (point-at-eol) :org-clock-minutes time))))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6549 (setq org-clock-file-total-minutes (aref ltimes 0)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6550 (set-buffer-modified-p bmp)))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6551
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6552 (defun org-clock-display (&optional total-only)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6553 "Show subtree times in the entire buffer.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6554 If TOTAL-ONLY is non-nil, only show the total time for the entire file
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6555 in the echo area."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6556 (interactive)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6557 (org-remove-clock-overlays)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6558 (let (time h m p)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6559 (org-clock-sum)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6560 (unless total-only
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6561 (save-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6562 (goto-char (point-min))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6563 (while (setq p (next-single-property-change (point) :org-clock-minutes))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6564 (goto-char p)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6565 (when (setq time (get-text-property p :org-clock-minutes))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6566 (org-put-clock-overlay time (funcall outline-level))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6567 (setq h (/ org-clock-file-total-minutes 60)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6568 m (- org-clock-file-total-minutes (* 60 h)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6569 ;; Arrange to remove the overlays upon next change.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6570 (when org-remove-highlights-with-change
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6571 (org-add-hook 'before-change-functions 'org-remove-clock-overlays
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6572 nil 'local))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6573 (message "Total file time: %d:%02d (%d hours and %d minutes)" h m h m)))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6574
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6575 (defvar org-clock-overlays nil)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
6576 (make-variable-buffer-local 'org-clock-overlays)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
6577
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6578 (defun org-put-clock-overlay (time &optional level)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6579 "Put an overlays on the current line, displaying TIME.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6580 If LEVEL is given, prefix time with a corresponding number of stars.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6581 This creates a new overlay and stores it in `org-clock-overlays', so that it
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6582 will be easy to remove."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6583 (let* ((c 60) (h (floor (/ time 60))) (m (- time (* 60 h)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6584 (l (if level (org-get-legal-level level 0) 0))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6585 (off 0)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6586 ov tx)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6587 (move-to-column c)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6588 (unless (eolp) (skip-chars-backward "^ \t"))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6589 (skip-chars-backward " \t")
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6590 (setq ov (org-make-overlay (1- (point)) (point-at-eol))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6591 tx (concat (buffer-substring (1- (point)) (point))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6592 (make-string (+ off (max 0 (- c (current-column)))) ?.)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6593 (org-add-props (format "%s %2d:%02d%s"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6594 (make-string l ?*) h m
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6595 (make-string (- 10 l) ?\ ))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6596 '(face secondary-selection))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6597 ""))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6598 (if (not (featurep 'xemacs))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6599 (org-overlay-put ov 'display tx)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6600 (org-overlay-put ov 'invisible t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6601 (org-overlay-put ov 'end-glyph (make-glyph tx)))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6602 (push ov org-clock-overlays)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6603
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6604 (defun org-remove-clock-overlays (&optional beg end noremove)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6605 "Remove the occur highlights from the buffer.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6606 BEG and END are ignored. If NOREMOVE is nil, remove this function
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6607 from the `before-change-functions' in the current buffer."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6608 (interactive)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6609 (unless org-inhibit-highlight-removal
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6610 (mapc 'org-delete-overlay org-clock-overlays)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6611 (setq org-clock-overlays nil)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6612 (unless noremove
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6613 (remove-hook 'before-change-functions
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6614 'org-remove-clock-overlays 'local))))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6615
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6616 (defun org-clock-out-if-current ()
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6617 "Clock out if the current entry contains the running clock.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6618 This is used to stop the clock after a TODO entry is marked DONE."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6619 (when (and (equal state org-done-string)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6620 (equal (marker-buffer org-clock-marker) (current-buffer))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6621 (< (point) org-clock-marker)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6622 (> (save-excursion (outline-next-heading) (point))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6623 org-clock-marker))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6624 ;; Clock out, but don't accept a logging message for this.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6625 (let ((org-log-done (if (and (listp org-log-done)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6626 (member 'clock-out org-log-done))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6627 '(done)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6628 org-log-done)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6629 (org-clock-out))))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6630
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6631 (add-hook 'org-after-todo-state-change-hook
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6632 'org-clock-out-if-current)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6633
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6634 (defun org-check-running-clock ()
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6635 "Check if the current buffer contains the running clock.
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6636 If yes, offer to stop it and to save the buffer with the changes."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6637 (when (and (equal (marker-buffer org-clock-marker) (current-buffer))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6638 (y-or-n-p (format "Clock-out in buffer %s before killing it? "
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6639 (buffer-name))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6640 (org-clock-out)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6641 (when (y-or-n-p "Save changed buffer?")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6642 (save-buffer))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6643
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6644 (defun org-clock-report ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6645 "Create a table containing a report about clocked time.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6646 If the buffer contains lines
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6647 #+BEGIN: clocktable :maxlevel 3 :emphasize nil
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6648
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6649 #+END: clocktable
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6650 then the table will be inserted between these lines, replacing whatever
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6651 is was there before. If these lines are not in the buffer, the table
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6652 is inserted at point, surrounded by the special lines.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6653 The BEGIN line can contain parameters. Allowed are:
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6654 :maxlevel The maximum level to be included in the table. Default is 3.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6655 :emphasize t/nil, if levell 1 and level 2 should be bold/italic in the table."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6656 (interactive)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6657 (org-remove-clock-overlays)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6658 (unless (org-find-dblock "clocktable")
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6659 (org-create-dblock (list :name "clocktable"
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6660 :maxlevel 2 :emphasize nil)))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6661 (org-update-dblock))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6662
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6663 (defun org-clock-update-time-maybe ()
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6664 "If this is a CLOCK line, update it and return t.
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6665 Otherwise, return nil."
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6666 (interactive)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6667 (save-excursion
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6668 (beginning-of-line 1)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6669 (skip-chars-forward " \t")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6670 (when (looking-at org-clock-string)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6671 (let ((re (concat "[ \t]*" org-clock-string
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6672 " *[[<]\\([^]>]+\\)[]>]-+[[<]\\([^]>]+\\)[]>]"
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6673 "\\([ \t]*=>.*\\)?"))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6674 ts te h m s)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6675 (if (not (looking-at re))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6676 nil
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6677 (and (match-end 3) (delete-region (match-beginning 3) (match-end 3)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6678 (end-of-line 1)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6679 (setq ts (match-string 1)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6680 te (match-string 2))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6681 (setq s (- (time-to-seconds
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6682 (apply 'encode-time (org-parse-time-string te)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6683 (time-to-seconds
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6684 (apply 'encode-time (org-parse-time-string ts))))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6685 h (floor (/ s 3600))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6686 s (- s (* 3600 h))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6687 m (floor (/ s 60))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6688 s (- s (* 60 s)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6689 (insert " => " (format "%2d:%02d" h m))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6690 t)))))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6691
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6692 (defun org-clock-special-range (key &optional time as-strings)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6693 "Return two times bordering a special time range.
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6694 Key is a symbol specifying the range and can be one of `today', `yesterday',
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6695 `thisweek', `lastweek', `thismonth', `lastmonth', `thisyear', `lastyear'.
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6696 A week starts Monday 0:00 and ends Sunday 24:00.
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6697 The range is determined relative to TIME. TIME defaults to the current time.
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6698 The return value is a cons cell with two internal times like the ones
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6699 returned by `current time' or `encode-time'. if AS-STRINGS is non-nil,
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6700 the returned times will be formatted strings."
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6701 (let* ((tm (decode-time (or time (current-time))))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6702 (s 0) (m (nth 1 tm)) (h (nth 2 tm))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6703 (d (nth 3 tm)) (month (nth 4 tm)) (y (nth 5 tm))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6704 (dow (nth 6 tm))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6705 s1 m1 h1 d1 month1 y1 diff ts te fm)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6706 (cond
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6707 ((eq key 'today)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6708 (setq h 0 m 0 h1 24 m1 0))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6709 ((eq key 'yesterday)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6710 (setq d (1- d) h 0 m 0 h1 24 m1 0))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6711 ((eq key 'thisweek)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6712 (setq diff (if (= dow 0) 6 (1- dow))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6713 m 0 h 0 d (- d diff) d1 (+ 7 d)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6714 ((eq key 'lastweek)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6715 (setq diff (+ 7 (if (= dow 0) 6 (1- dow)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6716 m 0 h 0 d (- d diff) d1 (+ 7 d)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6717 ((eq key 'thismonth)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6718 (setq d 1 h 0 m 0 d1 1 month1 (1+ month) h1 0 m1 0))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6719 ((eq key 'lastmonth)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6720 (setq d 1 h 0 m 0 d1 1 month (1- month) month1 (1+ month) h1 0 m1 0))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6721 ((eq key 'thisyear)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6722 (setq m 0 h 0 d 1 month 1 y1 (1+ y)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6723 ((eq key 'lastyear)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6724 (setq m 0 h 0 d 1 month 1 y (1- y) y1 (1+ y)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6725 (t (error "No such time block %s" key)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6726 (setq ts (encode-time s m h d month y)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6727 te (encode-time (or s1 s) (or m1 m) (or h1 h)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6728 (or d1 d) (or month1 month) (or y1 y)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6729 (setq fm (cdr org-time-stamp-formats))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6730 (if as-strings
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6731 (cons (format-time-string fm ts) (format-time-string fm te))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6732 (cons ts te))))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6733
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6734 (defun org-dblock-write:clocktable (params)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6735 "Write the standard clocktable."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6736 (let ((hlchars '((1 . "*") (2 . ?/)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6737 (emph nil)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6738 (ins (make-marker))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6739 ipos time h m p level hlc hdl maxlevel
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6740 ts te cc block)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6741 (setq maxlevel (or (plist-get params :maxlevel) 3)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6742 emph (plist-get params :emphasize)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6743 ts (plist-get params :tstart)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6744 te (plist-get params :tend)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6745 block (plist-get params :block))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6746 (when block
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6747 (setq cc (org-clock-special-range block nil t)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6748 ts (car cc) te (cdr cc)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6749 (if ts (setq ts (time-to-seconds
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6750 (apply 'encode-time (org-parse-time-string ts)))))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6751 (if te (setq te (time-to-seconds
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6752 (apply 'encode-time (org-parse-time-string te)))))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6753 (move-marker ins (point))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6754 (setq ipos (point))
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
6755 ;; FIXME: does not yet use org-insert-time-stamp
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
6756 (insert-before-markers "Clock summary at ["
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6757 (substring
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6758 (format-time-string (cdr org-time-stamp-formats))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6759 1 -1)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6760 "]."
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
6761 (if block
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6762 (format " Considered range is /%s/." block)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6763 "")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6764 "\n\n|L|Headline|Time|\n")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
6765 (org-clock-sum ts te)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6766 (setq h (/ org-clock-file-total-minutes 60)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6767 m (- org-clock-file-total-minutes (* 60 h)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6768 (insert-before-markers "|-\n|0|" "*Total file time*| "
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6769 (format "*%d:%02d*" h m)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6770 "|\n")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6771 (goto-char (point-min))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6772 (while (setq p (next-single-property-change (point) :org-clock-minutes))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6773 (goto-char p)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6774 (when (setq time (get-text-property p :org-clock-minutes))
72709
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6775 (save-excursion
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6776 (beginning-of-line 1)
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6777 (when (and (looking-at "\\(\\*+\\)[ \t]+\\(.*?\\)\\([ \t]+:[0-9a-zA-Z_@:]+:\\)?[ \t]*$")
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6778 (setq level (- (match-end 1) (match-beginning 1)))
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6779 (<= level maxlevel))
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6780 (setq hlc (if emph (or (cdr (assoc level hlchars)) "") "")
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6781 hdl (match-string 2)
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6782 h (/ time 60)
f40288cce20c (org-dblock-write:clocktable): Avoid infinite loop.
Carsten Dominik <dominik@science.uva.nl>
parents: 72494
diff changeset
6783 m (- time (* 60 h)))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6784 (goto-char ins)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6785 (if (= level 1) (insert-before-markers "|-\n"))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6786 (insert-before-markers
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
6787 "| " (int-to-string level) "|" hlc hdl hlc " |"
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6788 (make-string (1- level) ?|)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6789 hlc
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6790 (format "%d:%02d" h m)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6791 hlc
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6792 " |\n")))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6793 (goto-char ins)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6794 (backward-delete-char 1)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6795 (goto-char ipos)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6796 (skip-chars-forward "^|")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6797 (org-table-align)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6798
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6799 (defun org-collect-clock-time-entries ()
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6800 "Return an internal list with clocking information.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6801 This list has one entry for each CLOCK interval.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6802 FIXME: describe the elements."
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6803 (interactive)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6804 (let ((re (concat "^[ \t]*" org-clock-string
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6805 " *\\[\\(.*?\\)\\]--\\[\\(.*?\\)\\]"))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6806 rtn beg end next cont level title total closedp leafp
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6807 clockpos titlepos h m donep)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6808 (save-excursion
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6809 (org-clock-sum)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6810 (goto-char (point-min))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6811 (while (re-search-forward re nil t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6812 (setq clockpos (match-beginning 0)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6813 beg (match-string 1) end (match-string 2)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6814 cont (match-end 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6815 (setq beg (apply 'encode-time (org-parse-time-string beg))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6816 end (apply 'encode-time (org-parse-time-string end)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6817 (org-back-to-heading t)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6818 (setq donep (org-entry-is-done-p))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6819 (setq titlepos (point)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6820 total (or (get-text-property (1+ (point)) :org-clock-minutes) 0)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6821 h (/ total 60) m (- total (* 60 h))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6822 total (cons h m))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6823 (looking-at "\\(\\*+\\) +\\(.*\\)")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6824 (setq level (- (match-end 1) (match-beginning 1))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6825 title (org-match-string-no-properties 2))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6826 (save-excursion (outline-next-heading) (setq next (point)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6827 (setq closedp (re-search-forward org-closed-time-regexp next t))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6828 (goto-char next)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6829 (setq leafp (and (looking-at "^\\*+ ")
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6830 (<= (- (match-end 0) (point)) level)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6831 (push (list beg end clockpos closedp donep
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6832 total title titlepos level leafp)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6833 rtn)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6834 (goto-char cont)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6835 (nreverse rtn)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
6836
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6837 ;;; Agenda, and Diary Integration
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6838
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6839 ;;; Define the mode
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6840
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6841 (defvar org-agenda-mode-map (make-sparse-keymap)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
6842 "Keymap for `org-agenda-mode'.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6843
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6844 (defvar org-agenda-menu) ; defined later in this file.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6845 (defvar org-agenda-follow-mode nil)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
6846 (defvar org-agenda-show-log nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6847 (defvar org-agenda-redo-command nil)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6848 (defvar org-agenda-mode-hook nil)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6849 (defvar org-agenda-type nil)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6850 (defvar org-agenda-force-single-file nil)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6851
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6852 (defun org-agenda-mode ()
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
6853 "Mode for time-sorted view on action items in Org-mode files.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
6854
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
6855 The following commands are available:
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
6856
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
6857 \\{org-agenda-mode-map}"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6858 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6859 (kill-all-local-variables)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6860 (setq major-mode 'org-agenda-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6861 (setq mode-name "Org-Agenda")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6862 (use-local-map org-agenda-mode-map)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6863 (easy-menu-add org-agenda-menu)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6864 (if org-startup-truncated (setq truncate-lines t))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
6865 (org-add-hook 'post-command-hook 'org-agenda-post-command-hook nil 'local)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
6866 (org-add-hook 'pre-command-hook 'org-unhighlight nil 'local)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
6867 (unless org-agenda-keep-modes
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
6868 (setq org-agenda-follow-mode org-agenda-start-with-follow-mode
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
6869 org-agenda-show-log nil))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
6870 (easy-menu-change
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6871 '("Agenda") "Agenda Files"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6872 (append
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
6873 (list
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6874 (vector
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6875 (if (get 'org-agenda-files 'org-restrict)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6876 "Restricted to single file"
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6877 "Edit File List")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6878 '(org-edit-agenda-file-list)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6879 (not (get 'org-agenda-files 'org-restrict)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6880 "--")
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6881 (mapcar 'org-file-menu-entry (org-agenda-files))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6882 (org-agenda-set-mode-name)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6883 (apply
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6884 (if (fboundp 'run-mode-hooks) 'run-mode-hooks 'run-hooks)
67380
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
6885 (list 'org-agenda-mode-hook)))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6886
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6887 (define-key org-agenda-mode-map "\C-i" 'org-agenda-goto)
69482
a305f07816a9 (org-insert-centered): Use `string-width' to make
Carsten Dominik <dominik@science.uva.nl>
parents: 69454
diff changeset
6888 (define-key org-agenda-mode-map [(tab)] 'org-agenda-goto)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6889 (define-key org-agenda-mode-map "\C-m" 'org-agenda-switch-to)
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
6890 (define-key org-agenda-mode-map "\C-k" 'org-agenda-kill)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6891 (define-key org-agenda-mode-map " " 'org-agenda-show)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6892 (define-key org-agenda-mode-map "\C-c\C-t" 'org-agenda-todo)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6893 (define-key org-agenda-mode-map "o" 'delete-other-windows)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6894 (define-key org-agenda-mode-map "L" 'org-agenda-recenter)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6895 (define-key org-agenda-mode-map "t" 'org-agenda-todo)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
6896 (define-key org-agenda-mode-map "a" 'org-agenda-toggle-archive-tag)
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
6897 (define-key org-agenda-mode-map ":" 'org-agenda-set-tags)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6898 (define-key org-agenda-mode-map "." 'org-agenda-goto-today)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
6899 (define-key org-agenda-mode-map "d" 'org-agenda-day-view)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
6900 (define-key org-agenda-mode-map "w" 'org-agenda-week-view)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6901 (define-key org-agenda-mode-map (org-key 'S-right) 'org-agenda-date-later)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6902 (define-key org-agenda-mode-map (org-key 'S-left) 'org-agenda-date-earlier)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
6903 (define-key org-agenda-mode-map [?\C-c ?\C-x (right)] 'org-agenda-date-later)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
6904 (define-key org-agenda-mode-map [?\C-c ?\C-x (left)] 'org-agenda-date-earlier)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6905
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
6906 (define-key org-agenda-mode-map ">" 'org-agenda-date-prompt)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
6907 (define-key org-agenda-mode-map "\C-c\C-s" 'org-agenda-schedule)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
6908 (define-key org-agenda-mode-map "\C-c\C-d" 'org-agenda-deadline)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6909 (let ((l '(1 2 3 4 5 6 7 8 9 0)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6910 (while l (define-key org-agenda-mode-map
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
6911 (int-to-string (pop l)) 'digit-argument)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6912
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6913 (define-key org-agenda-mode-map "f" 'org-agenda-follow-mode)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
6914 (define-key org-agenda-mode-map "l" 'org-agenda-log-mode)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
6915 (define-key org-agenda-mode-map "D" 'org-agenda-toggle-diary)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
6916 (define-key org-agenda-mode-map "g" 'org-agenda-toggle-time-grid)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6917 (define-key org-agenda-mode-map "r" 'org-agenda-redo)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6918 (define-key org-agenda-mode-map "q" 'org-agenda-quit)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6919 (define-key org-agenda-mode-map "x" 'org-agenda-exit)
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
6920 (define-key org-agenda-mode-map "s" 'org-save-all-org-buffers)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6921 (define-key org-agenda-mode-map "P" 'org-agenda-show-priority)
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
6922 (define-key org-agenda-mode-map "T" 'org-agenda-show-tags)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
6923 (define-key org-agenda-mode-map "n" 'next-line)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
6924 (define-key org-agenda-mode-map "p" 'previous-line)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
6925 (define-key org-agenda-mode-map "\C-n" 'org-agenda-next-date-line)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
6926 (define-key org-agenda-mode-map "\C-p" 'org-agenda-previous-date-line)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6927 (define-key org-agenda-mode-map "," 'org-agenda-priority)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
6928 (define-key org-agenda-mode-map "\C-c," 'org-agenda-priority)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6929 (define-key org-agenda-mode-map "i" 'org-agenda-diary-entry)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
6930 (define-key org-agenda-mode-map "c" 'org-agenda-goto-calendar)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
6931 (eval-after-load "calendar"
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
6932 '(define-key calendar-mode-map org-calendar-to-agenda-key
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
6933 'org-calendar-goto-agenda))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
6934 (define-key org-agenda-mode-map "C" 'org-agenda-convert-date)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
6935 (define-key org-agenda-mode-map "m" 'org-agenda-phases-of-moon)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
6936 (define-key org-agenda-mode-map "M" 'org-agenda-phases-of-moon)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
6937 (define-key org-agenda-mode-map "S" 'org-agenda-sunrise-sunset)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
6938 (define-key org-agenda-mode-map "h" 'org-agenda-holidays)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
6939 (define-key org-agenda-mode-map "H" 'org-agenda-holidays)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6940 (define-key org-agenda-mode-map "+" 'org-agenda-priority-up)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6941 (define-key org-agenda-mode-map "I" 'org-agenda-clock-in)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6942 (define-key org-agenda-mode-map "O" 'org-clock-out)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
6943 (define-key org-agenda-mode-map "X" 'org-clock-cancel)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6944 (define-key org-agenda-mode-map "-" 'org-agenda-priority-down)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6945 (define-key org-agenda-mode-map (org-key 'S-up) 'org-agenda-priority-up)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
6946 (define-key org-agenda-mode-map (org-key 'S-down) 'org-agenda-priority-down)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
6947 (define-key org-agenda-mode-map [?\C-c ?\C-x (up)] 'org-agenda-priority-up)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
6948 (define-key org-agenda-mode-map [?\C-c ?\C-x (down)] 'org-agenda-priority-down)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6949 (define-key org-agenda-mode-map [(right)] 'org-agenda-later)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6950 (define-key org-agenda-mode-map [(left)] 'org-agenda-earlier)
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
6951 (define-key org-agenda-mode-map "\C-c\C-x\C-c" 'org-export-icalendar-combine-agenda-files)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6952 (defvar org-agenda-keymap (copy-keymap org-agenda-mode-map)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6953 "Local keymap for agenda entries from Org-mode.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6954
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
6955 (define-key org-agenda-keymap
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6956 (if (featurep 'xemacs) [(button2)] [(mouse-2)]) 'org-agenda-goto-mouse)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6957 (define-key org-agenda-keymap
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
6958 (if (featurep 'xemacs) [(button3)] [(mouse-3)]) 'org-agenda-show-mouse)
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
6959 (when org-agenda-mouse-1-follows-link
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
6960 (define-key org-agenda-keymap [follow-link] 'mouse-face))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6961 (easy-menu-define org-agenda-menu org-agenda-mode-map "Agenda menu"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6962 '("Agenda"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6963 ("Agenda Files")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6964 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6965 ["Show" org-agenda-show t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6966 ["Go To (other window)" org-agenda-goto t]
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
6967 ["Go To (this window)" org-agenda-switch-to t]
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
6968 ["Follow Mode" org-agenda-follow-mode
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6969 :style toggle :selected org-agenda-follow-mode :active t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6970 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6971 ["Cycle TODO" org-agenda-todo t]
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
6972 ("Tags"
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
6973 ["Show all Tags" org-agenda-show-tags t]
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
6974 ["Set Tags" org-agenda-set-tags t])
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
6975 ("Schedule"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
6976 ["Schedule" org-agenda-schedule t]
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
6977 ["Set Deadline" org-agenda-deadline t]
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
6978 "--"
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6979 ["Reschedule +1 day" org-agenda-date-later (org-agenda-check-type nil 'agenda 'timeline)]
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6980 ["Reschedule -1 day" org-agenda-date-earlier (org-agenda-check-type nil 'agenda 'timeline)]
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6981 ["Reschedule to ..." org-agenda-date-prompt (org-agenda-check-type nil 'agenda 'timeline)])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6982 ("Priority"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6983 ["Set Priority" org-agenda-priority t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6984 ["Increase Priority" org-agenda-priority-up t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6985 ["Decrease Priority" org-agenda-priority-down t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6986 ["Show Priority" org-agenda-show-priority t])
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6987 "--"
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6988 ;; ["New agenda command" org-agenda t]
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
6989 ["Rebuild buffer" org-agenda-redo t]
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
6990 ["Save all Org-mode Buffers" org-save-all-org-buffers t]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6991 "--"
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6992 ["Goto Today" org-agenda-goto-today (org-agenda-check-type nil 'agenda 'timeline)]
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6993 ["Next Dates" org-agenda-later (org-agenda-check-type nil 'agenda)]
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6994 ["Previous Dates" org-agenda-earlier (org-agenda-check-type nil 'agenda)]
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6995 "--"
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6996 ["Day View" org-agenda-day-view :active (org-agenda-check-type nil 'agenda)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
6997 :style radio :selected (equal org-agenda-ndays 1)]
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
6998 ["Week View" org-agenda-week-view :active (org-agenda-check-type nil 'agenda)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
6999 :style radio :selected (equal org-agenda-ndays 7)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7000 "--"
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7001 ["Show Logbook entries" org-agenda-log-mode
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7002 :style toggle :selected org-agenda-show-log :active (org-agenda-check-type nil 'agenda 'timeline)]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7003 ["Include Diary" org-agenda-toggle-diary
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7004 :style toggle :selected org-agenda-include-diary :active (org-agenda-check-type nil 'agenda)]
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7005 ["Use Time Grid" org-agenda-toggle-time-grid
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7006 :style toggle :selected org-agenda-use-time-grid :active (org-agenda-check-type nil 'agenda)]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7007 "--"
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7008 ["New Diary Entry" org-agenda-diary-entry (org-agenda-check-type nil 'agenda 'timeline)]
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7009 ("Calendar Commands"
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7010 ["Goto Calendar" org-agenda-goto-calendar (org-agenda-check-type nil 'agenda 'timeline)]
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7011 ["Phases of the Moon" org-agenda-phases-of-moon (org-agenda-check-type nil 'agenda 'timeline)]
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7012 ["Sunrise/Sunset" org-agenda-sunrise-sunset (org-agenda-check-type nil 'agenda 'timeline)]
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7013 ["Holidays" org-agenda-holidays (org-agenda-check-type nil 'agenda 'timeline)]
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7014 ["Convert" org-agenda-convert-date (org-agenda-check-type nil 'agenda 'timeline)])
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
7015 ["Create iCalendar file" org-export-icalendar-combine-agenda-files t]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7016 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7017 ["Quit" org-agenda-quit t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7018 ["Exit and Release Buffers" org-agenda-exit t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7019 ))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7020
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7021 (defvar org-agenda-restrict nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7022 (defvar org-agenda-restrict-begin (make-marker))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7023 (defvar org-agenda-restrict-end (make-marker))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7024 (defvar org-agenda-last-dispatch-buffer nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7025
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7026 ;;;###autoload
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7027 (defun org-agenda (arg)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7028 "Dispatch agenda commands to collect entries to the agenda buffer.
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7029 Prompts for a character to select a command. Any prefix arg will be passed
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7030 on to the selected command. The default selections are:
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7031 g
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7032 a Call `org-agenda-list' to display the agenda for current day or week.
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7033 t Call `org-todo-list' to display the global todo list.
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7034 T Call `org-todo-list' to display the global todo list, select only
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7035 entries with a specific TODO keyword (the user gets a prompt).
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7036 m Call `org-tags-view' to display headlines with tags matching
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7037 a condition (the user is prompted for the condition).
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7038 M Like `m', but select only TODO entries, no ordinary headlines.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7039 l Create a timeeline for the current buffer.
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7040
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7041 More commands can be added by configuring the variable
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7042 `org-agenda-custom-commands'. In particular, specific tags and TODO keyword
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7043 searches can be pre-defined in this way.
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7044
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7045 If the current buffer is in Org-mode and visiting a file, you can also
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7046 first press `1' to indicate that the agenda should be temporarily (until the
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7047 next use of \\[org-agenda]) restricted to the current file."
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7048 (interactive "P")
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7049 (catch 'exit
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7050 (let* ((buf (current-buffer))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7051 (bfn (buffer-file-name (buffer-base-buffer)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7052 (restrict-ok (and bfn (org-mode-p)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7053 (custom org-agenda-custom-commands)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7054 c entry key type match lprops)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7055 ;; Turn off restriction
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7056 (put 'org-agenda-files 'org-restrict nil)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7057 (setq org-agenda-restrict nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7058 (move-marker org-agenda-restrict-begin nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7059 (move-marker org-agenda-restrict-end nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7060 ;; Remember where this call originated
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7061 (setq org-agenda-last-dispatch-buffer (current-buffer))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7062 (save-window-excursion
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7063 (delete-other-windows)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7064 (switch-to-buffer-other-window " *Agenda Commands*")
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7065 (erase-buffer)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7066 (insert
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7067 "Press key for an agenda command:
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7068 --------------------------------
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7069 a Agenda for current week or day
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7070 t List of all TODO entries T Entries with special TODO kwd
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7071 m Match a TAGS query M Like m, but only TODO entries
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7072 L Timeline for current buffer C Configure custom agenda commands")
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7073 (while (setq entry (pop custom))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7074 (setq key (car entry) type (nth 1 entry) match (nth 2 entry))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7075 (insert (format "\n%-4s%-14s: %s"
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7076 key
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7077 (cond
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7078 ((stringp type) type)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7079 ((eq type 'tags) "Tags query")
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7080 ((eq type 'todo) "TODO keyword")
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7081 ((eq type 'tags-tree) "Tags tree")
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7082 ((eq type 'todo-tree) "TODO kwd tree")
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7083 ((eq type 'occur-tree) "Occur tree")
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7084 (t "???"))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7085 (if (stringp match)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7086 (org-add-props match nil 'face 'org-warning)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7087 (format "set of %d commands" (+ -2 (length entry)))))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7088 (if restrict-ok
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7089 (insert "\n"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7090 (org-add-props "1 Restrict call to current buffer 0 Restrict call to region or subtree" nil 'face 'org-table)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7091
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7092 (goto-char (point-min))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7093 (if (fboundp 'fit-window-to-buffer) (fit-window-to-buffer))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7094 (message "Press key for agenda command%s"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7095 (if restrict-ok ", or [1] or [0] to restrict" ""))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7096 (setq c (read-char-exclusive))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7097 (message "")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7098 (when (memq c '(?L ?1 ?0))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7099 (if restrict-ok
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
7100 (put 'org-agenda-files 'org-restrict (list bfn))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7101 (error "Cannot restrict agenda to current buffer"))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7102 (with-current-buffer " *Agenda Commands*"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7103 (goto-char (point-max))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7104 (delete-region (point-at-bol) (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7105 (goto-char (point-min)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7106 (when (eq c ?0)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7107 (setq org-agenda-restrict t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7108 (with-current-buffer buf
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7109 (if (org-region-active-p)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7110 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7111 (move-marker org-agenda-restrict-begin (region-beginning))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7112 (move-marker org-agenda-restrict-end (region-end)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7113 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7114 (org-back-to-heading t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7115 (move-marker org-agenda-restrict-begin (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7116 (move-marker org-agenda-restrict-end
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7117 (progn (org-end-of-subtree t)))))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7118 (unless (eq c ?L)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7119 (message "Press key for agenda command%s"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7120 (if restrict-ok " (restricted to current file)" ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7121 (setq c (read-char-exclusive)))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7122 (message "")))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7123 (require 'calendar) ; FIXME: can we avoid this for some commands?
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7124 ;; For example the todo list should not need it (but does...)
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7125 (cond
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7126 ((equal c ?C) (customize-variable 'org-agenda-custom-commands))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7127 ((equal c ?a) (call-interactively 'org-agenda-list))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7128 ((equal c ?t) (call-interactively 'org-todo-list))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
7129 ((equal c ?T) (org-call-with-arg 'org-todo-list (or arg '(4))))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7130 ((equal c ?m) (call-interactively 'org-tags-view))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
7131 ((equal c ?M) (org-call-with-arg 'org-tags-view (or arg '(4))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7132 ((equal c ?L)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7133 (unless restrict-ok
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7134 (error "This is not an Org-mode file"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7135 (org-call-with-arg 'org-timeline arg))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7136 ((setq entry (assoc (char-to-string c) org-agenda-custom-commands))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7137 (if (symbolp (nth 1 entry))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7138 (progn
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7139 (setq type (nth 1 entry) match (nth 2 entry) lprops (nth 3 entry)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7140 lprops (nth 3 entry))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7141 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7142 ((eq type 'tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7143 (org-let lprops '(org-tags-view current-prefix-arg match)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7144 ((eq type 'tags-todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7145 (org-let lprops '(org-tags-view '(4) match)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7146 ((eq type 'todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7147 (org-let lprops '(org-todo-list match)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7148 ((eq type 'tags-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7149 (org-check-for-org-mode)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7150 (org-let lprops '(org-tags-sparse-tree current-prefix-arg match)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7151 ((eq type 'todo-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7152 (org-check-for-org-mode)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7153 (org-let lprops
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7154 '(org-occur (concat "^" outline-regexp "[ \t]*"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7155 (regexp-quote match) "\\>"))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7156 ((eq type 'occur-tree)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7157 (org-check-for-org-mode)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7158 (org-let lprops '(org-occur match)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7159 (t (error "Invalid custom agenda command type %s" type))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7160 (org-run-agenda-series (cddr entry))))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7161 (t (error "Invalid key"))))))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7162
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7163 ;; FIXME: what is the meaning of WINDOW?????
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7164 (defun org-run-agenda-series (series &optional window)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7165 (org-prepare-agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7166 (let* ((org-agenda-multi t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7167 (redo (list 'org-run-agenda-series (list 'quote series)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7168 (org-select-agenda-window t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7169 (cmds (car series))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7170 (gprops (nth 1 series))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7171 match ;; The byte compiler incorrectly complains about this. Keep it!
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7172 cmd type lprops)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7173 (while (setq cmd (pop cmds))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7174 (setq type (car cmd) match (nth 1 cmd) lprops (nth 2 cmd))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7175 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7176 ((eq type 'agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7177 (call-interactively 'org-agenda-list))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7178 ((eq type 'alltodo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7179 (call-interactively 'org-todo-list))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7180 ((eq type 'tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7181 (org-let2 gprops lprops
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7182 '(org-tags-view current-prefix-arg match)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7183 ((eq type 'tags-todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7184 (org-let2 gprops lprops
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7185 '(org-tags-view '(4) match)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7186 ((eq type 'todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7187 (org-let2 gprops lprops
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7188 '(org-todo-list match)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7189 (t (error "Invalid type in command series"))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7190 (widen)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7191 (setq org-agenda-redo-command redo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7192 (goto-char (point-min)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7193 (org-finalize-agenda))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7194
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7195 ;;;###autoload
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7196 (defmacro org-batch-agenda (cmd-key &rest parameters)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7197 "Run an agenda command in batch mode, send result to STDOUT.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7198 CMD-KEY is a string that is also a key in `org-agenda-custom-commands'.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7199 Paramters are alternating variable names and values that will be bound
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7200 before running the agenda command."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7201 (let (pars)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7202 (while parameters
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7203 (push (list (pop parameters) (if parameters (pop parameters))) pars))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7204 (flet ((read-char-exclusive () (string-to-char cmd-key)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7205 (eval (list 'let (nreverse pars) '(org-agenda nil))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7206 (set-buffer "*Org Agenda*")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7207 (princ (buffer-string))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7208
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7209 (defmacro org-no-read-only (&rest body)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7210 "Inhibit read-only for BODY."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7211 `(let ((inhibit-read-only t)) ,@body))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7212
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7213 (defun org-check-for-org-mode ()
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7214 "Make sure current buffer is in org-mode. Error if not."
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
7215 (or (org-mode-p)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7216 (error "Cannot execute org-mode agenda command on buffer in %s."
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7217 major-mode)))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7218
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7219 (defun org-fit-agenda-window ()
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7220 "Fit the window to the buffer size."
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7221 (and org-fit-agenda-window
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7222 (memq org-agenda-window-setup '(reorganize-frame))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7223 (fboundp 'fit-window-to-buffer)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7224 (fit-window-to-buffer nil (/ (* (frame-height) 3) 4)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7225 (/ (frame-height) 2))))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7226
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7227 (defun org-agenda-files (&optional unrestricted)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7228 "Get the list of agenda files.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7229 Optional UNRESTRICTED means return the full list even if a restriction
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7230 is currently in place."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7231 (cond
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7232 ((and (not unrestricted) (get 'org-agenda-files 'org-restrict)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7233 ((stringp org-agenda-files) (org-read-agenda-file-list))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7234 ((listp org-agenda-files) org-agenda-files)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7235 (t (error "Invalid value of `org-agenda-files'"))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7236
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7237 (defvar org-window-configuration)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7238
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7239 (defun org-edit-agenda-file-list ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7240 "Edit the list of agenda files.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7241 Depending on setup, this either uses customize to edit the variable
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7242 `org-agenda-files', or it visits the file that is holding the list. In the
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7243 latter case, the buffer is set up in a way that saving it automatically kills
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7244 the buffer and restores the previous window configuration."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7245 (interactive)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7246 (if (stringp org-agenda-files)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7247 (let ((cw (current-window-configuration)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7248 (find-file org-agenda-files)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
7249 (org-set-local 'org-window-configuration cw)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7250 (org-add-hook 'after-save-hook
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7251 (lambda ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7252 (set-window-configuration
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7253 (prog1 org-window-configuration
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7254 (kill-buffer (current-buffer))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7255 (org-install-agenda-files-menu)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7256 (message "New agenda file list installed"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7257 nil 'local)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7258 (message (substitute-command-keys
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7259 "Edit list and finish with \\[save-buffer]")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7260 (customize-variable 'org-agenda-files)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7261
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7262 (defun org-store-new-agenda-file-list (list)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7263 "Set new value for the agenda file list and save it correcly."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7264 (if (stringp org-agenda-files)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7265 (let ((f org-agenda-files) b)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7266 (while (setq b (find-buffer-visiting f)) (kill-buffer b))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7267 (with-temp-file f
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7268 (insert (mapconcat 'identity list "\n") "\n")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7269 (let ((org-mode-hook nil) (default-major-mode 'fundamental-mode))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7270 (setq org-agenda-files list)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7271 (customize-save-variable 'org-agenda-files org-agenda-files))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7272
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7273 (defun org-read-agenda-file-list ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7274 "Read the list of agenda files from a file."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7275 (when (stringp org-agenda-files)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7276 (with-temp-buffer
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7277 (insert-file-contents org-agenda-files)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7278 (org-split-string (buffer-string) "[ \t\r\n]*?[\r\n][ \t\r\n]*"))))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7279
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7280 (defvar org-agenda-markers nil
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7281 "List of all currently active markers created by `org-agenda'.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7282 (defvar org-agenda-last-marker-time (time-to-seconds (current-time))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7283 "Creation time of the last agenda marker.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7284
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7285 (defun org-agenda-new-marker (&optional pos)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7286 "Return a new agenda marker.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7287 Org-mode keeps a list of these markers and resets them when they are
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7288 no longer in use."
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7289 (let ((m (copy-marker (or pos (point)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7290 (setq org-agenda-last-marker-time (time-to-seconds (current-time)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7291 (push m org-agenda-markers)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7292 m))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7293
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7294 (defun org-agenda-maybe-reset-markers (&optional force)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7295 "Reset markers created by `org-agenda'. But only if they are old enough."
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7296 (if (or (and force (not org-agenda-multi))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7297 (> (- (time-to-seconds (current-time))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7298 org-agenda-last-marker-time)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7299 5))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7300 (while org-agenda-markers
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7301 (move-marker (pop org-agenda-markers) nil))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7302
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7303 (defvar org-agenda-new-buffers nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7304 "Buffers created to visit agenda files.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7305
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7306 (defun org-get-agenda-file-buffer (file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7307 "Get a buffer visiting FILE. If the buffer needs to be created, add
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7308 it to the list of buffers which might be released later."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7309 (let ((buf (find-buffer-visiting file)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7310 (if buf
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7311 buf ; just return it
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7312 ;; Make a new buffer and remember it
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7313 (setq buf (find-file-noselect file))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7314 (if buf (push buf org-agenda-new-buffers))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7315 buf)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7316
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7317 (defun org-release-buffers (blist)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7318 "Release all buffers in list, asking the user for confirmation when needed.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7319 When a buffer is unmodified, it is just killed. When modified, it is saved
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7320 \(if the user agrees) and then killed."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7321 (let (buf file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7322 (while (setq buf (pop blist))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7323 (setq file (buffer-file-name buf))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7324 (when (and (buffer-modified-p buf)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7325 file
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7326 (y-or-n-p (format "Save file %s? " file)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7327 (with-current-buffer buf (save-buffer)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7328 (kill-buffer buf))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7329
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7330 (defun org-timeline (&optional include-all)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7331 "Show a time-sorted view of the entries in the current org file.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7332 Only entries with a time stamp of today or later will be listed. With
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7333 \\[universal-argument] prefix, all unfinished TODO items will also be shown,
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7334 under the current date.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7335 If the buffer contains an active region, only check the region for
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7336 dates."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7337 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7338 (require 'calendar)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7339 (org-compile-prefix-format 'timeline)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7340 (org-set-sorting-strategy 'timeline)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7341 (let* ((dopast t)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7342 (dotodo include-all)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7343 (doclosed org-agenda-show-log)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
7344 (entry buffer-file-name)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7345 (date (calendar-current-date))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7346 (win (selected-window))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7347 (pos1 (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7348 (beg (if (org-region-active-p) (region-beginning) (point-min)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7349 (end (if (org-region-active-p) (region-end) (point-max)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7350 (day-numbers (org-get-all-dates beg end 'no-ranges
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7351 t doclosed ; always include today
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7352 org-timeline-show-empty-dates))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7353 (today (time-to-days (current-time)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7354 (past t)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7355 args
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7356 s e rtn d emptyp)
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
7357 (setq org-agenda-redo-command
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7358 (list 'progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7359 (list 'switch-to-buffer-other-window (current-buffer))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7360 (list 'org-timeline (list 'quote include-all))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7361 (if (not dopast)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7362 ;; Remove past dates from the list of dates.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7363 (setq day-numbers (delq nil (mapcar (lambda(x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7364 (if (>= x today) x nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7365 day-numbers))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7366 (org-prepare-agenda)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7367 (if doclosed (push :closed args))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7368 (push :timestamp args)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7369 (if dotodo (push :todo args))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7370 (while (setq d (pop day-numbers))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7371 (if (and (listp d) (eq (car d) :omitted))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7372 (progn
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7373 (setq s (point))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7374 (insert (format "\n[... %d empty days omitted]\n\n" (cdr d)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7375 (put-text-property s (1- (point)) 'face 'org-level-3))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7376 (if (listp d) (setq d (car d) emptyp t) (setq emptyp nil))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7377 (if (and (>= d today)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7378 dopast
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7379 past)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7380 (progn
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7381 (setq past nil)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7382 (insert (make-string 79 ?-) "\n")))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7383 (setq date (calendar-gregorian-from-absolute d))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7384 (setq s (point))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7385 (setq rtn (and (not emptyp)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7386 (apply 'org-agenda-get-day-entries
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7387 entry date args)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7388 (if (or rtn (equal d today) org-timeline-show-empty-dates)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7389 (progn
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7390 (insert (calendar-day-name date) " "
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7391 (number-to-string (extract-calendar-day date)) " "
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7392 (calendar-month-name (extract-calendar-month date)) " "
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7393 (number-to-string (extract-calendar-year date)) "\n")
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7394 (put-text-property s (1- (point)) 'face
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7395 'org-level-3)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7396 (if (equal d today)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7397 (put-text-property s (1- (point)) 'org-today t))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7398 (and rtn (insert (org-finalize-agenda-entries rtn) "\n"))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
7399 (put-text-property s (1- (point)) 'day d)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7400 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7401 (goto-char (or (text-property-any (point-min) (point-max) 'org-today t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7402 (point-min)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7403 (add-text-properties (point-min) (point-max) '(org-agenda-type timeline))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7404 (org-finalize-agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7405 (setq buffer-read-only t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7406 (when (not org-select-agenda-window)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7407 (select-window win)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7408 (goto-char pos1))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7409
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7410 (defvar org-agenda-overriding-arguments nil) ; dynamically scoped parameter
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7411 (defvar org-agenda-last-arguments nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7412 "The arguments of the previous call to org-agenda")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7413
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7414 ;;;###autoload
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7415 (defun org-agenda-list (&optional include-all start-day ndays)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7416 "Produce a weekly view from all files in variable `org-agenda-files'.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7417 The view will be for the current week, but from the overview buffer you
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7418 will be able to go to other weeks.
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7419 With one \\[universal-argument] prefix argument INCLUDE-ALL, all unfinished TODO items will
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7420 also be shown, under the current date.
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7421 With two \\[universal-argument] prefix argument INCLUDE-ALL, all TODO entries marked DONE
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7422 on the days are also shown. See the variable `org-log-done' for how
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7423 to turn on logging.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7424 START-DAY defaults to TODAY, or to the most recent match for the weekday
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7425 given in `org-agenda-start-on-weekday'.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7426 NDAYS defaults to `org-agenda-ndays'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7427 (interactive "P")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7428 (if org-agenda-overriding-arguments
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7429 (setq include-all (car org-agenda-overriding-arguments)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7430 start-day (nth 1 org-agenda-overriding-arguments)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7431 ndays (nth 2 org-agenda-overriding-arguments)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7432 (setq org-agenda-last-arguments (list include-all start-day ndays))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7433 (org-compile-prefix-format 'agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7434 (org-set-sorting-strategy 'agenda)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7435 (require 'calendar)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7436 (let* ((org-agenda-start-on-weekday
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7437 (if (or (equal ndays 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7438 (and (null ndays) (equal 1 org-agenda-ndays)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7439 nil org-agenda-start-on-weekday))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7440 (thefiles (org-agenda-files))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7441 (files thefiles)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7442 (win (selected-window))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7443 (today (time-to-days (current-time)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7444 (sd (or start-day today))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7445 (start (if (or (null org-agenda-start-on-weekday)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7446 (< org-agenda-ndays 7))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7447 sd
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7448 (let* ((nt (calendar-day-of-week
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7449 (calendar-gregorian-from-absolute sd)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7450 (n1 org-agenda-start-on-weekday)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7451 (d (- nt n1)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7452 (- sd (+ (if (< d 0) 7 0) d)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7453 (day-numbers (list start))
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
7454 (inhibit-redisplay t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7455 s e rtn rtnall file date d start-pos end-pos todayp nd)
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
7456 (setq org-agenda-redo-command
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7457 (list 'org-agenda-list (list 'quote include-all) start-day ndays))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7458 ;; Make the list of days
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7459 (setq ndays (or ndays org-agenda-ndays)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7460 nd ndays)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7461 (while (> ndays 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7462 (push (1+ (car day-numbers)) day-numbers)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7463 (setq ndays (1- ndays)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7464 (setq day-numbers (nreverse day-numbers))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7465 (org-prepare-agenda)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
7466 (org-set-local 'starting-day (car day-numbers))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
7467 (org-set-local 'include-all-loc include-all)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7468 (when (and (or include-all org-agenda-include-all-todo)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7469 (member today day-numbers))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7470 (setq files thefiles
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7471 rtnall nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7472 (while (setq file (pop files))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7473 (catch 'nextfile
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7474 (org-check-agenda-file file)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7475 (setq date (calendar-gregorian-from-absolute today)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7476 rtn (org-agenda-get-day-entries
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7477 file date :todo))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7478 (setq rtnall (append rtnall rtn))))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
7479 (when rtnall
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7480 (insert "ALL CURRENTLY OPEN TODO ITEMS:\n")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7481 (add-text-properties (point-min) (1- (point))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7482 (list 'face 'org-level-3))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7483 (insert (org-finalize-agenda-entries rtnall) "\n")))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7484 (setq s (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7485 (insert (if (= nd 7) "Week-" "Day-") "agenda:\n")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7486 (add-text-properties s (1- (point)) (list 'face 'org-level-3))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7487 (while (setq d (pop day-numbers))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7488 (setq date (calendar-gregorian-from-absolute d)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7489 s (point))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7490 (if (or (setq todayp (= d today))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7491 (and (not start-pos) (= d sd)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7492 (setq start-pos (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7493 (if (and start-pos (not end-pos))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7494 (setq end-pos (point))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7495 (setq files thefiles
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7496 rtnall nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7497 (while (setq file (pop files))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7498 (catch 'nextfile
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7499 (org-check-agenda-file file)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7500 (if org-agenda-show-log
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7501 (setq rtn (org-agenda-get-day-entries
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7502 file date
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7503 :deadline :scheduled :timestamp :closed))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7504 (setq rtn (org-agenda-get-day-entries
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7505 file date
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7506 :deadline :scheduled :timestamp)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7507 (setq rtnall (append rtnall rtn))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7508 (if org-agenda-include-diary
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7509 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7510 (require 'diary-lib)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7511 (setq rtn (org-get-entries-from-diary date))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7512 (setq rtnall (append rtnall rtn))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7513 (if (or rtnall org-agenda-show-all-dates)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7514 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7515 (insert (format "%-9s %2d %s %4d\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7516 (calendar-day-name date)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7517 (extract-calendar-day date)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7518 (calendar-month-name (extract-calendar-month date))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7519 (extract-calendar-year date)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7520 (put-text-property s (1- (point)) 'face
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7521 'org-level-3)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7522 (if todayp (put-text-property s (1- (point)) 'org-today t))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7523
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7524 (if rtnall (insert
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7525 (org-finalize-agenda-entries
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7526 (org-agenda-add-time-grid-maybe
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7527 rtnall nd todayp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7528 "\n"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7529 (put-text-property s (1- (point)) 'day d))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7530 (goto-char (point-min))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7531 (org-fit-agenda-window)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7532 (unless (and (pos-visible-in-window-p (point-min))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7533 (pos-visible-in-window-p (point-max)))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7534 (goto-char (1- (point-max)))
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7535 (recenter -1)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7536 (if (not (pos-visible-in-window-p (or start-pos 1)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7537 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7538 (goto-char (or start-pos 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7539 (recenter 1))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7540 (goto-char (or start-pos 1))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7541 (add-text-properties (point-min) (point-max) '(org-agenda-type agenda))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7542 (org-finalize-agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7543 (setq buffer-read-only t)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7544 (if (not org-select-agenda-window) (select-window win))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7545 (message "")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7546
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7547 (defvar org-select-this-todo-keyword nil)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7548
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7549 ;;;###autoload
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7550 (defun org-todo-list (arg)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7551 "Show all TODO entries from all agenda file in a single list.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7552 The prefix arg can be used to select a specific TODO keyword and limit
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7553 the list to these. When using \\[universal-argument], you will be prompted
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7554 for a keyword. A numeric prefix directly selects the Nth keyword in
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7555 `org-todo-keywords'."
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7556 (interactive "P")
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
7557 (require 'calendar)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7558 (org-compile-prefix-format 'todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7559 (org-set-sorting-strategy 'todo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7560 (let* ((today (time-to-days (current-time)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7561 (date (calendar-gregorian-from-absolute today))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7562 (win (selected-window))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7563 (kwds org-todo-keywords)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7564 (completion-ignore-case t)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7565 (org-select-this-todo-keyword
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
7566 (if (stringp arg) arg
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
7567 (and arg (integerp arg) (> arg 0)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
7568 (nth (1- arg) org-todo-keywords))))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7569 rtn rtnall files file pos)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7570 (when (equal arg '(4))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7571 (setq org-select-this-todo-keyword
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7572 (completing-read "Keyword: " (mapcar 'list org-todo-keywords)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7573 nil t)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7574 (and (equal 0 arg) (setq org-select-this-todo-keyword nil))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7575 (org-prepare-agenda)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
7576 (org-set-local 'last-arg arg)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
7577 (org-set-local 'org-todo-keywords kwds)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7578 (setq org-agenda-redo-command
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7579 '(org-todo-list (or current-prefix-arg last-arg)))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7580 (setq files (org-agenda-files)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7581 rtnall nil)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7582 (while (setq file (pop files))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7583 (catch 'nextfile
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7584 (org-check-agenda-file file)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7585 (setq rtn (org-agenda-get-day-entries file date :todo))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7586 (setq rtnall (append rtnall rtn))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7587 (insert "Global list of TODO items of type: ")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7588 (add-text-properties (point-min) (1- (point))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7589 (list 'face 'org-level-3))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7590 (setq pos (point))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7591 (insert (or org-select-this-todo-keyword "ALL") "\n")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7592 (add-text-properties pos (1- (point)) (list 'face 'org-warning))
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7593 (setq pos (point))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7594 (unless org-agenda-multi
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7595 (insert
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7596 "Available with `N r': (0)ALL "
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7597 (let ((n 0))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7598 (mapconcat (lambda (x)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7599 (format "(%d)%s" (setq n (1+ n)) x))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7600 org-todo-keywords " "))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7601 "\n"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7602 (add-text-properties pos (1- (point)) (list 'face 'org-level-3))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7603 (when rtnall
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7604 (insert (org-finalize-agenda-entries rtnall) "\n"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7605 (goto-char (point-min))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7606 (org-fit-agenda-window)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7607 (add-text-properties (point-min) (point-max) '(org-agenda-type todo))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7608 (org-finalize-agenda)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7609 (setq buffer-read-only t)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7610 (if (not org-select-agenda-window) (select-window win))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7611
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7612 (defun org-check-agenda-file (file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7613 "Make sure FILE exists. If not, ask user what to do."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7614 (when (not (file-exists-p file))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7615 (message "non-existent file %s. [R]emove from list or [A]bort?"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7616 (abbreviate-file-name file))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7617 (let ((r (downcase (read-char-exclusive))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7618 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7619 ((equal r ?r)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7620 (org-remove-file file)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7621 (throw 'nextfile t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7622 (t (error "Abort"))))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7623
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7624 (defun org-agenda-check-type (error &rest types)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7625 "Check if agenda buffer is of allowed type.
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7626 If ERROR is non-nil, throw an error, otherwise just return nil."
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7627 (if (memq org-agenda-type types)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7628 t
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7629 (if error
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
7630 (error "Not allowed in %s-type agenda buffers" org-agenda-type)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7631 nil)))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7632
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7633 (defun org-agenda-quit ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7634 "Exit agenda by removing the window or the buffer."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7635 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7636 (let ((buf (current-buffer)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7637 (if (not (one-window-p)) (delete-window))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7638 (kill-buffer buf)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7639 (org-agenda-maybe-reset-markers 'force))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7640 ;; Maybe restore the pre-agenda window configuration.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7641 (and org-agenda-restore-windows-after-quit
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7642 (not (eq org-agenda-window-setup 'other-frame))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7643 org-pre-agenda-window-conf
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7644 (set-window-configuration org-pre-agenda-window-conf)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7645
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7646 (defun org-agenda-exit ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7647 "Exit agenda by removing the window or the buffer.
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7648 Also kill all Org-mode buffers which have been loaded by `org-agenda'.
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7649 Org-mode buffers visited directly by the user will not be touched."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7650 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7651 (org-release-buffers org-agenda-new-buffers)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7652 (setq org-agenda-new-buffers nil)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7653 (org-agenda-quit))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7654
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
7655 (defun org-save-all-org-buffers ()
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
7656 "Save all Org-mode buffers without user confirmation."
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
7657 (interactive)
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
7658 (message "Saving all Org-mode buffers...")
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
7659 (save-some-buffers t 'org-mode-p)
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
7660 (message "Saving all Org-mode buffers... done"))
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
7661
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7662 (defun org-agenda-redo ()
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7663 "Rebuild Agenda.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
7664 When this is the global TODO list, a prefix argument will be interpreted."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7665 (interactive)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7666 (let* ((org-agenda-keep-modes t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7667 (line (org-current-line))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7668 (window-line (- line (org-current-line (window-start)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7669 (message "Rebuilding agenda buffer...")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7670 (eval org-agenda-redo-command)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7671 (message "Rebuilding agenda buffer...done")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7672 (goto-line line)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7673 (recenter window-line)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7674
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7675 (defun org-agenda-goto-today ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7676 "Go to today."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7677 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7678 (org-agenda-check-type t 'timeline 'agenda)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7679 (let ((tdpos (text-property-any (point-min) (point-max) 'org-today t)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7680 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7681 (tdpos (goto-char tdpos))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7682 ((eq org-agenda-type 'agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7683 (let ((org-agenda-overriding-arguments org-agenda-last-arguments))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7684 (setf (nth 1 org-agenda-overriding-arguments) nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7685 (org-agenda-redo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7686 (org-agenda-find-today-or-agenda)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7687 (t (error "Cannot find today")))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7688
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7689 (defun org-agenda-find-today-or-agenda ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7690 (goto-char
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7691 (or (text-property-any (point-min) (point-max) 'org-today t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7692 (text-property-any (point-min) (point-max) 'org-agenda-type 'agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7693 (point-min))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7694
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7695 (defun org-agenda-later (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7696 "Go forward in time by `org-agenda-ndays' days.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7697 With prefix ARG, go forward that many times `org-agenda-ndays'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7698 (interactive "p")
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7699 (org-agenda-check-type t 'agenda)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7700 (let ((org-agenda-overriding-arguments
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7701 (list (car org-agenda-last-arguments)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7702 (+ starting-day (* arg org-agenda-ndays))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7703 nil t)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7704 (org-agenda-redo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7705 (org-agenda-find-today-or-agenda)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7706
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7707 (defun org-agenda-earlier (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7708 "Go back in time by `org-agenda-ndays' days.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7709 With prefix ARG, go back that many times `org-agenda-ndays'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7710 (interactive "p")
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7711 (org-agenda-check-type t 'agenda)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7712 (let ((org-agenda-overriding-arguments
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7713 (list (car org-agenda-last-arguments)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7714 (- starting-day (* arg org-agenda-ndays))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7715 nil t)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7716 (org-agenda-redo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7717 (org-agenda-find-today-or-agenda)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7718
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7719 (defun org-agenda-week-view ()
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7720 "Switch to weekly view for agenda."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7721 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7722 (org-agenda-check-type t 'agenda)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7723 (if (= org-agenda-ndays 7)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7724 (error "This is already the week view"))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7725 (setq org-agenda-ndays 7)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7726 (let ((org-agenda-overriding-arguments
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7727 (list (car org-agenda-last-arguments)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7728 (or (get-text-property (point) 'day)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7729 starting-day)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7730 nil t)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7731 (org-agenda-redo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7732 (org-agenda-find-today-or-agenda))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7733 (org-agenda-set-mode-name)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7734 (message "Switched to week view"))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7735
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7736 (defun org-agenda-day-view ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7737 "Switch to daily view for agenda."
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7738 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7739 (org-agenda-check-type t 'agenda)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7740 (if (= org-agenda-ndays 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7741 (error "This is already the day view"))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7742 (setq org-agenda-ndays 1)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7743 (let ((org-agenda-overriding-arguments
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7744 (list (car org-agenda-last-arguments)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7745 (or (get-text-property (point) 'day)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
7746 starting-day)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7747 nil t)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7748 (org-agenda-redo)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7749 (org-agenda-find-today-or-agenda))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7750 (org-agenda-set-mode-name)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
7751 (message "Switched to day view"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7752
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7753 (defun org-agenda-next-date-line (&optional arg)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7754 "Jump to the next line indicating a date in agenda buffer."
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7755 (interactive "p")
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7756 (org-agenda-check-type t 'agenda 'timeline)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7757 (beginning-of-line 1)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7758 (if (looking-at "^\\S-") (forward-char 1))
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7759 (if (not (re-search-forward "^\\S-" nil t arg))
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7760 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7761 (backward-char 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7762 (error "No next date after this line in this buffer")))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7763 (goto-char (match-beginning 0)))
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7764
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7765 (defun org-agenda-previous-date-line (&optional arg)
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7766 "Jump to the previous line indicating a date in agenda buffer."
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7767 (interactive "p")
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7768 (org-agenda-check-type t 'agenda 'timeline)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7769 (beginning-of-line 1)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7770 (if (not (re-search-backward "^\\S-" nil t arg))
63431
fd4b70bc23a4 (org-promote, org-evaluate-time-range, org-agenda-next-date-line,
Juanma Barranquero <lekktu@gmail.com>
parents: 63367
diff changeset
7771 (error "No previous date before this line in this buffer")))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7772
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7773 ;; Initialize the highlight
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7774 (defvar org-hl (org-make-overlay 1 1))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7775 (org-overlay-put org-hl 'face 'highlight)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7776
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7777 (defun org-highlight (begin end &optional buffer)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7778 "Highlight a region with overlay."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7779 (funcall (if (featurep 'xemacs) 'set-extent-endpoints 'move-overlay)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7780 org-hl begin end (or buffer (current-buffer))))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7781
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7782 (defun org-unhighlight ()
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7783 "Detach overlay INDEX."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7784 (funcall (if (featurep 'xemacs) 'detach-extent 'delete-overlay) org-hl))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7785
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7786
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7787 (defun org-agenda-follow-mode ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7788 "Toggle follow mode in an agenda buffer."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7789 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7790 (setq org-agenda-follow-mode (not org-agenda-follow-mode))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7791 (org-agenda-set-mode-name)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7792 (message "Follow mode is %s"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7793 (if org-agenda-follow-mode "on" "off")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7794
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7795 (defun org-agenda-log-mode ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7796 "Toggle log mode in an agenda buffer."
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7797 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7798 (org-agenda-check-type t 'agenda 'timeline)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7799 (setq org-agenda-show-log (not org-agenda-show-log))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7800 (org-agenda-set-mode-name)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7801 (org-agenda-redo)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7802 (message "Log mode is %s"
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7803 (if org-agenda-show-log "on" "off")))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7804
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7805 (defun org-agenda-toggle-diary ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7806 "Toggle diary inclusion in an agenda buffer."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7807 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7808 (org-agenda-check-type t 'agenda)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7809 (setq org-agenda-include-diary (not org-agenda-include-diary))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7810 (org-agenda-redo)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7811 (org-agenda-set-mode-name)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7812 (message "Diary inclusion turned %s"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7813 (if org-agenda-include-diary "on" "off")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7814
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7815 (defun org-agenda-toggle-time-grid ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7816 "Toggle time grid in an agenda buffer."
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7817 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
7818 (org-agenda-check-type t 'agenda)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7819 (setq org-agenda-use-time-grid (not org-agenda-use-time-grid))
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7820 (org-agenda-redo)
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7821 (org-agenda-set-mode-name)
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7822 (message "Time-grid turned %s"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7823 (if org-agenda-use-time-grid "on" "off")))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
7824
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7825 (defun org-agenda-set-mode-name ()
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7826 "Set the mode name to indicate all the small mode settings."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7827 (setq mode-name
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7828 (concat "Org-Agenda"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7829 (if (equal org-agenda-ndays 1) " Day" "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7830 (if (equal org-agenda-ndays 7) " Week" "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7831 (if org-agenda-follow-mode " Follow" "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7832 (if org-agenda-include-diary " Diary" "")
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7833 (if org-agenda-use-time-grid " Grid" "")
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
7834 (if org-agenda-show-log " Log" "")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7835 (force-mode-line-update))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7836
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7837 (defun org-agenda-post-command-hook ()
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7838 (and (eolp) (not (bolp)) (backward-char 1))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7839 (setq org-agenda-type (get-text-property (point) 'org-agenda-type))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7840 (if (and org-agenda-follow-mode
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7841 (get-text-property (point) 'org-marker))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7842 (org-agenda-show)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7843
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7844 (defvar org-disable-agenda-to-diary nil) ;Dynamically-scoped param.
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7845
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7846 (defun org-get-entries-from-diary (date)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7847 "Get the (Emacs Calendar) diary entries for DATE."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7848 (let* ((fancy-diary-buffer "*temporary-fancy-diary-buffer*")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7849 (diary-display-hook '(fancy-diary-display))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7850 (list-diary-entries-hook
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7851 (cons 'org-diary-default-entry list-diary-entries-hook))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7852 (diary-file-name-prefix-function nil) ; turn this feature off
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7853 (diary-modify-entry-list-string-function 'org-modify-diary-entry-string)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7854 entries
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7855 (org-disable-agenda-to-diary t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7856 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7857 (save-window-excursion
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
7858 (list-diary-entries date 1))) ;; Keep this name for now, compatibility
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7859 (if (not (get-buffer fancy-diary-buffer))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7860 (setq entries nil)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7861 (with-current-buffer fancy-diary-buffer
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7862 (setq buffer-read-only nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7863 (if (= (point-max) 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7864 ;; No entries
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7865 (setq entries nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7866 ;; Omit the date and other unnecessary stuff
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7867 (org-agenda-cleanup-fancy-diary)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7868 ;; Add prefix to each line and extend the text properties
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7869 (if (= (point-max) 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7870 (setq entries nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7871 (setq entries (buffer-substring (point-min) (- (point-max) 1)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7872 (set-buffer-modified-p nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7873 (kill-buffer fancy-diary-buffer)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7874 (when entries
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7875 (setq entries (org-split-string entries "\n"))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
7876 (setq entries
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7877 (mapcar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7878 (lambda (x)
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
7879 (setq x (org-format-agenda-item "" x "Diary" nil 'time))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7880 ;; Extend the text properties to the beginning of the line
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7881 (org-add-props x (text-properties-at (1- (length x)) x)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7882 entries)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7883
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7884 (defun org-agenda-cleanup-fancy-diary ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7885 "Remove unwanted stuff in buffer created by `fancy-diary-display'.
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7886 This gets rid of the date, the underline under the date, and
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7887 the dummy entry installed by `org-mode' to ensure non-empty diary for each
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7888 date. It also removes lines that contain only whitespace."
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7889 (goto-char (point-min))
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7890 (if (looking-at ".*?:[ \t]*")
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7891 (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7892 (replace-match "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7893 (re-search-forward "\n=+$" nil t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7894 (replace-match "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7895 (while (re-search-backward "^ +\n?" nil t) (replace-match "")))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7896 (re-search-forward "\n=+$" nil t)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7897 (delete-region (point-min) (min (point-max) (1+ (match-end 0)))))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7898 (goto-char (point-min))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7899 (while (re-search-forward "^ +\n" nil t)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7900 (replace-match ""))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
7901 (goto-char (point-min))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7902 (if (re-search-forward "^Org-mode dummy\n?" nil t)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7903 (replace-match "")))
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7904
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7905 ;; Make sure entries from the diary have the right text properties.
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7906 (eval-after-load "diary-lib"
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7907 '(if (boundp 'diary-modify-entry-list-string-function)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7908 ;; We can rely on the hook, nothing to do
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7909 nil
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7910 ;; Hook not avaiable, must use advice to make this work
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7911 (defadvice add-to-diary-list (before org-mark-diary-entry activate)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7912 "Make the position visible."
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7913 (if (and org-disable-agenda-to-diary ;; called from org-agenda
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7914 (stringp string)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
7915 buffer-file-name)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7916 (setq string (org-modify-diary-entry-string string))))))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7917
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7918 (defun org-modify-diary-entry-string (string)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7919 "Add text properties to string, allowing org-mode to act on it."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7920 (org-add-props string nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7921 'mouse-face 'highlight
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7922 'keymap org-agenda-keymap
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7923 'help-echo (format "mouse-2 or RET jump to diary file %s"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7924 (abbreviate-file-name buffer-file-name))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7925 'org-agenda-diary-link t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7926 'org-marker (org-agenda-new-marker (point-at-bol))))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7927
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7928 (defun org-diary-default-entry ()
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7929 "Add a dummy entry to the diary.
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7930 Needed to avoid empty dates which mess up holiday display."
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
7931 ;; Catch the error if dealing with the new add-to-diary-alist
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7932 (when org-disable-agenda-to-diary
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7933 (condition-case nil
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7934 (add-to-diary-list original-date "Org-mode dummy" "")
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7935 (error
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
7936 (add-to-diary-list original-date "Org-mode dummy" "" nil)))))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
7937
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
7938 ;;;###autoload
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7939 (defun org-cycle-agenda-files ()
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7940 "Cycle through the files in `org-agenda-files'.
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7941 If the current buffer visits an agenda file, find the next one in the list.
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7942 If the current buffer does not, find the first agenda file."
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7943 (interactive)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7944 (let* ((fs (org-agenda-files t))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7945 (files (append fs (list (car fs))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7946 (tcf (if buffer-file-name (file-truename buffer-file-name)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7947 file)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7948 (unless files (error "No agenda files"))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7949 (catch 'exit
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7950 (while (setq file (pop files))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7951 (if (equal (file-truename file) tcf)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7952 (when (car files)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7953 (find-file (car files))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7954 (throw 'exit t))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7955 (find-file (car fs)))))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7956
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
7957 (defun org-agenda-file-to-end ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7958 "Move/add the current file to the end of the agenda file list.
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
7959 If the file is not present in the list, it is appended to the list. If it is
68294
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
7960 present, it is moved there."
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
7961 (interactive)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
7962 (org-agenda-file-to-front 'to-end))
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
7963
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
7964 (defun org-agenda-file-to-front (&optional to-end)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7965 "Move/add the current file to the top of the agenda file list.
68294
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
7966 If the file is not present in the list, it is added to the front. If it is
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
7967 present, it is moved there. With optional argument TO-END, add/move to the
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7968 end of the list."
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7969 (interactive "P")
68294
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
7970 (let ((file-alist (mapcar (lambda (x)
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
7971 (cons (file-truename x) x))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7972 (org-agenda-files t)))
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
7973 (ctf (file-truename buffer-file-name))
68294
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
7974 x had)
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
7975 (setq x (assoc ctf file-alist) had x)
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
7976
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
7977 (if (not x) (setq x (cons ctf (abbreviate-file-name buffer-file-name))))
68294
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
7978 (if to-end
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
7979 (setq file-alist (append (delq x file-alist) (list x)))
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
7980 (setq file-alist (cons x (delq x file-alist))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7981 (org-store-new-agenda-file-list (mapcar 'cdr file-alist))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7982 (org-install-agenda-files-menu)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7983 (message "File %s to %s of agenda file list"
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
7984 (if had "moved" "added") (if to-end "end" "front"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7985
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7986 (defun org-remove-file (&optional file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7987 "Remove current file from the list of files in variable `org-agenda-files'.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7988 These are the files which are being checked for agenda entries.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7989 Optional argument FILE means, use this file instead of the current."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7990 (interactive)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
7991 (let* ((file (or file buffer-file-name))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7992 (true-file (file-truename file))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7993 (afile (abbreviate-file-name file))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7994 (files (delq nil (mapcar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7995 (lambda (x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7996 (if (equal true-file
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7997 (file-truename x))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
7998 nil x))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
7999 (org-agenda-files t)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8000 (if (not (= (length files) (length (org-agenda-files t))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8001 (progn
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8002 (org-store-new-agenda-file-list files)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8003 (org-install-agenda-files-menu)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8004 (message "Removed file: %s" afile))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8005 (message "File was not in list: %s" afile))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8006
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8007 (defun org-file-menu-entry (file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8008 (vector file (list 'find-file file) t))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8009
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8010 (defun org-get-all-dates (beg end &optional no-ranges force-today inactive empty)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8011 "Return a list of all relevant day numbers from BEG to END buffer positions.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8012 If NO-RANGES is non-nil, include only the start and end dates of a range,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8013 not every single day in the range. If FORCE-TODAY is non-nil, make
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8014 sure that TODAY is included in the list. If INACTIVE is non-nil, also
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8015 inactive time stamps (those in square brackets) are included.
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8016 When EMPTY is non-nil, also include days without any entries."
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8017 (let ((re (if inactive org-ts-regexp-both org-ts-regexp))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8018 dates dates1 date day day1 day2 ts1 ts2)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8019 (if force-today
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8020 (setq dates (list (time-to-days (current-time)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8021 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8022 (goto-char beg)
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8023 (while (re-search-forward re end t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8024 (setq day (time-to-days (org-time-string-to-time
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8025 (substring (match-string 1) 0 10))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8026 (or (memq day dates) (push day dates)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8027 (unless no-ranges
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8028 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8029 (while (re-search-forward org-tr-regexp end t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8030 (setq ts1 (substring (match-string 1) 0 10)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8031 ts2 (substring (match-string 2) 0 10)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8032 day1 (time-to-days (org-time-string-to-time ts1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8033 day2 (time-to-days (org-time-string-to-time ts2)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8034 (while (< (setq day1 (1+ day1)) day2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8035 (or (memq day1 dates) (push day1 dates)))))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8036 (setq dates (sort dates '<))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8037 (when empty
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8038 (while (setq day (pop dates))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8039 (setq day2 (car dates))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8040 (push day dates1)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8041 (when (and day2 empty)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8042 (if (or (eq empty t)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8043 (and (numberp empty) (<= (- day2 day) empty)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8044 (while (< (setq day (1+ day)) day2)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8045 (push (list day) dates1))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8046 (push (cons :omitted (- day2 day)) dates1))))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8047 (setq dates (nreverse dates1)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8048 dates)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8049
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8050 ;;;###autoload
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8051 (defun org-diary (&rest args)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8052 "Return diary information from org-files.
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8053 This function can be used in a \"sexp\" diary entry in the Emacs calendar.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8054 It accesses org files and extracts information from those files to be
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8055 listed in the diary. The function accepts arguments specifying what
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8056 items should be listed. The following arguments are allowed:
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8057
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8058 :timestamp List the headlines of items containing a date stamp or
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8059 date range matching the selected date. Deadlines will
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8060 also be listed, on the expiration day.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8061
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8062 :deadline List any deadlines past due, or due within
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8063 `org-deadline-warning-days'. The listing occurs only
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8064 in the diary for *today*, not at any other date. If
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8065 an entry is marked DONE, it is no longer listed.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8066
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8067 :scheduled List all items which are scheduled for the given date.
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8068 The diary for *today* also contains items which were
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8069 scheduled earlier and are not yet marked DONE.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8070
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8071 :todo List all TODO items from the org-file. This may be a
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8072 long list - so this is not turned on by default.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8073 Like deadlines, these entries only show up in the
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8074 diary for *today*, not at any other date.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8075
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8076 The call in the diary file should look like this:
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8077
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8078 &%%(org-diary) ~/path/to/some/orgfile.org
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8079
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8080 Use a separate line for each org file to check. Or, if you omit the file name,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8081 all files listed in `org-agenda-files' will be checked automatically:
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8082
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8083 &%%(org-diary)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8084
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8085 If you don't give any arguments (as in the example above), the default
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8086 arguments (:deadline :scheduled :timestamp) are used. So the example above may
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8087 also be written as
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8088
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8089 &%%(org-diary :deadline :timestamp :scheduled)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8090
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8091 The function expects the lisp variables `entry' and `date' to be provided
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8092 by the caller, because this is how the calendar works. Don't use this
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
8093 function from a program - use `org-agenda-get-day-entries' instead."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8094 (org-agenda-maybe-reset-markers)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8095 (org-compile-prefix-format 'agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8096 (org-set-sorting-strategy 'agenda)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8097 (setq args (or args '(:deadline :scheduled :timestamp)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8098 (let* ((files (if (and entry (stringp entry) (string-match "\\S-" entry))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8099 (list entry)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8100 (org-agenda-files t)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8101 file rtn results)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8102 ;; If this is called during org-agenda, don't return any entries to
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8103 ;; the calendar. Org Agenda will list these entries itself.
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
8104 (if org-disable-agenda-to-diary (setq files nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8105 (while (setq file (pop files))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8106 (setq rtn (apply 'org-agenda-get-day-entries file date args))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8107 (setq results (append results rtn)))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
8108 (if results
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
8109 (concat (org-finalize-agenda-entries results) "\n"))))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8110 (defvar org-category-table nil)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8111 (defun org-get-category-table ()
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8112 "Get the table of categories and positions in current buffer."
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8113 (let (tbl)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8114 (save-excursion
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8115 (goto-char (point-min))
67380
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
8116 (while (re-search-forward "\\(^\\|\r\\)#\\+CATEGORY:[ \t]*\\(.*\\)" nil t)
7b2c13a9190d (org-insert-heading): Try to do items before headings.
Carsten Dominik <dominik@science.uva.nl>
parents: 67342
diff changeset
8117 (push (cons (point) (org-trim (match-string 2))) tbl)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8118 tbl))
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8119 (defun org-get-category (&optional pos)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8120 "Get the category applying to position POS."
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8121 (if (not org-category-table)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8122 (cond
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8123 ((null org-category)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8124 (setq org-category
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8125 (if buffer-file-name
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8126 (file-name-sans-extension
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8127 (file-name-nondirectory buffer-file-name))
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8128 "???")))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8129 ((symbolp org-category) (symbol-name org-category))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8130 (t org-category))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8131 (let ((tbl org-category-table)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8132 (pos (or pos (point))))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8133 (while (and tbl (> (caar tbl) pos))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8134 (pop tbl))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8135 (or (cdar tbl) (cdr (nth (1- (length org-category-table))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8136 org-category-table))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8137
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8138 (defun org-agenda-get-day-entries (file date &rest args)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8139 "Does the work for `org-diary' and `org-agenda'.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8140 FILE is the path to a file to be checked for entries. DATE is date like
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8141 the one returned by `calendar-current-date'. ARGS are symbols indicating
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8142 which kind of entries should be extracted. For details about these, see
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8143 the documentation of `org-diary'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8144 (setq args (or args '(:deadline :scheduled :timestamp)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8145 (let* ((org-startup-with-deadline-check nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8146 (org-startup-folded nil)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8147 (org-startup-align-all-tables nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8148 (buffer (if (file-exists-p file)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8149 (org-get-agenda-file-buffer file)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8150 (error "No such file %s" file)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8151 arg results rtn)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8152 (if (not buffer)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8153 ;; If file does not exist, make sure an error message ends up in diary
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8154 (list (format "ORG-AGENDA-ERROR: No such org-file %s" file))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8155 (with-current-buffer buffer
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
8156 (unless (org-mode-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8157 (error "Agenda file %s is not in `org-mode'" file))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8158 (setq org-category-table (org-get-category-table))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8159 (let ((case-fold-search nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8160 (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8161 (save-restriction
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8162 (if org-agenda-restrict
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8163 (narrow-to-region org-agenda-restrict-begin
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8164 org-agenda-restrict-end)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8165 (widen))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8166 ;; The way we repeatedly append to `results' makes it O(n^2) :-(
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8167 (while (setq arg (pop args))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8168 (cond
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8169 ((and (eq arg :todo)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8170 (equal date (calendar-current-date)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8171 (setq rtn (org-agenda-get-todos))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8172 (setq results (append results rtn)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8173 ((eq arg :timestamp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8174 (setq rtn (org-agenda-get-blocks))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8175 (setq results (append results rtn))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8176 (setq rtn (org-agenda-get-timestamps))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8177 (setq results (append results rtn)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8178 ((eq arg :scheduled)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8179 (setq rtn (org-agenda-get-scheduled))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8180 (setq results (append results rtn)))
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8181 ((eq arg :closed)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8182 (setq rtn (org-agenda-get-closed))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8183 (setq results (append results rtn)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8184 ((and (eq arg :deadline)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8185 (equal date (calendar-current-date)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8186 (setq rtn (org-agenda-get-deadlines))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8187 (setq results (append results rtn))))))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8188 results))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8189
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8190 (defun org-entry-is-done-p ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8191 "Is the current entry marked DONE?"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8192 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8193 (and (re-search-backward "[\r\n]\\*" nil t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8194 (looking-at org-nl-done-regexp))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8195
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8196 (defun org-at-date-range-p (&optional inactive-ok)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8197 "Is the cursor inside a date range?"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8198 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8199 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8200 (catch 'exit
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8201 (let ((pos (point)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8202 (skip-chars-backward "^[<\r\n")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8203 (skip-chars-backward "<[")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8204 (and (looking-at (if inactive-ok org-tr-regexp-both org-tr-regexp))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8205 (>= (match-end 0) pos)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8206 (throw 'exit t))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8207 (skip-chars-backward "^<[\r\n")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8208 (skip-chars-backward "<[")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8209 (and (looking-at (if inactive-ok org-tr-regexp-both org-tr-regexp))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8210 (>= (match-end 0) pos)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8211 (throw 'exit t)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8212 nil)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8213
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8214 (defun org-agenda-get-todos ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8215 "Return the TODO information for agenda display."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8216 (let* ((props (list 'face nil
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8217 'done-face 'org-done
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8218 'org-not-done-regexp org-not-done-regexp
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8219 'mouse-face 'highlight
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8220 'keymap org-agenda-keymap
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8221 'help-echo
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8222 (format "mouse-2 or RET jump to org file %s"
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8223 (abbreviate-file-name buffer-file-name))))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
8224 (regexp (concat "[\n\r]\\*+ *\\("
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8225 (if org-select-this-todo-keyword
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8226 (concat "\\<\\(" org-select-this-todo-keyword
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8227 "\\)\\>")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8228 org-not-done-regexp)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8229 "[^\n\r]*\\)"))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8230 (deadline-re (concat ".*\\(\n[^*].*\\)?" org-deadline-time-regexp))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8231 (sched-re (concat ".*\\(\n[^*].*\\)?" org-scheduled-time-regexp))
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
8232 ; FIXME why was this wrong? (sched-re (concat ".*\n?.*?" org-scheduled-time-regexp))
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8233 marker priority category tags
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8234 ee txt)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8235 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8236 (while (re-search-forward regexp nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8237 (catch :skip
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8238 (save-match-data
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8239 (beginning-of-line)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8240 (when (or (and org-agenda-todo-ignore-scheduled
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8241 (looking-at sched-re))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8242 (and org-agenda-todo-ignore-deadlines
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8243 (looking-at deadline-re)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8244 (org-deadline-close (match-string 2))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8245
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8246 ;; FIXME: the following test also happens below, but we need it here
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8247 (or org-agenda-todo-list-sublevels (org-end-of-subtree 'invisible))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8248 (throw :skip nil)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8249 (org-agenda-skip)
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8250 (goto-char (match-beginning 1))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8251 (setq marker (org-agenda-new-marker (1+ (match-beginning 0)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8252 category (org-get-category)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8253 tags (org-get-tags-at (point))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8254 txt (org-format-agenda-item "" (match-string 1) category tags)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8255 priority
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8256 (+ (org-get-priority txt)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8257 (if org-todo-kwd-priority-p
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8258 (- org-todo-kwd-max-priority -2
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8259 (length
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8260 (member (match-string 2) org-todo-keywords)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8261 1)))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8262 (org-add-props txt props
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8263 'org-marker marker 'org-hd-marker marker
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8264 'priority priority 'category category)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8265 (push txt ee)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8266 (if org-agenda-todo-list-sublevels
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8267 (goto-char (match-end 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8268 (org-end-of-subtree 'invisible))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8269 (nreverse ee)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8270
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8271 (defconst org-agenda-no-heading-message
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
8272 "No heading for this item in buffer or region.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8273
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8274 (defun org-agenda-get-timestamps ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8275 "Return the date stamp information for agenda display."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8276 (let* ((props (list 'face nil
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8277 'org-not-done-regexp org-not-done-regexp
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8278 'mouse-face 'highlight
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8279 'keymap org-agenda-keymap
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8280 'help-echo
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8281 (format "mouse-2 or RET jump to org file %s"
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8282 (abbreviate-file-name buffer-file-name))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8283 (regexp (regexp-quote
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8284 (substring
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8285 (format-time-string
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8286 (car org-time-stamp-formats)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8287 (apply 'encode-time ; DATE bound by calendar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8288 (list 0 0 0 (nth 1 date) (car date) (nth 2 date))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8289 0 11)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8290 marker hdmarker deadlinep scheduledp donep tmp priority category
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8291 ee txt timestr tags)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8292 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8293 (while (re-search-forward regexp nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8294 (catch :skip
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8295 (and (save-match-data (org-at-date-range-p)) (throw :skip nil))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8296 (org-agenda-skip)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8297 (setq marker (org-agenda-new-marker (match-beginning 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8298 category (org-get-category (match-beginning 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8299 tmp (buffer-substring (max (point-min)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8300 (- (match-beginning 0)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8301 org-ds-keyword-length))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8302 (match-beginning 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8303 timestr (buffer-substring (match-beginning 0) (point-at-eol))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8304 deadlinep (string-match org-deadline-regexp tmp)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8305 scheduledp (string-match org-scheduled-regexp tmp)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8306 donep (org-entry-is-done-p))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8307 (if (string-match ">" timestr)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8308 ;; substring should only run to end of time stamp
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8309 (setq timestr (substring timestr 0 (match-end 0))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8310 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8311 (if (re-search-backward "\\(^\\|\r\\)\\*+" nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8312 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8313 (goto-char (match-end 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8314 (setq hdmarker (org-agenda-new-marker)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8315 tags (org-get-tags-at))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8316 (looking-at "\\*+[ \t]*\\([^\r\n]+\\)")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8317 (setq txt (org-format-agenda-item
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8318 (format "%s%s"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8319 (if deadlinep "Deadline: " "")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8320 (if scheduledp "Scheduled: " ""))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8321 (match-string 1) category tags timestr)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8322 (setq txt org-agenda-no-heading-message))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8323 (setq priority (org-get-priority txt))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8324 (org-add-props txt props
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8325 'org-marker marker 'org-hd-marker hdmarker)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8326 (if deadlinep
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8327 (org-add-props txt nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8328 'face (if donep 'org-done 'org-warning)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8329 'undone-face 'org-warning 'done-face 'org-done
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8330 'category category 'priority (+ 100 priority))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8331 (if scheduledp
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8332 (org-add-props txt nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8333 'face 'org-scheduled-today
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8334 'undone-face 'org-scheduled-today 'done-face 'org-done
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8335 'category category 'priority (+ 99 priority))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8336 (org-add-props txt nil 'priority priority 'category category)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8337 (push txt ee))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8338 (outline-next-heading)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8339 (nreverse ee)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8340
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8341 (defun org-agenda-get-closed ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
8342 "Return the logged TODO entries for agenda display."
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8343 (let* ((props (list 'mouse-face 'highlight
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8344 'org-not-done-regexp org-not-done-regexp
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8345 'keymap org-agenda-keymap
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8346 'help-echo
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8347 (format "mouse-2 or RET jump to org file %s"
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8348 (abbreviate-file-name buffer-file-name))))
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8349 (regexp (concat
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
8350 "\\<\\(" org-closed-string "\\|" org-clock-string "\\) *\\["
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8351 (regexp-quote
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8352 (substring
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8353 (format-time-string
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8354 (car org-time-stamp-formats)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8355 (apply 'encode-time ; DATE bound by calendar
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8356 (list 0 0 0 (nth 1 date) (car date) (nth 2 date))))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8357 1 11))))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
8358 marker hdmarker priority category tags closedp
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8359 ee txt timestr)
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8360 (goto-char (point-min))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8361 (while (re-search-forward regexp nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8362 (catch :skip
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8363 (org-agenda-skip)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8364 (setq marker (org-agenda-new-marker (match-beginning 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8365 closedp (equal (match-string 1) org-closed-string)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8366 category (org-get-category (match-beginning 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8367 timestr (buffer-substring (match-beginning 0) (point-at-eol))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8368 ;; donep (org-entry-is-done-p)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8369 )
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8370 (if (string-match "\\]" timestr)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8371 ;; substring should only run to end of time stamp
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8372 (setq timestr (substring timestr 0 (match-end 0))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8373 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8374 (if (re-search-backward "\\(^\\|\r\\)\\*+" nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8375 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8376 (goto-char (match-end 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8377 (setq hdmarker (org-agenda-new-marker)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8378 tags (org-get-tags-at))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8379 (looking-at "\\*+[ \t]*\\([^\r\n]+\\)")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8380 (setq txt (org-format-agenda-item
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8381 (if closedp "Closed: " "Clocked: ")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8382 (match-string 1) category tags timestr)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8383 (setq txt org-agenda-no-heading-message))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8384 (setq priority 100000)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8385 (org-add-props txt props
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8386 'org-marker marker 'org-hd-marker hdmarker 'face 'org-done
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8387 'priority priority 'category category
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8388 'undone-face 'org-warning 'done-face 'org-done)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8389 (push txt ee))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8390 (outline-next-heading)))
67534
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8391 (nreverse ee)))
8f1580a14224 *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 67380
diff changeset
8392
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8393 (defun org-agenda-get-deadlines ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8394 "Return the deadline information for agenda display."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8395 (let* ((wdays org-deadline-warning-days)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8396 (props (list 'mouse-face 'highlight
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8397 'org-not-done-regexp org-not-done-regexp
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8398 'keymap org-agenda-keymap
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8399 'help-echo
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8400 (format "mouse-2 or RET jump to org file %s"
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8401 (abbreviate-file-name buffer-file-name))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8402 (regexp org-deadline-time-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8403 (todayp (equal date (calendar-current-date))) ; DATE bound by calendar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8404 (d1 (calendar-absolute-from-gregorian date)) ; DATE bound by calendar
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8405 d2 diff pos pos1 category tags
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8406 ee txt head face)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8407 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8408 (while (re-search-forward regexp nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8409 (catch :skip
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8410 (org-agenda-skip)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8411 (setq pos (1- (match-beginning 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8412 d2 (time-to-days
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8413 (org-time-string-to-time (match-string 1)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8414 diff (- d2 d1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8415 ;; When to show a deadline in the calendar:
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8416 ;; If the expiration is within wdays warning time.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8417 ;; Past-due deadlines are only shown on the current date
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8418 (if (and (< diff wdays) todayp (not (= diff 0)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8419 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8420 (setq category (org-get-category))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8421 (if (re-search-backward "\\(^\\|\r\\)\\*+[ \t]*" nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8422 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8423 (goto-char (match-end 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8424 (setq pos1 (match-end 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8425 (setq tags (org-get-tags-at pos1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8426 (setq head (buffer-substring-no-properties
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8427 (point)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8428 (progn (skip-chars-forward "^\r\n")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8429 (point))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8430 (if (string-match org-looking-at-done-regexp head)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8431 (setq txt nil)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8432 (setq txt (org-format-agenda-item
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8433 (format "In %3d d.: " diff) head category tags))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8434 (setq txt org-agenda-no-heading-message))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8435 (when txt
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8436 (setq face (cond ((<= diff 0) 'org-warning)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8437 ((<= diff 5) 'org-upcoming-deadline)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8438 (t nil)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8439 (org-add-props txt props
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8440 'org-marker (org-agenda-new-marker pos)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8441 'org-hd-marker (org-agenda-new-marker pos1)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8442 'priority (+ (- 10 diff) (org-get-priority txt))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8443 'category category
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8444 'face face 'undone-face face 'done-face 'org-done)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8445 (push txt ee))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8446 ee))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8447
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8448 (defun org-agenda-get-scheduled ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8449 "Return the scheduled information for agenda display."
63225
7660591a3c92 Revision: miles@gnu.org--gnu-2005/emacs--cvs-trunk--0--patch-389
Miles Bader <miles@gnu.org>
parents: 63110
diff changeset
8450 (let* ((props (list 'face 'org-scheduled-previously
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8451 'org-not-done-regexp org-not-done-regexp
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8452 'undone-face 'org-scheduled-previously
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8453 'done-face 'org-done
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8454 'mouse-face 'highlight
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8455 'keymap org-agenda-keymap
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8456 'help-echo
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8457 (format "mouse-2 or RET jump to org file %s"
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8458 (abbreviate-file-name buffer-file-name))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8459 (regexp org-scheduled-time-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8460 (todayp (equal date (calendar-current-date))) ; DATE bound by calendar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8461 (d1 (calendar-absolute-from-gregorian date)) ; DATE bound by calendar
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8462 d2 diff pos pos1 category tags
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8463 ee txt head)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8464 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8465 (while (re-search-forward regexp nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8466 (catch :skip
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8467 (org-agenda-skip)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8468 (setq pos (1- (match-beginning 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8469 d2 (time-to-days
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8470 (org-time-string-to-time (match-string 1)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8471 diff (- d2 d1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8472 ;; When to show a scheduled item in the calendar:
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8473 ;; If it is on or past the date.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8474 (if (and (< diff 0) todayp)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8475 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8476 (setq category (org-get-category))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8477 (if (re-search-backward "\\(^\\|\r\\)\\*+[ \t]*" nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8478 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8479 (goto-char (match-end 0))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8480 (setq pos1 (match-end 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8481 (setq tags (org-get-tags-at))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8482 (setq head (buffer-substring-no-properties
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8483 (point)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8484 (progn (skip-chars-forward "^\r\n") (point))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8485 (if (string-match org-looking-at-done-regexp head)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8486 (setq txt nil)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8487 (setq txt (org-format-agenda-item
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8488 (format "Sched.%2dx: " (- 1 diff)) head
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8489 category tags))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8490 (setq txt org-agenda-no-heading-message))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8491 (when txt
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8492 (org-add-props txt props
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8493 'org-marker (org-agenda-new-marker pos)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8494 'org-hd-marker (org-agenda-new-marker pos1)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8495 'priority (+ (- 5 diff) (org-get-priority txt))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8496 'category category)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8497 (push txt ee))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8498 ee))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8499
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8500 (defun org-agenda-get-blocks ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8501 "Return the date-range information for agenda display."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8502 (let* ((props (list 'face nil
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8503 'org-not-done-regexp org-not-done-regexp
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8504 'mouse-face 'highlight
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8505 'keymap org-agenda-keymap
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8506 'help-echo
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8507 (format "mouse-2 or RET jump to org file %s"
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8508 (abbreviate-file-name buffer-file-name))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8509 (regexp org-tr-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8510 (d0 (calendar-absolute-from-gregorian date))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
8511 marker hdmarker ee txt d1 d2 s1 s2 timestr category tags pos)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8512 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8513 (while (re-search-forward regexp nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8514 (catch :skip
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8515 (org-agenda-skip)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
8516 (setq pos (point))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8517 (setq timestr (match-string 0)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8518 s1 (match-string 1)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8519 s2 (match-string 2)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8520 d1 (time-to-days (org-time-string-to-time s1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8521 d2 (time-to-days (org-time-string-to-time s2)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8522 (if (and (> (- d0 d1) -1) (> (- d2 d0) -1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8523 ;; Only allow days between the limits, because the normal
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8524 ;; date stamps will catch the limits.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8525 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8526 (setq marker (org-agenda-new-marker (point)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8527 (setq category (org-get-category))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8528 (if (re-search-backward "\\(^\\|\r\\)\\*+" nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8529 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8530 (setq hdmarker (org-agenda-new-marker (match-end 1)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8531 (goto-char (match-end 1))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8532 (setq tags (org-get-tags-at))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8533 (looking-at "\\*+[ \t]*\\([^\r\n]+\\)")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8534 (setq txt (org-format-agenda-item
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8535 (format (if (= d1 d2) "" "(%d/%d): ")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8536 (1+ (- d0 d1)) (1+ (- d2 d1)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8537 (match-string 1) category tags
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8538 (if (= d0 d1) timestr))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8539 (setq txt org-agenda-no-heading-message))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8540 (org-add-props txt props
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8541 'org-marker marker 'org-hd-marker hdmarker
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8542 'priority (org-get-priority txt) 'category category)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
8543 (push txt ee)))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
8544 (goto-char pos)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8545 ;; Sort the entries by expiration date.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8546 (nreverse ee)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8547
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8548 (defconst org-plain-time-of-day-regexp
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8549 (concat
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8550 "\\(\\<[012]?[0-9]"
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8551 "\\(\\(:\\([0-5][0-9]\\([AaPp][Mm]\\)?\\)\\)\\|\\([AaPp][Mm]\\)\\)\\>\\)"
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8552 "\\(--?"
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8553 "\\(\\<[012]?[0-9]"
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8554 "\\(\\(:\\([0-5][0-9]\\([AaPp][Mm]\\)?\\)\\)\\|\\([AaPp][Mm]\\)\\)\\>\\)"
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8555 "\\)?")
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8556 "Regular expression to match a plain time or time range.
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8557 Examples: 11:45 or 8am-13:15 or 2:45-2:45pm. After a match, the following
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8558 groups carry important information:
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8559 0 the full match
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8560 1 the first time, range or not
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8561 8 the second time, if it is a range.")
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8562
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8563 (defconst org-stamp-time-of-day-regexp
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8564 (concat
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
8565 "<\\([0-9]\\{4\\}-[0-9]\\{2\\}-[0-9]\\{2\\} +\\sw+ +\\)"
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8566 "\\([012][0-9]:[0-5][0-9]\\)>"
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8567 "\\(--?"
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8568 "<\\1\\([012][0-9]:[0-5][0-9]\\)>\\)?")
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8569 "Regular expression to match a timestamp time or time range.
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8570 After a match, the following groups carry important information:
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8571 0 the full match
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8572 1 date plus weekday, for backreferencing to make sure both times on same day
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8573 2 the first time, range or not
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8574 4 the second time, if it is a range.")
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8575
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8576 (defvar org-prefix-has-time nil
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8577 "A flag, set by `org-compile-prefix-format'.
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8578 The flag is set if the currently compiled format contains a `%t'.")
68294
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
8579 (defvar org-prefix-has-tag nil
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
8580 "A flag, set by `org-compile-prefix-format'.
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
8581 The flag is set if the currently compiled format contains a `%T'.")
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
8582
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8583 (defun org-format-agenda-item (extra txt &optional category tags dotime
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8584 noprefix)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8585 "Format TXT to be inserted into the agenda buffer.
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8586 In particular, it adds the prefix and corresponding text properties. EXTRA
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8587 must be a string and replaces the `%s' specifier in the prefix format.
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
8588 CATEGORY (string, symbol or nil) may be used to overrule the default
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
8589 category taken from local variable or file name. It will replace the `%c'
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8590 specifier in the format. DOTIME, when non-nil, indicates that a
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8591 time-of-day should be extracted from TXT for sorting of this entry, and for
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8592 the `%t' specifier in the format. When DOTIME is a string, this string is
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8593 searched for a time before TXT is. NOPREFIX is a flag and indicates that
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8594 only the correctly processes TXT should be returned - this is used by
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8595 `org-agenda-change-all-lines'. TAGS can be the tags of the headline."
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8596 (save-match-data
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8597 ;; Diary entries sometimes have extra whitespace at the beginning
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8598 (if (string-match "^ +" txt) (setq txt (replace-match "" nil nil txt)))
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8599 (let* ((category (or category
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8600 org-category
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8601 (if buffer-file-name
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8602 (file-name-sans-extension
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
8603 (file-name-nondirectory buffer-file-name))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8604 "")))
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
8605 (tag (if tags (nth (1- (length tags)) tags) ""))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8606 time ;; needed for the eval of the prefix format
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8607 (ts (if dotime (concat (if (stringp dotime) dotime "") txt)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8608 (time-of-day (and dotime (org-get-time-of-day ts)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8609 stamp plain s0 s1 s2 rtn)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8610 (when (and dotime time-of-day org-prefix-has-time)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8611 ;; Extract starting and ending time and move them to prefix
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8612 (when (or (setq stamp (string-match org-stamp-time-of-day-regexp ts))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8613 (setq plain (string-match org-plain-time-of-day-regexp ts)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8614 (setq s0 (match-string 0 ts)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8615 s1 (match-string (if plain 1 2) ts)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8616 s2 (match-string (if plain 8 4) ts))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8617
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8618 ;; If the times are in TXT (not in DOTIMES), and the prefix will list
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8619 ;; them, we might want to remove them there to avoid duplication.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8620 ;; The user can turn this off with a variable.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8621 (if (and org-agenda-remove-times-when-in-prefix (or stamp plain)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8622 (string-match (concat (regexp-quote s0) " *") txt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8623 (if (eq org-agenda-remove-times-when-in-prefix 'beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8624 (= (match-beginning 0) 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8625 t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8626 (setq txt (replace-match "" nil nil txt))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8627 ;; Normalize the time(s) to 24 hour
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8628 (if s1 (setq s1 (org-get-time-of-day s1 'string t)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8629 (if s2 (setq s2 (org-get-time-of-day s2 'string t))))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
8630
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8631 (when (string-match "\\([ \t]+\\)\\(:[a-zA-Z_@0-9:]+:\\)[ \t]*$" txt)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8632 ;; Tags are in the string
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8633 (if (or (eq org-agenda-remove-tags-when-in-prefix t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8634 (and org-agenda-remove-tags-when-in-prefix
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8635 org-prefix-has-tag))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8636 (setq txt (replace-match "" t t txt))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
8637 (setq txt (replace-match
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8638 (concat (make-string (max (- 50 (length txt)) 1) ?\ )
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8639 (match-string 2 txt))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8640 t t txt))))
68294
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
8641
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8642 ;; Create the final string
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8643 (if noprefix
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8644 (setq rtn txt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8645 ;; Prepare the variables needed in the eval of the compiled format
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8646 (setq time (cond (s2 (concat s1 "-" s2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8647 (s1 (concat s1 "......"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8648 (t ""))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8649 extra (or extra "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8650 category (if (symbolp category) (symbol-name category) category))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8651 ;; Evaluate the compiled format
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8652 (setq rtn (concat (eval org-prefix-format-compiled) txt)))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
8653
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8654 ;; And finally add the text properties
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8655 (org-add-props rtn nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8656 'category (downcase category) 'tags tags
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8657 'prefix-length (- (length rtn) (length txt))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8658 'time-of-day time-of-day
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8659 'dotime dotime))))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8660
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8661 (defvar org-agenda-sorting-strategy)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8662 (defvar org-agenda-sorting-strategy-selected nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8663
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8664 (defun org-agenda-add-time-grid-maybe (list ndays todayp)
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8665 (catch 'exit
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8666 (cond ((not org-agenda-use-time-grid) (throw 'exit list))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8667 ((and todayp (member 'today (car org-agenda-time-grid))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8668 ((and (= ndays 1) (member 'daily (car org-agenda-time-grid))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8669 ((member 'weekly (car org-agenda-time-grid)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8670 (t (throw 'exit list)))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8671 (let* ((have (delq nil (mapcar
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8672 (lambda (x) (get-text-property 1 'time-of-day x))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8673 list)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8674 (string (nth 1 org-agenda-time-grid))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8675 (gridtimes (nth 2 org-agenda-time-grid))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8676 (req (car org-agenda-time-grid))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8677 (remove (member 'remove-match req))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8678 new time)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8679 (if (and (member 'require-timed req) (not have))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8680 ;; don't show empty grid
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8681 (throw 'exit list))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8682 (while (setq time (pop gridtimes))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8683 (unless (and remove (member time have))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8684 (setq time (int-to-string time))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8685 (push (org-format-agenda-item
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
8686 nil string "" nil
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8687 (concat (substring time 0 -2) ":" (substring time -2)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8688 new)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8689 (put-text-property
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8690 1 (length (car new)) 'face 'org-time-grid (car new))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8691 (if (member 'time-up org-agenda-sorting-strategy-selected)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8692 (append new list)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8693 (append list new)))))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8694
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8695 (defun org-compile-prefix-format (key)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8696 "Compile the prefix format into a Lisp form that can be evaluated.
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8697 The resulting form is returned and stored in the variable
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8698 `org-prefix-format-compiled'."
68294
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
8699 (setq org-prefix-has-time nil org-prefix-has-tag nil)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8700 (let ((s (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8701 ((stringp org-agenda-prefix-format)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8702 org-agenda-prefix-format)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8703 ((assq key org-agenda-prefix-format)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8704 (cdr (assq key org-agenda-prefix-format)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8705 (t " %-12:c%?-12t% s")))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8706 (start 0)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8707 varform vars var e c f opt)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8708 (while (string-match "%\\(\\?\\)?\\([-+]?[0-9.]*\\)\\([ .;,:!?=|/<>]?\\)\\([cts]\\)"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8709 s start)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8710 (setq var (cdr (assoc (match-string 4 s)
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8711 '(("c" . category) ("t" . time) ("s" . extra)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8712 ("T" . tag))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8713 c (or (match-string 3 s) "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8714 opt (match-beginning 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8715 start (1+ (match-beginning 0)))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8716 (if (equal var 'time) (setq org-prefix-has-time t))
68294
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
8717 (if (equal var 'tag) (setq org-prefix-has-tag t))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8718 (setq f (concat "%" (match-string 2 s) "s"))
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8719 (if opt
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8720 (setq varform
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8721 `(if (equal "" ,var)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8722 ""
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8723 (format ,f (if (equal "" ,var) "" (concat ,var ,c)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8724 (setq varform `(format ,f (if (equal ,var "") "" (concat ,var ,c)))))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8725 (setq s (replace-match "%s" t nil s))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8726 (push varform vars))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8727 (setq vars (nreverse vars))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8728 (setq org-prefix-format-compiled `(format ,s ,@vars))))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8729
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8730 (defun org-set-sorting-strategy (key)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8731 (if (symbolp (car org-agenda-sorting-strategy))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8732 ;; the old format
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8733 (setq org-agenda-sorting-strategy-selected org-agenda-sorting-strategy)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8734 (setq org-agenda-sorting-strategy-selected
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8735 (or (cdr (assq key org-agenda-sorting-strategy))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8736 (cdr (assq 'agenda org-agenda-sorting-strategy))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8737 '(time-up category-keep priority-down)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8738
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8739 (defun org-get-time-of-day (s &optional string mod24)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8740 "Check string S for a time of day.
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8741 If found, return it as a military time number between 0 and 2400.
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8742 If not found, return nil.
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8743 The optional STRING argument forces conversion into a 5 character wide string
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8744 HH:MM."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8745 (save-match-data
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
8746 (when
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8747 (or
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8748 (string-match
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8749 "\\<\\([012]?[0-9]\\)\\(:\\([0-5][0-9]\\)\\)\\([AaPp][Mm]\\)?\\> *" s)
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8750 (string-match
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8751 "\\<\\([012]?[0-9]\\)\\(:\\([0-5][0-9]\\)\\)?\\([AaPp][Mm]\\)\\> *" s))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8752 (let* ((h (string-to-number (match-string 1 s)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8753 (m (if (match-end 3) (string-to-number (match-string 3 s)) 0))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8754 (ampm (if (match-end 4) (downcase (match-string 4 s))))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8755 (am-p (equal ampm "am"))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8756 (h1 (cond ((not ampm) h)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8757 ((= h 12) (if am-p 0 12))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8758 (t (+ h (if am-p 0 12)))))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8759 (h2 (if (and string mod24 (not (and (= m 0) (= h1 24))))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8760 (mod h1 24) h1))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8761 (t0 (+ (* 100 h2) m))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8762 (t1 (concat (if (>= h1 24) "+" " ")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8763 (if (< t0 100) "0" "")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8764 (if (< t0 10) "0" "")
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8765 (int-to-string t0))))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
8766 (if string (concat (substring t1 -4 -2) ":" (substring t1 -2)) t0)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8767
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8768 (defun org-finalize-agenda-entries (list &optional nosort)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8769 "Sort and concatenate the agenda items."
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8770 (setq list (mapcar 'org-agenda-highlight-todo list))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8771 (if nosort
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8772 list
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8773 (mapconcat 'identity (sort list 'org-entries-lessp) "\n")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8774
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8775 (defun org-agenda-highlight-todo (x)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8776 (let (re pl)
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8777 (if (eq x 'line)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8778 (save-excursion
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8779 (beginning-of-line 1)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8780 (setq re (get-text-property (point) 'org-not-done-regexp))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8781 (goto-char (+ (point) (or (get-text-property (point) 'prefix-length) 0)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8782 (and (looking-at (concat "[ \t]*\\.*" re))
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8783 (add-text-properties (match-beginning 0) (match-end 0)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8784 '(face org-todo))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8785 (setq re (concat (get-text-property 0 'org-not-done-regexp x))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
8786 pl (get-text-property 0 'prefix-length x))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8787 (and re (equal (string-match (concat "\\(\\.*\\)" re) x (or pl 0)) pl)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8788 (add-text-properties (or (match-end 1) (match-end 0)) (match-end 0)
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8789 '(face org-todo) x))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8790 x)))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8791
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8792 (defsubst org-cmp-priority (a b)
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
8793 "Compare the priorities of string A and B."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8794 (let ((pa (or (get-text-property 1 'priority a) 0))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8795 (pb (or (get-text-property 1 'priority b) 0)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8796 (cond ((> pa pb) +1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8797 ((< pa pb) -1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8798 (t nil))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8799
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8800 (defsubst org-cmp-category (a b)
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
8801 "Compare the string values of categories of strings A and B."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8802 (let ((ca (or (get-text-property 1 'category a) ""))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8803 (cb (or (get-text-property 1 'category b) "")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8804 (cond ((string-lessp ca cb) -1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8805 ((string-lessp cb ca) +1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8806 (t nil))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8807
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8808 (defsubst org-cmp-tag (a b)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8809 "Compare the string values of categories of strings A and B."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8810 (let ((ta (car (last (get-text-property 1 'tags a))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8811 (tb (car (last (get-text-property 1 'tags b)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8812 (cond ((not ta) +1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8813 ((not tb) -1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8814 ((string-lessp ta tb) -1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8815 ((string-lessp tb ta) +1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8816 (t nil))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8817
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8818 (defsubst org-cmp-time (a b)
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
8819 "Compare the time-of-day values of strings A and B."
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
8820 (let* ((def (if org-sort-agenda-notime-is-late 9901 -1))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8821 (ta (or (get-text-property 1 'time-of-day a) def))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8822 (tb (or (get-text-property 1 'time-of-day b) def)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8823 (cond ((< ta tb) -1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8824 ((< tb ta) +1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8825 (t nil))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8826
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8827 (defun org-entries-lessp (a b)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8828 "Predicate for sorting agenda entries."
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
8829 ;; The following variables will be used when the form is evaluated.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8830 (let* ((time-up (org-cmp-time a b))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8831 (time-down (if time-up (- time-up) nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8832 (priority-up (org-cmp-priority a b))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8833 (priority-down (if priority-up (- priority-up) nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8834 (category-up (org-cmp-category a b))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8835 (category-down (if category-up (- category-up) nil))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8836 (category-keep (if category-up +1 nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8837 (tag-up (org-cmp-tag a b))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8838 (tag-down (if tag-up (- tag-up) nil)))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
8839 (cdr (assoc
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8840 (eval (cons 'or org-agenda-sorting-strategy-selected))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8841 '((-1 . t) (1 . nil) (nil . nil))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8842
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8843 (defun org-agenda-show-priority ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8844 "Show the priority of the current item.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8845 This priority is composed of the main priority given with the [#A] cookies,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8846 and by additional input from the age of a schedules or deadline entry."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8847 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8848 (let* ((pri (get-text-property (point-at-bol) 'priority)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8849 (message "Priority is %d" (if pri pri -1000))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8850
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8851 (defun org-agenda-show-tags ()
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8852 "Show the tags applicable to the current item."
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8853 (interactive)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8854 (let* ((tags (get-text-property (point-at-bol) 'tags)))
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8855 (if tags
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
8856 (message "Tags are :%s:"
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
8857 (org-no-properties (mapconcat 'identity tags ":")))
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8858 (message "No tags associated with this line"))))
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
8859
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8860 (defun org-agenda-goto (&optional highlight)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8861 "Go to the Org-mode file which contains the item at point."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8862 (interactive)
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
8863 (let* ((marker (or (get-text-property (point) 'org-marker)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8864 (org-agenda-error)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8865 (buffer (marker-buffer marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8866 (pos (marker-position marker)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8867 (switch-to-buffer-other-window buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8868 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8869 (goto-char pos)
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
8870 (when (org-mode-p)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8871 (org-show-context 'agenda)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
8872 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8873 (and (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8874 (org-flag-heading nil)))) ; show the next heading
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8875 (and highlight (org-highlight (point-at-bol) (point-at-eol)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8876
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8877 (defun org-agenda-kill ()
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8878 "Kill the entry or subtree belonging to the current agenda entry."
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8879 (interactive)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8880 (let* ((marker (or (get-text-property (point) 'org-marker)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8881 (org-agenda-error)))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8882 (hdmarker (get-text-property (point) 'org-hd-marker))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8883 (buffer (marker-buffer marker))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8884 (pos (marker-position marker))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8885 dbeg dend txt n conf)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8886 (with-current-buffer buffer
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8887 (save-excursion
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8888 (goto-char pos)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8889 (if (org-mode-p)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8890 (setq dbeg (progn (org-back-to-heading t) (point))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8891 dend (org-end-of-subtree t))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8892 (setq dbeg (point-at-bol)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8893 dend (min (point-max) (1+ (point-at-eol)))))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8894 (setq txt (buffer-substring dbeg dend))))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8895 (while (string-match "^[ \t]*\n" txt) (setq txt (replace-match "" t t txt)))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8896 (setq n (length (split-string txt "\n"))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8897 conf (or (eq t org-agenda-confirm-kill)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8898 (and (numberp org-agenda-confirm-kill)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8899 (> n org-agenda-confirm-kill))))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8900 (and conf
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8901 (not (y-or-n-p
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8902 (format "Delete entry with %d lines in buffer \"%s\"? "
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8903 n (buffer-name buffer))))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8904 (error "Abort"))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8905 ;; FIXME: if we kill an entire subtree, should we not find all
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8906 ;; lines coming from the subtree?
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8907 (save-excursion (org-agenda-change-all-lines "" hdmarker))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8908 (with-current-buffer buffer (delete-region dbeg dend))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8909 (message "Agenda item and source killed")))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
8910
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8911 (defun org-agenda-switch-to (&optional delete-other-windows)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8912 "Go to the Org-mode file which contains the item at point."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8913 (interactive)
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
8914 (let* ((marker (or (get-text-property (point) 'org-marker)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8915 (org-agenda-error)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8916 (buffer (marker-buffer marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8917 (pos (marker-position marker)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8918 (switch-to-buffer buffer)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8919 (and delete-other-windows (delete-other-windows))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8920 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8921 (goto-char pos)
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
8922 (when (org-mode-p)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8923 (org-show-context 'agenda)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
8924 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8925 (and (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8926 (org-flag-heading nil)))))) ; show the next heading
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8927
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8928 (defun org-agenda-goto-mouse (ev)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8929 "Go to the Org-mode file which contains the item at the mouse click."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8930 (interactive "e")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8931 (mouse-set-point ev)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8932 (org-agenda-goto))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8933
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8934 (defun org-agenda-show ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8935 "Display the Org-mode file which contains the item at point."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8936 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8937 (let ((win (selected-window)))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8938 (org-agenda-goto t)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8939 (select-window win)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8940
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8941 (defun org-agenda-recenter (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8942 "Display the Org-mode file which contains the item at point and recenter."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8943 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8944 (let ((win (selected-window)))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8945 (org-agenda-goto t)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8946 (recenter arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8947 (select-window win)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8948
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8949 (defun org-agenda-show-mouse (ev)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8950 "Display the Org-mode file which contains the item at the mouse click."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8951 (interactive "e")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8952 (mouse-set-point ev)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8953 (org-agenda-show))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8954
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
8955 (defun org-agenda-check-no-diary ()
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
8956 "Check if the entry is a diary link and abort if yes."
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
8957 (if (get-text-property (point) 'org-agenda-diary-link)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
8958 (org-agenda-error)))
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
8959
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8960 (defun org-agenda-error ()
63431
fd4b70bc23a4 (org-promote, org-evaluate-time-range, org-agenda-next-date-line,
Juanma Barranquero <lekktu@gmail.com>
parents: 63367
diff changeset
8961 (error "Command not allowed in this line"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8962
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8963 (defvar org-last-heading-marker (make-marker)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8964 "Marker pointing to the headline that last changed its TODO state
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8965 by a remote command from the agenda.")
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8966
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8967 (defun org-agenda-todo (&optional arg)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8968 "Cycle TODO state of line at point, also in Org-mode file.
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8969 This changes the line at point, all other lines in the agenda referring to
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8970 the same tree node, and the headline of the tree node in the Org-mode file."
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8971 (interactive "P")
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
8972 (org-agenda-check-no-diary)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8973 (let* ((col (current-column))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8974 (marker (or (get-text-property (point) 'org-marker)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8975 (org-agenda-error)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8976 (buffer (marker-buffer marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8977 (pos (marker-position marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8978 (hdmarker (get-text-property (point) 'org-hd-marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8979 (buffer-read-only nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8980 newhead)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
8981 (with-current-buffer buffer
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8982 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8983 (goto-char pos)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
8984 (org-show-context 'agenda)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8985 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8986 (and (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8987 (org-flag-heading nil))) ; show the next heading
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
8988 (org-todo arg)
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
8989 (and (bolp) (forward-char 1))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8990 (setq newhead (org-get-heading))
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8991 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8992 (org-back-to-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
8993 (move-marker org-last-heading-marker (point))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8994 (beginning-of-line 1)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8995 (save-excursion
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8996 (org-agenda-change-all-lines newhead hdmarker 'fixface))
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8997 (move-to-column col)))
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8998
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
8999 (defun org-agenda-change-all-lines (newhead hdmarker &optional fixface)
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
9000 "Change all lines in the agenda buffer which match HDMARKER.
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
9001 The new content of the line will be NEWHEAD (as modified by
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
9002 `org-format-agenda-item'). HDMARKER is checked with
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
9003 `equal' against all `org-hd-marker' text properties in the file.
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
9004 If FIXFACE is non-nil, the face of each item is modified acording to
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
9005 the new TODO state."
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9006 (let* ((buffer-read-only nil)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9007 props m pl undone-face done-face finish new dotime cat tags)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9008 (save-excursion
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9009 (goto-char (point-max))
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9010 (beginning-of-line 1)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
9011 (while (not finish)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9012 (setq finish (bobp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9013 (when (and (setq m (get-text-property (point) 'org-hd-marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9014 (equal m hdmarker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9015 (setq props (text-properties-at (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9016 dotime (get-text-property (point) 'dotime)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
9017 cat (get-text-property (point) 'category)
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
9018 tags (get-text-property (point) 'tags)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
9019 new (org-format-agenda-item "x" newhead cat tags dotime 'noprefix)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9020 pl (get-text-property (point) 'prefix-length)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9021 undone-face (get-text-property (point) 'undone-face)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9022 done-face (get-text-property (point) 'done-face))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9023 (move-to-column pl)
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9024 (cond
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9025 ((equal new "")
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9026 (beginning-of-line 1)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9027 (and (looking-at ".*\n?") (replace-match "")))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9028 ((looking-at ".*")
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9029 (replace-match new t t)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9030 (beginning-of-line 1)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9031 (add-text-properties (point-at-bol) (point-at-eol) props)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9032 (when fixface
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9033 (add-text-properties
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9034 (point-at-bol) (point-at-eol)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9035 (list 'face
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9036 (if org-last-todo-state-is-todo
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9037 undone-face done-face))))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9038 (org-agenda-highlight-todo 'line)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9039 (beginning-of-line 1))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9040 (t (error "Line update did not work"))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9041 (beginning-of-line 0)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9042 (org-finalize-agenda)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9043
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9044 (defun org-agenda-align-tags (&optional line)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9045 "Align all tags in agenda items to `org-agenda-align-tags-to-column'."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9046 (let ((buffer-read-only))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9047 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9048 (goto-char (if line (point-at-bol) (point-min)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9049 (while (re-search-forward "\\([ \t]+\\):[a-zA-Z0-9_@:]+:[ \t]*$"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9050 (if line (point-at-eol) nil) t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9051 (delete-region (match-beginning 1) (match-end 1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9052 (goto-char (match-beginning 1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9053 (insert (org-add-props
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9054 (make-string (max 1 (- org-agenda-align-tags-to-column
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9055 (current-column))) ?\ )
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9056 (text-properties-at (point))))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9057
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9058 (defun org-agenda-priority-up ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9059 "Increase the priority of line at point, also in Org-mode file."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9060 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9061 (org-agenda-priority 'up))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9062
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9063 (defun org-agenda-priority-down ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9064 "Decrease the priority of line at point, also in Org-mode file."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9065 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9066 (org-agenda-priority 'down))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9067
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9068 (defun org-agenda-priority (&optional force-direction)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9069 "Set the priority of line at point, also in Org-mode file.
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9070 This changes the line at point, all other lines in the agenda referring to
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9071 the same tree node, and the headline of the tree node in the Org-mode file."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9072 (interactive)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9073 (org-agenda-check-no-diary)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
9074 (let* ((marker (or (get-text-property (point) 'org-marker)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9075 (org-agenda-error)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9076 (buffer (marker-buffer marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9077 (pos (marker-position marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9078 (hdmarker (get-text-property (point) 'org-hd-marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9079 (buffer-read-only nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9080 newhead)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
9081 (with-current-buffer buffer
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9082 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9083 (goto-char pos)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9084 (org-show-context 'agenda)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9085 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9086 (and (outline-next-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9087 (org-flag-heading nil))) ; show the next heading
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9088 (funcall 'org-priority force-direction)
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
9089 (end-of-line 1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9090 (setq newhead (org-get-heading)))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9091 (org-agenda-change-all-lines newhead hdmarker)
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9092 (beginning-of-line 1)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9093
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9094 (defun org-get-tags-at (&optional pos)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9095 "Get a list of all headline tags applicable at POS.
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9096 POS defaults to point. If tags are inherited, the list contains
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9097 the targets in the same sequence as the headlines appear, i.e.
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9098 the tags of the current headline come last."
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9099 (interactive)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9100 (let (tags)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9101 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9102 (goto-char (or pos (point)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9103 (save-match-data
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9104 (org-back-to-heading t)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9105 (condition-case nil
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9106 (while t
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9107 (if (looking-at "[^\r\n]+?:\\([a-zA-Z_@0-9:]+\\):[ \t]*\\([\n\r]\\|\\'\\)")
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9108 (setq tags (append (org-split-string
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9109 (org-match-string-no-properties 1) ":")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9110 tags)))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9111 (or org-use-tag-inheritance (error ""))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9112 (org-up-heading-all 1))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9113 (error nil))))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9114 tags))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9115
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9116 ;; FIXME: should fix the tags property of the agenda line.
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9117 (defun org-agenda-set-tags ()
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9118 "Set tags for the current headline."
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9119 (interactive)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9120 (org-agenda-check-no-diary)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9121 (org-agenda-show) ;;; FIXME This is a stupid hack and should not be needed
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9122 (let* ((hdmarker (or (get-text-property (point) 'org-hd-marker)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9123 (org-agenda-error)))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9124 (buffer (marker-buffer hdmarker))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9125 (pos (marker-position hdmarker))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9126 (buffer-read-only nil)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9127 newhead)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9128 (with-current-buffer buffer
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9129 (widen)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9130 (goto-char pos)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9131 (org-show-context 'agenda)
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9132 (save-excursion
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9133 (and (outline-next-heading)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9134 (org-flag-heading nil))) ; show the next heading
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9135 (call-interactively 'org-set-tags)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9136 (end-of-line 1)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9137 (setq newhead (org-get-heading)))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9138 (org-agenda-change-all-lines newhead hdmarker)
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9139 (beginning-of-line 1)))
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9140
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9141 (defun org-agenda-date-later (arg &optional what)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9142 "Change the date of this item to one day later."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9143 (interactive "p")
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9144 (org-agenda-check-type t 'agenda 'timeline)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9145 (org-agenda-check-no-diary)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9146 (let* ((marker (or (get-text-property (point) 'org-marker)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9147 (org-agenda-error)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9148 (buffer (marker-buffer marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9149 (pos (marker-position marker)))
62076
4f2150e05f24 (org-get-entries-from-diary): Remove unused vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 61924
diff changeset
9150 (with-current-buffer buffer
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9151 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9152 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9153 (if (not (org-at-timestamp-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9154 (error "Cannot find time stamp"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9155 (org-timestamp-change arg (or what 'day))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9156 (message "Time stamp changed to %s" org-last-changed-timestamp))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9157
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9158 (defun org-agenda-date-earlier (arg &optional what)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9159 "Change the date of this item to one day earlier."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9160 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9161 (org-agenda-date-later (- arg) what))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9162
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9163 (defun org-agenda-date-prompt (arg)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
9164 "Change the date of this item. Date is prompted for, with default today.
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
9165 The prefix ARG is passed to the `org-time-stamp' command and can therefore
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
9166 be used to request time specification in the time stamp."
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
9167 (interactive "P")
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9168 (org-agenda-check-type t 'agenda 'timeline)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9169 (org-agenda-check-no-diary)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9170 (let* ((marker (or (get-text-property (point) 'org-marker)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9171 (org-agenda-error)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9172 (buffer (marker-buffer marker))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9173 (pos (marker-position marker)))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
9174 (with-current-buffer buffer
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9175 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9176 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9177 (if (not (org-at-timestamp-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9178 (error "Cannot find time stamp"))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
9179 (org-time-stamp arg)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9180 (message "Time stamp changed to %s" org-last-changed-timestamp))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9181
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9182 (defun org-agenda-schedule (arg)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9183 "Schedule the item at point."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9184 (interactive "P")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9185 (org-agenda-check-type t 'agenda 'timeline 'todo 'tags)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9186 (org-agenda-check-no-diary)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9187 (let* ((marker (or (get-text-property (point) 'org-marker)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9188 (org-agenda-error)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9189 (buffer (marker-buffer marker))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9190 (pos (marker-position marker))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9191 (org-insert-labeled-timestamps-at-point nil)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9192 ts)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9193 (with-current-buffer buffer
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9194 (widen)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9195 (goto-char pos)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9196 (setq ts (org-schedule))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9197 (message "Item scheduled for %s" ts))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9198
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9199 (defun org-agenda-deadline (arg)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9200 "Schedule the item at point."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9201 (interactive "P")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9202 (org-agenda-check-type t 'agenda 'timeline 'todo 'tags)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9203 (org-agenda-check-no-diary)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9204 (let* ((marker (or (get-text-property (point) 'org-marker)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9205 (org-agenda-error)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9206 (buffer (marker-buffer marker))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9207 (pos (marker-position marker))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9208 (org-insert-labeled-timestamps-at-point nil)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9209 ts)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9210 (with-current-buffer buffer
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9211 (widen)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9212 (goto-char pos)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9213 (setq ts (org-deadline))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9214 (message "Deadline for this item set to %s" ts))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9215
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9216 (defun org-get-heading ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9217 "Return the heading of the current entry, without the stars."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9218 (save-excursion
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9219 (and (memq (char-before) '(?\n ?\r)) (skip-chars-forward "^\n\r"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9220 (if (and (re-search-backward "[\r\n]\\*" nil t)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9221 (looking-at "[\r\n]\\*+[ \t]+\\([^\r\n]*\\)"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9222 (match-string 1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9223 "")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9224
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9225 (defun org-agenda-clock-in (&optional arg)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9226 "Start the clock on the currently selected item."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9227 (interactive "P")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9228 (org-agenda-check-no-diary)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9229 (let* ((marker (or (get-text-property (point) 'org-marker)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9230 (org-agenda-error)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9231 (pos (marker-position marker)))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9232 (with-current-buffer (marker-buffer marker)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9233 (widen)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9234 (goto-char pos)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9235 (org-clock-in))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9236
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
9237 (defun org-agenda-diary-entry ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9238 "Make a diary entry, like the `i' command from the calendar.
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
9239 All the standard commands work: block, weekly etc."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
9240 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9241 (org-agenda-check-type t 'agenda 'timeline)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9242 (require 'diary-lib)
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
9243 (let* ((char (progn
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9244 (message "Diary entry: [d]ay [w]eekly [m]onthly [y]early [a]nniversary [b]lock [c]yclic")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9245 (read-char-exclusive)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9246 (cmd (cdr (assoc char
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9247 '((?d . insert-diary-entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9248 (?w . insert-weekly-diary-entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9249 (?m . insert-monthly-diary-entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9250 (?y . insert-yearly-diary-entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9251 (?a . insert-anniversary-diary-entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9252 (?b . insert-block-diary-entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9253 (?c . insert-cyclic-diary-entry)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9254 (oldf (symbol-function 'calendar-cursor-to-date))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9255 (point (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9256 (mark (or (mark t) (point))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9257 (unless cmd
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9258 (error "No command associated with <%c>" char))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9259 (unless (and (get-text-property point 'day)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9260 (or (not (equal ?b char))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9261 (get-text-property mark 'day)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9262 (error "Don't know which date to use for diary entry"))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9263 ;; We implement this by hacking the `calendar-cursor-to-date' function
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9264 ;; and the `calendar-mark-ring' variable. Saves a lot of code.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9265 (let ((calendar-mark-ring
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9266 (list (calendar-gregorian-from-absolute
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9267 (or (get-text-property mark 'day)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9268 (get-text-property point 'day))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9269 (unwind-protect
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9270 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9271 (fset 'calendar-cursor-to-date
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9272 (lambda (&optional error)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9273 (calendar-gregorian-from-absolute
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9274 (get-text-property point 'day))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9275 (call-interactively cmd))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9276 (fset 'calendar-cursor-to-date oldf)))))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9277
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9278
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9279 (defun org-agenda-execute-calendar-command (cmd)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9280 "Execute a calendar command from the agenda, with the date associated to
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9281 the cursor position."
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9282 (org-agenda-check-type t 'agenda 'timeline)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9283 (require 'diary-lib)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9284 (unless (get-text-property (point) 'day)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9285 (error "Don't know which date to use for calendar command"))
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9286 (let* ((oldf (symbol-function 'calendar-cursor-to-date))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9287 (point (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9288 (date (calendar-gregorian-from-absolute
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9289 (get-text-property point 'day)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9290 (displayed-day (extract-calendar-day date))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9291 (displayed-month (extract-calendar-month date))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9292 (displayed-year (extract-calendar-year date)))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9293 (unwind-protect
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9294 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9295 (fset 'calendar-cursor-to-date
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9296 (lambda (&optional error)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9297 (calendar-gregorian-from-absolute
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9298 (get-text-property point 'day))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9299 (call-interactively cmd))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9300 (fset 'calendar-cursor-to-date oldf))))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9301
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9302 (defun org-agenda-phases-of-moon ()
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9303 "Display the phases of the moon for the 3 months around the cursor date."
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9304 (interactive)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9305 (org-agenda-execute-calendar-command 'calendar-phases-of-moon))
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9306
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9307 (defun org-agenda-holidays ()
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9308 "Display the holidays for the 3 months around the cursor date."
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9309 (interactive)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9310 (org-agenda-execute-calendar-command 'list-calendar-holidays))
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9311
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9312 (defun org-agenda-sunrise-sunset (arg)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9313 "Display sunrise and sunset for the cursor date.
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9314 Latitude and longitude can be specified with the variables
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9315 `calendar-latitude' and `calendar-longitude'. When called with prefix
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9316 argument, latitude and longitude will be prompted for."
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9317 (interactive "P")
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9318 (let ((calendar-longitude (if arg nil calendar-longitude))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9319 (calendar-latitude (if arg nil calendar-latitude))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9320 (calendar-location-name
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9321 (if arg "the given coordinates" calendar-location-name)))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9322 (org-agenda-execute-calendar-command 'calendar-sunrise-sunset)))
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9323
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9324 (defun org-agenda-goto-calendar ()
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9325 "Open the Emacs calendar with the date at the cursor."
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9326 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9327 (org-agenda-check-type t 'agenda 'timeline)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9328 (let* ((day (or (get-text-property (point) 'day)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9329 (error "Don't know which date to open in calendar")))
66689
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
9330 (date (calendar-gregorian-from-absolute day))
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
9331 (calendar-move-hook nil)
70585
af0fd91baddc (org-read-date, org-goto-calendar, org-agenda-goto-calendar): Bind
Carsten Dominik <dominik@science.uva.nl>
parents: 70162
diff changeset
9332 (view-calendar-holidays-initially nil)
66689
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
9333 (view-diary-entries-initially nil))
a9a692f50d60 (org-read-date, org-goto-calendar)
Carsten Dominik <dominik@science.uva.nl>
parents: 66409
diff changeset
9334 (calendar)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9335 (calendar-goto-date date)))
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9336
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9337 (defun org-calendar-goto-agenda ()
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9338 "Compute the Org-mode agenda for the calendar date displayed at the cursor.
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9339 This is a command that has to be installed in `calendar-mode-map'."
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9340 (interactive)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9341 (org-agenda-list nil (calendar-absolute-from-gregorian
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9342 (calendar-cursor-to-date))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9343 nil))
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
9344
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9345 (defun org-agenda-convert-date ()
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9346 (interactive)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9347 (org-agenda-check-type t 'agenda 'timeline)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9348 (let ((day (get-text-property (point) 'day))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9349 date s)
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9350 (unless day
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9351 (error "Don't know which date to convert"))
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9352 (setq date (calendar-gregorian-from-absolute day))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
9353 (setq s (concat
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9354 "Gregorian: " (calendar-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9355 "ISO: " (calendar-iso-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9356 "Day of Yr: " (calendar-day-of-year-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9357 "Julian: " (calendar-julian-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9358 "Astron. JD: " (calendar-astro-date-string date)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9359 " (Julian date number at noon UTC)\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9360 "Hebrew: " (calendar-hebrew-date-string date) " (until sunset)\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9361 "Islamic: " (calendar-islamic-date-string date) " (until sunset)\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9362 "French: " (calendar-french-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9363 "Mayan: " (calendar-mayan-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9364 "Coptic: " (calendar-coptic-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9365 "Ethiopic: " (calendar-ethiopic-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9366 "Persian: " (calendar-persian-date-string date) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
9367 "Chinese: " (calendar-chinese-date-string date) "\n"))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9368 (with-output-to-temp-buffer "*Dates*"
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9369 (princ s))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9370 (if (fboundp 'fit-window-to-buffer)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9371 (fit-window-to-buffer (get-buffer-window "*Dates*")))))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
9372
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9373 ;;; Tags
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9374
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9375 (defun org-scan-tags (action matcher &optional todo-only)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9376 "Scan headline tags with inheritance and produce output ACTION.
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9377 ACTION can be `sparse-tree' or `agenda'. MATCHER is a Lisp form to be
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9378 evaluated, testing if a given set of tags qualifies a headline for
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
9379 inclusion. When TODO-ONLY is non-nil, only lines with a TODO keyword
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
9380 are included in the output."
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9381 (let* ((re (concat "[\n\r]" outline-regexp " *\\(\\<\\("
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9382 (mapconcat 'regexp-quote
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9383 (nreverse (cdr (reverse org-todo-keywords)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9384 "\\|")
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9385 "\\>\\)\\)? *\\(.*?\\)\\(:[A-Za-z_@0-9:]+:\\)?[ \t]*$"))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9386 (props (list 'face nil
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9387 'done-face 'org-done
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9388 'undone-face nil
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9389 'mouse-face 'highlight
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9390 'org-not-done-regexp org-not-done-regexp
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9391 'keymap org-agenda-keymap
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9392 'help-echo
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9393 (format "mouse-2 or RET jump to org file %s"
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
9394 (abbreviate-file-name buffer-file-name))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9395 (case-fold-search nil)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9396 lspos
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9397 tags tags-list tags-alist (llast 0) rtn level category i txt
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9398 todo marker)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9399 (save-excursion
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9400 (goto-char (point-min))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9401 (when (eq action 'sparse-tree) (org-overview))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9402 (while (re-search-forward re nil t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9403 (catch :skip
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9404 (and (eq action 'agenda) (org-agenda-skip))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9405 (setq todo (if (match-end 1) (match-string 2))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9406 tags (if (match-end 4) (match-string 4)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9407 (goto-char (setq lspos (1+ (match-beginning 0))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9408 (setq level (funcall outline-level)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9409 category (org-get-category))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9410 (setq i llast llast level)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9411 ;; remove tag lists from same and sublevels
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9412 (while (>= i level)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9413 (when (setq entry (assoc i tags-alist))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9414 (setq tags-alist (delete entry tags-alist)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9415 (setq i (1- i)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9416 ;; add the nex tags
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9417 (when tags
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9418 (setq tags (mapcar 'downcase (org-split-string tags ":"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9419 tags-alist
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9420 (cons (cons level tags) tags-alist)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9421 ;; compile tags for current headline
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9422 (setq tags-list
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9423 (if org-use-tag-inheritance
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9424 (apply 'append (mapcar 'cdr tags-alist))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9425 tags))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9426 (when (and (or (not todo-only) todo)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9427 (eval matcher)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9428 (or (not org-agenda-skip-archived-trees)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9429 (not (member org-archive-tag tags-list))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9430 ;; list this headline
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9431 (if (eq action 'sparse-tree)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9432 (progn
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9433 (org-show-context 'tags-tree))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9434 (setq txt (org-format-agenda-item
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9435 ""
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9436 (concat
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9437 (if org-tags-match-list-sublevels
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9438 (make-string (1- level) ?.) "")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9439 (org-get-heading))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9440 category tags-list))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9441 (goto-char lspos)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9442 (setq marker (org-agenda-new-marker))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9443 (org-add-props txt props
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9444 'org-marker marker 'org-hd-marker marker 'category category)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9445 (push txt rtn))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9446 ;; if we are to skip sublevels, jump to end of subtree
73010
9a63ebe75d2b (org-scan-tags): Find end of subtrees also in hidden trees.
Carsten Dominik <dominik@science.uva.nl>
parents: 72709
diff changeset
9447 (or org-tags-match-list-sublevels (org-end-of-subtree t))))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9448 (when (and (eq action 'sparse-tree)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9449 (not org-sparse-tree-open-archived-trees))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
9450 (org-hide-archived-subtrees (point-min) (point-max)))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9451 (nreverse rtn)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9452
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9453 (defun org-tags-sparse-tree (&optional arg match)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9454 "Create a sparse tree according to tags string MATCH.
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9455 MATCH can contain positive and negative selection of tags, like
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9456 \"+WORK+URGENT-WITHBOSS\"."
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9457 (interactive "P")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9458 (org-scan-tags 'sparse-tree (cdr (org-make-tags-matcher match))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9459
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9460 (defun org-make-tags-matcher (match)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9461 "Create the TAGS//TODO matcher form for the selection string MATCH."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9462 (unless match
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9463 ;; Get a new match request, with completion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9464 (setq org-last-tags-completion-table
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9465 (or org-tag-alist
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9466 org-last-tags-completion-table))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9467 (setq match (completing-read
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9468 "Match: " 'org-tags-completion-function nil nil nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9469 'org-tags-history))) ; FIXME: SHould we have a separate history for this?
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9470
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9471 ;; Parse the string and create a lisp form
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9472 (let ((match0 match) minus tag mm
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9473 tagsmatch todomatch tagsmatcher todomatcher kwd matcher
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9474 orterms term orlist)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9475 (if (string-match "/+" match)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9476 ;; match contains also a todo-matching request
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9477 (setq tagsmatch (substring match 0 (match-beginning 0))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9478 todomatch (substring match (match-end 0)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9479 ;; only matching tags
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9480 (setq tagsmatch match todomatch nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9481
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9482 ;; Make the tags matcher
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9483 (if (or (not tagsmatch) (not (string-match "\\S-" tagsmatch)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9484 (setq tagsmatcher t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9485 (setq orterms (org-split-string tagsmatch "|") orlist nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9486 (while (setq term (pop orterms))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9487 (while (string-match "^&?\\([-+:]\\)?\\([A-Za-z_@0-9]+\\)" term)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9488 (setq minus (and (match-end 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9489 (equal (match-string 1 term) "-"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9490 tag (match-string 2 term)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9491 term (substring term (match-end 0))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9492 mm (list 'member (downcase tag) 'tags-list)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9493 mm (if minus (list 'not mm) mm))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9494 (push mm tagsmatcher))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9495 (push (if (> (length tagsmatcher) 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9496 (cons 'and tagsmatcher)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9497 (car tagsmatcher))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9498 orlist)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9499 (setq tagsmatcher nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9500 (setq tagsmatcher (if (> (length orlist) 1) (cons 'or orlist) (car orlist))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9501
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9502 ;; Make the todo matcher ;; FIXME: reduce syntax richness?
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9503 (if (or (not todomatch) (not (string-match "\\S-" todomatch)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9504 (setq todomatcher t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9505 (setq orterms (org-split-string todomatch "|") orlist nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9506 (while (setq term (pop orterms))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9507 (while (string-match "^&?\\([-+:]\\)?\\([A-Za-z_@0-9]+\\)" term)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9508 (setq minus (and (match-end 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9509 (equal (match-string 1 term) "-"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9510 kwd (match-string 2 term)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9511 term (substring term (match-end 0))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9512 mm (list 'equal 'todo kwd)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9513 mm (if minus (list 'not mm) mm))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9514 (push mm todomatcher))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9515 (push (if (> (length todomatcher) 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9516 (cons 'and todomatcher)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9517 (car todomatcher))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9518 orlist)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9519 (setq todomatcher nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9520 (setq todomatcher (if (> (length orlist) 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9521 (cons 'or orlist) (car orlist))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9522
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9523 ;; Return the string and lisp forms of the matcher
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9524 (setq matcher (if todomatcher
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9525 (list 'and tagsmatcher todomatcher)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9526 tagsmatcher))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9527 (cons match0 matcher)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9528
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9529 ;;;###autoload
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9530 (defun org-tags-view (&optional todo-only match)
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
9531 "Show all headlines for all `org-agenda-files' matching a TAGS criterion.
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9532 The prefix arg TODO-ONLY limits the search to TODO entries."
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9533 (interactive "P")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9534 (org-compile-prefix-format 'tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9535 (org-set-sorting-strategy 'tags)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9536 (let* ((org-tags-match-list-sublevels
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9537 (if todo-only t org-tags-match-list-sublevels))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9538 (win (selected-window))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9539 (completion-ignore-case t)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9540 rtn rtnall files file pos matcher
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9541 buffer)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9542 (setq matcher (org-make-tags-matcher match)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9543 match (car matcher) matcher (cdr matcher))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9544 (org-prepare-agenda)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9545 (setq org-agenda-redo-command
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9546 (list 'org-tags-view (list 'quote todo-only)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9547 (list 'if 'current-prefix-arg nil match)))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9548 (setq files (org-agenda-files)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9549 rtnall nil)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9550 (while (setq file (pop files))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9551 (catch 'nextfile
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9552 (org-check-agenda-file file)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9553 (setq buffer (if (file-exists-p file)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9554 (org-get-agenda-file-buffer file)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9555 (error "No such file %s" file)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9556 (if (not buffer)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9557 ;; If file does not exist, merror message to agenda
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9558 (setq rtn (list
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9559 (format "ORG-AGENDA-ERROR: No such org-file %s" file))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9560 rtnall (append rtnall rtn))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9561 (with-current-buffer buffer
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
9562 (unless (org-mode-p)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9563 (error "Agenda file %s is not in `org-mode'" file))
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
9564 (setq org-category-table (org-get-category-table))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9565 (save-excursion
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9566 (save-restriction
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9567 (if org-agenda-restrict
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9568 (narrow-to-region org-agenda-restrict-begin
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9569 org-agenda-restrict-end)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9570 (widen))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9571 (setq rtn (org-scan-tags 'agenda matcher todo-only))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9572 (setq rtnall (append rtnall rtn))))))))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9573 (insert "Headlines with TAGS match: ")
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9574 (add-text-properties (point-min) (1- (point))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9575 (list 'face 'org-level-3))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9576 (setq pos (point))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9577 (insert match "\n")
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9578 (add-text-properties pos (1- (point)) (list 'face 'org-warning))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9579 (setq pos (point))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9580 (unless org-agenda-multi
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9581 (insert "Press `C-u r' to search again with new search string\n"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9582 (add-text-properties pos (1- (point)) (list 'face 'org-level-3))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9583 (when rtnall
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9584 (insert (org-finalize-agenda-entries rtnall) "\n"))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9585 (goto-char (point-min))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9586 (org-fit-agenda-window)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9587 (add-text-properties (point-min) (point-max) '(org-agenda-type tags))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9588 (org-finalize-agenda)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9589 (setq buffer-read-only t)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9590 (if (not org-select-agenda-window) (select-window win))))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9591
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9592 (defvar org-add-colon-after-tag-completion nil) ;; dynamically skoped param
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9593 (defvar org-tags-overlay (org-make-overlay 1 1))
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9594 (org-detach-overlay org-tags-overlay)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9595
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9596 (defun org-set-tags (&optional arg just-align)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9597 "Set the tags for the current headline.
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9598 With prefix ARG, realign all tags in headings in the current buffer."
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9599 (interactive "P")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9600 (let* ((re (concat "^" outline-regexp))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9601 (current (org-get-tags))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9602 table current-tags inherited-tags ; computed below when needed
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9603 tags p0 c0 c1 rpl)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9604 (if arg
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9605 (save-excursion
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9606 (goto-char (point-min))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9607 (let (buffer-invisibility-spec) ; Emacs 21 compatibility
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9608 (while (re-search-forward re nil t)
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9609 (org-set-tags nil t)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9610 (end-of-line 1)))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9611 (message "All tags realigned to column %d" org-tags-column))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9612 (if just-align
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9613 (setq tags current)
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9614 ;; Get a new set of tags from the user
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9615 (setq table (or org-tag-alist (org-get-buffer-tags))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9616 org-last-tags-completion-table table
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9617 current-tags (org-split-string current ":")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9618 inherited-tags (nreverse
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9619 (nthcdr (length current-tags)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9620 (nreverse (org-get-tags-at))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9621 tags
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9622 (if (or (eq t org-use-fast-tag-selection)
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9623 (and org-use-fast-tag-selection
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9624 (delq nil (mapcar 'cdr table))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9625 (org-fast-tag-selection current-tags inherited-tags table)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9626 (let ((org-add-colon-after-tag-completion t))
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9627 (org-trim
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9628 (completing-read "Tags: " 'org-tags-completion-function
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9629 nil nil current 'org-tags-history)))))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9630 (while (string-match "[-+&]+" tags)
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9631 ;; No boolean logic, just a list
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
9632 (setq tags (replace-match ":" t t tags))))
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9633 (if (string-match "\\`[\t ]*\\'" tags)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9634 (setq tags "")
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
9635 (unless (string-match ":$" tags) (setq tags (concat tags ":")))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
9636 (unless (string-match "^:" tags) (setq tags (concat ":" tags))))
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9637
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9638 ;; Insert new tags at the correct column
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9639 (beginning-of-line 1)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9640 (if (re-search-forward
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9641 (concat "\\([ \t]*" (regexp-quote current) "\\)[ \t]*$")
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9642 (point-at-eol) t)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
9643 (progn
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9644 (if (equal tags "")
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9645 (setq rpl "")
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9646 (goto-char (match-beginning 0))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9647 (setq c0 (current-column) p0 (point)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9648 c1 (max (1+ c0) (if (> org-tags-column 0)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9649 org-tags-column
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9650 (- (- org-tags-column) (length tags))))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9651 rpl (concat (make-string (max 0 (- c1 c0)) ?\ ) tags)))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9652 (replace-match rpl)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9653 (and (not (featurep 'xemacs)) c0 (tabify p0 (point)))
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9654 tags)
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9655 (error "Tags alignment failed")))))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9656
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9657 (defun org-tags-completion-function (string predicate &optional flag)
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9658 (let (s1 s2 rtn (ctable org-last-tags-completion-table)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9659 (confirm (lambda (x) (stringp (car x)))))
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
9660 (if (string-match "^\\(.*[-+:&|]\\)\\([^-+:&|]*\\)$" string)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9661 (setq s1 (match-string 1 string)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9662 s2 (match-string 2 string))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
9663 (setq s1 "" s2 string))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9664 (cond
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9665 ((eq flag nil)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9666 ;; try completion
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9667 (setq rtn (try-completion s2 ctable confirm))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
9668 (if (stringp rtn)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9669 (concat s1 s2 (substring rtn (length s2))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9670 (if (and org-add-colon-after-tag-completion
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9671 (assoc rtn ctable))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9672 ":" "")))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9673 )
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9674 ((eq flag t)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9675 ;; all-completions
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9676 (all-completions s2 ctable confirm)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9677 )
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9678 ((eq flag 'lambda)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9679 ;; exact match?
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9680 (assoc s2 ctable)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9681 ))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9682
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9683 (defun org-fast-tag-insert (kwd tags face &optional end)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9684 "Insert KDW, and the TAGS, the latter with face FACE. Also inser END."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9685 (insert (format "%-12s" (concat kwd ":"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9686 (org-add-props (mapconcat 'identity tags " ") nil 'face face)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9687 (or end "")))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9688
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9689 (defun org-fast-tag-show-exit (flag)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9690 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9691 (goto-line 3)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9692 (if (re-search-forward "[ \t]+Next change exits" (point-at-eol) t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9693 (replace-match ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9694 (when flag
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9695 (end-of-line 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9696 (move-to-column (- (window-width) 19) t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9697 (insert (org-add-props " Next change exits" nil 'face 'org-warning)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9698
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9699 (defun org-set-current-tags-overlay (current prefix)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9700 (let ((s (concat ":" (mapconcat 'identity current ":") ":")))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9701 (if (featurep 'xemacs)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9702 (org-overlay-display org-tags-overlay (concat prefix s)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9703 'secondary-selection)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9704 (put-text-property 0 (length s) 'face '(secondary-selection org-tag) s)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9705 (org-overlay-display org-tags-overlay (concat prefix s)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9706
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9707 (defun org-fast-tag-selection (current inherited table)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9708 "Fast tag selection with single keys.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9709 CURRENT is the current list of tags in the headline, INHERITED is the
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9710 list of inherited tags, and TABLE is an alist of tags and corresponding keys,
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9711 possibly with grouping information.
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9712 If the keys are nil, a-z are automatically assigned.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9713 Returns the new tags string, or nil to not change the current settings."
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9714 (let* ((maxlen (apply 'max (mapcar
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9715 (lambda (x)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9716 (if (stringp (car x)) (string-width (car x)) 0))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9717 table)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9718 (buf (current-buffer))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9719 (buffer-tags nil)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9720 (fwidth (+ maxlen 3 1 3))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9721 (ncol (/ (- (window-width) 4) fwidth))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9722 (i-face 'org-done)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9723 (c-face 'org-tag)
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9724 tg cnt e c char c1 c2 ntable tbl rtn
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9725 ov-start ov-end ov-prefix
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9726 (exit-after-next org-fast-tag-selection-single-key)
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9727 groups ingroup)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9728 (save-excursion
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9729 (beginning-of-line 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9730 (if (looking-at ".*[ \t]\\(:[A-Za-z_@0-9:]+:\\)[ \t]*\\(\r\\|$\\)")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9731 (setq ov-start (match-beginning 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9732 ov-end (match-end 1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9733 ov-prefix "")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9734 (setq ov-start (1- (point-at-eol))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9735 ov-end (1+ ov-start))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9736 (skip-chars-forward "^\n\r")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9737 (setq ov-prefix
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9738 (concat
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9739 (buffer-substring (1- (point)) (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9740 (if (> (current-column) org-tags-column)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9741 " "
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9742 (make-string (- org-tags-column (current-column)) ?\ ))))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9743 (org-move-overlay org-tags-overlay ov-start ov-end)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9744 (save-window-excursion
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9745 ;; FIXME: would it be better to keep the other windows?
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9746 (delete-other-windows)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9747 (split-window-vertically)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9748 (switch-to-buffer-other-window (get-buffer-create " *Org tags*"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9749 (erase-buffer)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9750 (org-fast-tag-insert "Inherited" inherited i-face "\n")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9751 (org-fast-tag-insert "Current" current c-face "\n\n")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9752 (org-fast-tag-show-exit exit-after-next)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9753 (org-set-current-tags-overlay current ov-prefix)
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9754 (setq tbl table char ?a cnt 0)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9755 (while (setq e (pop tbl))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9756 (cond
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9757 ((equal e '(:startgroup))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9758 (push '() groups) (setq ingroup t)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9759 (when (not (= cnt 0))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9760 (setq cnt 0)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9761 (insert "\n"))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9762 (insert "{ "))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9763 ((equal e '(:endgroup))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9764 (setq ingroup nil cnt 0)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9765 (insert "}\n"))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9766 (t
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9767 (setq tg (car e) c2 nil)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9768 (if (cdr e)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9769 (setq c (cdr e))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9770 ;; automatically assign a character.
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9771 (setq c1 (string-to-char
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9772 (downcase (substring
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9773 tg (if (= (string-to-char tg) ?@) 1 0)))))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9774 (if (or (rassoc c1 ntable) (rassoc c1 table))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9775 (while (or (rassoc char ntable) (rassoc char table))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9776 (setq char (1+ char)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9777 (setq c2 c1))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9778 (setq c (or c2 char)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9779 (if ingroup (push tg (car groups)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9780 (setq tg (org-add-props tg nil 'face
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9781 (cond
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9782 ((member tg current) c-face)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9783 ((member tg inherited) i-face)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9784 (t nil))))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9785 (if (and (= cnt 0) (not ingroup)) (insert " "))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9786 (insert "[" c "] " tg (make-string
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9787 (- fwidth 4 (length tg)) ?\ ))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9788 (push (cons tg c) ntable)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9789 (when (= (setq cnt (1+ cnt)) ncol)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9790 (insert "\n")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9791 (if ingroup (insert " "))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9792 (setq cnt 0)))))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9793 (setq ntable (nreverse ntable))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9794 (insert "\n")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9795 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9796 (if (fboundp 'fit-window-to-buffer) (fit-window-to-buffer))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9797 (setq rtn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9798 (catch 'exit
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9799 (while t
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9800 (message "[a-z..]:Toggle [SPC]:clear [RET]:accept [TAB]:free [C-c]: multi%s"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9801 (if groups " [!] no groups" ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9802 (setq c (let ((inhibit-quit t)) (read-char-exclusive)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9803 (cond
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9804 ((= c ?\r) (throw 'exit t))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
9805 ((= c ?!)
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9806 (setq groups nil)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9807 (goto-char (point-min))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9808 (while (re-search-forward "[{}]" nil t) (replace-match " ")))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9809 ((= c ?\C-c)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9810 (org-fast-tag-show-exit
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9811 (setq exit-after-next (not exit-after-next))))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9812 ((or (= c ?\C-g)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9813 (and (= c ?q) (not (rassoc c ntable))))
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9814 (org-detach-overlay org-tags-overlay)
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9815 (setq quit-flag t))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9816 ((= c ?\ )
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9817 (setq current nil)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9818 (if exit-after-next (setq exit-after-next 'now)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9819 ((= c ?\t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9820 (condition-case nil
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9821 (setq tg (completing-read
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9822 "Tag: "
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9823 (or buffer-tags
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9824 (with-current-buffer buf
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9825 (org-get-buffer-tags)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9826 (quit (setq tg "")))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9827 (when (string-match "\\S-" tg)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9828 (add-to-list 'buffer-tags (list tg))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9829 (if (member tg current)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9830 (setq current (delete tg current))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9831 (push tg current)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9832 (if exit-after-next (setq exit-after-next 'now)))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9833 ((setq e (rassoc c ntable) tg (car e))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9834 (if (member tg current)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9835 (setq current (delete tg current))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9836 (loop for g in groups do
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9837 (if (member tg g)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9838 (mapcar (lambda (x)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9839 (setq current (delete x current)))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9840 g)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9841 (push tg current))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9842 (if exit-after-next (setq exit-after-next 'now))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9843
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9844 ;; Create a sorted list
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9845 (setq current
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9846 (sort current
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9847 (lambda (a b)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
9848 (assoc b (cdr (memq (assoc a ntable) ntable))))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9849 (if (eq exit-after-next 'now) (throw 'exit t))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9850 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9851 (beginning-of-line 2)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9852 (delete-region (point) (point-at-eol))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9853 (org-fast-tag-insert "Current" current c-face)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9854 (org-set-current-tags-overlay current ov-prefix)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9855 (while (re-search-forward "\\[.\\] \\([a-zA-Z0-9_@]+\\)" nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9856 (setq tg (match-string 1))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9857 (add-text-properties (match-beginning 1) (match-end 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9858 (list 'face
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9859 (cond
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9860 ((member tg current) c-face)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9861 ((member tg inherited) i-face)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9862 (t nil)))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9863 (goto-char (point-min)))))
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
9864 (org-detach-overlay org-tags-overlay)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9865 (if rtn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9866 (mapconcat 'identity current ":")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9867 nil))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9868
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9869 (defun org-get-tags ()
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9870 "Get the TAGS string in the current headline."
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9871 (unless (org-on-heading-p t)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9872 (error "Not on a heading"))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9873 (save-excursion
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9874 (beginning-of-line 1)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9875 (if (looking-at ".*[ \t]\\(:[A-Za-z_@0-9:]+:\\)[ \t]*\\(\r\\|$\\)")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9876 (org-match-string-no-properties 1)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9877 "")))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9878
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9879 (defun org-get-buffer-tags ()
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9880 "Get a table of all tags used in the buffer, for completion."
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9881 (let (tags)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9882 (save-excursion
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9883 (goto-char (point-min))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9884 (while (re-search-forward "[ \t]:\\([A-Za-z_@0-9:]+\\):[ \t\r\n]" nil t)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9885 (mapc (lambda (x) (add-to-list 'tags x))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9886 (org-split-string (org-match-string-no-properties 1) ":"))))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9887 (mapcar 'list tags)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
9888
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9889 ;;; Link Stuff
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9890
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9891 (defvar org-create-file-search-functions nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9892 "List of functions to construct the right search string for a file link.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9893 These functions are called in turn with point at the location to
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9894 which the link should point.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9895
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9896 A function in the hook should first test if it would like to
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9897 handle this file type, for example by checking the major-mode or
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9898 the file extension. If it decides not to handle this file, it
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9899 should just return nil to give other functions a chance. If it
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9900 does handle the file, it must return the search string to be used
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9901 when following the link. The search string will be part of the
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9902 file link, given after a double colon, and `org-open-at-point'
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9903 will automatically search for it. If special measures must be
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9904 taken to make the search successful, another function should be
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9905 added to the companion hook `org-execute-file-search-functions',
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9906 which see.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9907
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9908 A function in this hook may also use `setq' to set the variable
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9909 `description' to provide a suggestion for the descriptive text to
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9910 be used for this link when it gets inserted into an Org-mode
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9911 buffer with \\[org-insert-link].")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9912
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9913 (defvar org-execute-file-search-functions nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9914 "List of functions to execute a file search triggered by a link.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9915
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9916 Functions added to this hook must accept a single argument, the
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9917 search string that was part of the file link, the part after the
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9918 double colon. The function must first check if it would like to
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9919 handle this search, for example by checking the major-mode or the
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9920 file extension. If it decides not to handle this search, it
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9921 should just return nil to give other functions a chance. If it
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9922 does handle the search, it must return a non-nil value to keep
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9923 other functions from trying.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9924
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9925 Each function can access the current prefix argument through the
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9926 variable `current-prefix-argument'. Note that a single prefix is
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9927 used to force opening a link in Emacs, so it may be good to only
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9928 use a numeric or double prefix to guide the search function.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9929
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9930 In case this is needed, a function in this hook can also restore
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9931 the window configuration before `org-open-at-point' was called using:
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9932
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9933 (set-window-configuration org-window-config-before-follow-link)")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9934
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9935 (defun org-find-file-at-mouse (ev)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9936 "Open file link or URL at mouse."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9937 (interactive "e")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9938 (mouse-set-point ev)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9939 (org-open-at-point 'in-emacs))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9940
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9941 (defun org-open-at-mouse (ev)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9942 "Open file link or URL at mouse."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9943 (interactive "e")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9944 (mouse-set-point ev)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9945 (org-open-at-point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9946
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9947 (defvar org-window-config-before-follow-link nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9948 "The window configuration before following a link.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9949 This is saved in case the need arises to restore it.")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9950
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9951 ;; FIXME: IN-EMACS is used for many purposes, maybe rename this argument???
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9952 (defun org-open-at-point (&optional in-emacs)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9953 "Open link at or after point.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9954 If there is no link at point, this function will search forward up to
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9955 the end of the current subtree.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9956 Normally, files will be opened by an appropriate application. If the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9957 optional argument IN-EMACS is non-nil, Emacs will visit the file."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9958 (interactive "P")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
9959 (setq org-window-config-before-follow-link (current-window-configuration))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
9960 (org-remove-occur-highlights nil nil t)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9961 (if (org-at-timestamp-p t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9962 (org-follow-timestamp-link)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9963 (let (type path link line search (pos (point)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
9964 (catch 'match
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
9965 (save-excursion
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9966 (skip-chars-forward "^]\n\r")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9967 (when (and (re-search-backward "\\[\\[" nil t)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9968 (looking-at org-bracket-link-regexp)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9969 (<= (match-beginning 0) pos)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9970 (>= (match-end 0) pos))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9971 (setq link (org-link-unescape (org-match-string-no-properties 1)))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9972 (while (string-match " *\n *" link)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9973 (setq link (replace-match " " t t link)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
9974 (setq link (org-link-expand-abbrev link))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9975 (if (string-match org-link-re-with-space2 link)
69620
fd0fd3b4eeb9 (org-open-at-point): Fixed bug in wiki-style bracket links.
Carsten Dominik <dominik@science.uva.nl>
parents: 69534
diff changeset
9976 (setq type (match-string 1 link)
fd0fd3b4eeb9 (org-open-at-point): Fixed bug in wiki-style bracket links.
Carsten Dominik <dominik@science.uva.nl>
parents: 69534
diff changeset
9977 path (match-string 2 link))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9978 (setq type "thisfile"
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9979 path link))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9980 (throw 'match t)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9981
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9982 (when (get-text-property (point) 'org-linked-text)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9983 (setq type "thisfile"
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9984 pos (if (get-text-property (1+ (point)) 'org-linked-text)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9985 (1+ (point)) (point))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9986 path (buffer-substring
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9987 (previous-single-property-change pos 'org-linked-text)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9988 (next-single-property-change pos 'org-linked-text)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9989 (throw 'match t))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9990
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
9991 (save-excursion
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9992 (skip-chars-backward (concat "^[]" org-non-link-chars " "))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9993 (if (equal (char-before) ?<) (backward-char 1))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9994 (when (or (looking-at org-angle-link-re)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9995 (looking-at org-plain-link-re)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9996 (and (or (re-search-forward org-angle-link-re (point-at-eol) t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
9997 (re-search-forward org-plain-link-re (point-at-eol) t))
68294
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
9998 (<= (match-beginning 0) pos)
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
9999 (>= (match-end 0) pos)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10000 (setq type (match-string 1)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10001 path (match-string 2))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10002 (throw 'match t)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10003 (save-excursion
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
10004 (skip-chars-backward "^ \t\n\r")
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10005 (when (looking-at "\\(:[A-Za-z_@0-9:]+\\):[ \t\r\n]")
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
10006 (setq type "tags"
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
10007 path (match-string 1))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
10008 (while (string-match ":" path)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
10009 (setq path (replace-match "+" t t path)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
10010 (throw 'match t)))
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
10011 (save-excursion
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10012 (skip-chars-backward "a-zA-Z_")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10013 (when (and (memq 'camel org-activate-links)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10014 (looking-at org-camel-regexp))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10015 (setq type "camel" path (match-string 0))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10016 (if (equal (char-before) ?*)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10017 (setq path (concat "*" path))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10018 (throw 'match t)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10019 (unless path
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10020 (error "No link found"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10021 ;; Remove any trailing spaces in path
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10022 (if (string-match " +\\'" path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10023 (setq path (replace-match "" t t path)))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10024
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10025 (cond
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10026
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10027 ((equal type "mailto")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10028 (let ((cmd (car org-link-mailto-program))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10029 (args (cdr org-link-mailto-program)) args1
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10030 (address path) (subject "") a)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10031 (if (string-match "\\(.*\\)::\\(.*\\)" path)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10032 (setq address (match-string 1 path)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10033 subject (org-link-escape (match-string 2 path))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10034 (while args
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10035 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10036 ((not (stringp (car args))) (push (pop args) args1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10037 (t (setq a (pop args))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10038 (if (string-match "%a" a)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10039 (setq a (replace-match address t t a)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10040 (if (string-match "%s" a)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10041 (setq a (replace-match subject t t a)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10042 (push a args1))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10043 (apply cmd (nreverse args1))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10044
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10045 ((member type '("http" "https" "ftp" "news"))
69620
fd0fd3b4eeb9 (org-open-at-point): Fixed bug in wiki-style bracket links.
Carsten Dominik <dominik@science.uva.nl>
parents: 69534
diff changeset
10046 (browse-url (concat type ":" path)))
fd0fd3b4eeb9 (org-open-at-point): Fixed bug in wiki-style bracket links.
Carsten Dominik <dominik@science.uva.nl>
parents: 69534
diff changeset
10047
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
10048 ((string= type "tags")
68294
f915fc860323 (org-open-at-point): Fixed bug with matching a link.
Carsten Dominik <dominik@science.uva.nl>
parents: 68245
diff changeset
10049 (org-tags-view in-emacs path))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10050 ((or (string= type "camel")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10051 (string= type "thisfile"))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10052 (if in-emacs
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10053 (switch-to-buffer-other-window
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10054 (org-get-buffer-for-internal-link (current-buffer)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10055 (org-mark-ring-push))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10056 (org-link-search
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10057 path
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10058 (cond ((equal in-emacs '(4)) 'occur)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10059 ((equal in-emacs '(16)) 'org-occur)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10060 (t nil))))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10061
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10062 ((string= type "file")
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
10063 (if (string-match "::\\([0-9]+\\)\\'" path)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10064 (setq line (string-to-number (match-string 1 path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10065 path (substring path 0 (match-beginning 0)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10066 (if (string-match "::\\(.+\\)\\'" path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10067 (setq search (match-string 1 path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10068 path (substring path 0 (match-beginning 0)))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10069 (org-open-file path in-emacs line search))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10070
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10071 ((string= type "news")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10072 (org-follow-gnus-link path))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10073
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10074 ((string= type "bbdb")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10075 (org-follow-bbdb-link path))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10076
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10077 ((string= type "info")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10078 (org-follow-info-link path))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10079
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10080 ((string= type "gnus")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10081 (let (group article)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10082 (if (not (string-match "\\`\\([^#]+\\)\\(#\\(.*\\)\\)?" path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10083 (error "Error in Gnus link"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10084 (setq group (match-string 1 path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10085 article (match-string 3 path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10086 (org-follow-gnus-link group article)))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10087
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10088 ((string= type "vm")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10089 (let (folder article)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10090 (if (not (string-match "\\`\\([^#]+\\)\\(#\\(.*\\)\\)?" path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10091 (error "Error in VM link"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10092 (setq folder (match-string 1 path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10093 article (match-string 3 path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10094 ;; in-emacs is the prefix arg, will be interpreted as read-only
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10095 (org-follow-vm-link folder article in-emacs)))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10096
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10097 ((string= type "wl")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10098 (let (folder article)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10099 (if (not (string-match "\\`\\([^#]+\\)\\(#\\(.*\\)\\)?" path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10100 (error "Error in Wanderlust link"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10101 (setq folder (match-string 1 path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10102 article (match-string 3 path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10103 (org-follow-wl-link folder article)))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10104
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10105 ((string= type "mhe")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10106 (let (folder article)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10107 (if (not (string-match "\\`\\([^#]+\\)\\(#\\(.*\\)\\)?" path))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10108 (error "Error in MHE link"))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10109 (setq folder (match-string 1 path)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10110 article (match-string 3 path))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10111 (org-follow-mhe-link folder article)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10112
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10113 ((string= type "rmail")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10114 (let (folder article)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10115 (if (not (string-match "\\`\\([^#]+\\)\\(#\\(.*\\)\\)?" path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10116 (error "Error in RMAIL link"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10117 (setq folder (match-string 1 path)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10118 article (match-string 3 path))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10119 (org-follow-rmail-link folder article)))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10120
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10121 ((string= type "shell")
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10122 (let ((cmd path))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10123 (while (string-match "@{" cmd) ; FIXME: not needed for [[]] links
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10124 (setq cmd (replace-match "<" t t cmd)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10125 (while (string-match "@}" cmd) ; FIXME: not needed for [[]] links
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10126 (setq cmd (replace-match ">" t t cmd)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10127 (if (or (not org-confirm-shell-link-function)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10128 (funcall org-confirm-shell-link-function
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10129 (format "Execute \"%s\" in shell? "
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10130 (org-add-props cmd nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10131 'face 'org-warning))))
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
10132 (progn
70161
b9e09a4a2168 (org-mode-map): Catch conflict with old allout.el.
Carsten Dominik <dominik@science.uva.nl>
parents: 70136
diff changeset
10133 (message "Executing %s" cmd)
b9e09a4a2168 (org-mode-map): Catch conflict with old allout.el.
Carsten Dominik <dominik@science.uva.nl>
parents: 70136
diff changeset
10134 (shell-command cmd))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10135 (error "Abort"))))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10136
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10137 ((string= type "elisp")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10138 (let ((cmd path))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10139 (if (or (not org-confirm-elisp-link-function)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10140 (funcall org-confirm-elisp-link-function
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10141 (format "Execute \"%s\" as elisp? "
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10142 (org-add-props cmd nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10143 'face 'org-warning))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10144 (message "%s => %s" cmd (eval (read cmd)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10145 (error "Abort"))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10146
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10147 (t
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10148 (browse-url-at-point))))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10149
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10150 (defun org-link-expand-abbrev (link)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10151 "Apply replacements as defined in `org-link-abbrev-alist."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10152 (if (string-match "^\\([a-zA-Z]+\\)\\(::\\(.*\\)\\)?$" link)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10153 (let* ((key (match-string 1 link))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10154 (as (or (assoc key org-link-abbrev-alist-local)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10155 (assoc key org-link-abbrev-alist)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10156 (tag (and (match-end 2) (match-string 3 link)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10157 rpl)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10158 (if (not as)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10159 link
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10160 (setq rpl (cdr as))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10161 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10162 ((symbolp rpl) (funcall rpl tag))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10163 ((string-match "%s" rpl) (replace-match (or tag "") t t rpl))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10164 (t (concat rpl tag)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10165 link))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10166
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10167 (defun org-link-search (s &optional type)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10168 "Search for a link search option.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10169 When S is a CamelCaseWord, search for a target, or for a sentence containing
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10170 the words. If S is surrounded by forward slashes, it is interpreted as a
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10171 regular expression. In org-mode files, this will create an `org-occur'
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10172 sparse tree. In ordinary files, `occur' will be used to list matches.
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10173 If the current buffer is in `dired-mode', grep will be used to search
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10174 in all files."
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10175 (let ((case-fold-search t)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10176 (s0 (mapconcat 'identity (org-split-string s "[ \t\r\n]+") " "))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10177 (pos (point))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10178 (pre "") (post "")
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10179 words re0 re1 re2 re3 re4 re5 re2a reall camel)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10180 (cond
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
10181 ;; First check if there are any special
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10182 ((run-hook-with-args-until-success 'org-execute-file-search-functions s))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10183 ;; Now try the builtin stuff
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10184 ((save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10185 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10186 (and
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10187 (re-search-forward
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10188 (concat "<<" (regexp-quote s0) ">>") nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10189 (setq pos (match-beginning 0))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10190 ;; There is an exact target for this
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10191 (goto-char pos))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10192 ((string-match "^/\\(.*\\)/$" s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10193 ;; A regular expression
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10194 (cond
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
10195 ((org-mode-p)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10196 (org-occur (match-string 1 s)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10197 ;;((eq major-mode 'dired-mode)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10198 ;; (grep (concat "grep -n -e '" (match-string 1 s) "' *")))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10199 (t (org-do-occur (match-string 1 s)))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10200 ((or (setq camel (string-match (concat "^" org-camel-regexp "$") s))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10201 t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10202 ;; A camel or a normal search string
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10203 (when (equal (string-to-char s) ?*)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10204 ;; Anchor on headlines, post may include tags.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10205 (setq pre "^\\*+[ \t]*\\(?:\\sw+\\)?[ \t]*"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10206 post "[ \t]*\\(?:[ \t]+:[a-zA-Z_@0-9:+]:[ \t]*\\)?$"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10207 s (substring s 1)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10208 (remove-text-properties
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10209 0 (length s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10210 '(face nil mouse-face nil keymap nil fontified nil) s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10211 ;; Make a series of regular expressions to find a match
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10212 (setq words
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10213 (if camel
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10214 (org-camel-to-words s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10215 (org-split-string s "[ \n\r\t]+"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10216 re0 (concat "\\(<<" (regexp-quote s0) ">>\\)")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10217 re2 (concat "[ \t\r\n]\\(" (mapconcat 'downcase words "[ \t]+") "\\)[ \t\r\n]")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10218 re2a (concat "[ \t\r\n]\\(" (mapconcat 'downcase words "[ \t\r\n]+") "\\)[ \t\r\n]")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10219 re4 (concat "[^a-zA-Z_]\\(" (mapconcat 'downcase words "[^a-zA-Z_\r\n]+") "\\)[^a-zA-Z_]")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10220 re1 (concat pre re2 post)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10221 re3 (concat pre re4 post)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10222 re5 (concat pre ".*" re4)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10223 re2 (concat pre re2)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10224 re2a (concat pre re2a)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10225 re4 (concat pre re4)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10226 reall (concat "\\(" re0 "\\)\\|\\(" re1 "\\)\\|\\(" re2
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10227 "\\)\\|\\(" re3 "\\)\\|\\(" re4 "\\)\\|\\("
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10228 re5 "\\)"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10229 ))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10230 (cond
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10231 ((eq type 'org-occur) (org-occur reall))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10232 ((eq type 'occur) (org-do-occur (downcase reall) 'cleanup))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10233 (t (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10234 (if (or (org-search-not-link re0 nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10235 (org-search-not-link re1 nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10236 (org-search-not-link re2 nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10237 (org-search-not-link re2a nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10238 (org-search-not-link re3 nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10239 (org-search-not-link re4 nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10240 (org-search-not-link re5 nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10241 )
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
10242 (goto-char (match-beginning 1))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10243 (goto-char pos)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10244 (error "No match")))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10245 (t
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10246 ;; Normal string-search
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10247 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10248 (if (search-forward s nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10249 (goto-char (match-beginning 0))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10250 (error "No match"))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10251 (and (org-mode-p) (org-show-context 'link-search))))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10252
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10253 (defun org-search-not-link (&rest args)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10254 "Execute `re-search-forward', but only accept matches that are not a link."
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10255 (catch 'exit
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10256 (let (p1)
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10257 (while (apply 're-search-forward args)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10258 (setq p1 (point))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10259 (if (not (save-match-data
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10260 (and (re-search-backward "\\[\\[" nil t)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10261 (looking-at org-bracket-link-regexp)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10262 (<= (match-beginning 0) p1)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10263 (>= (match-end 0) p1))))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10264 (progn (goto-char (match-end 0))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10265 (throw 'exit (point)))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10266 (goto-char (match-end 0)))))))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10267
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10268 (defun org-get-buffer-for-internal-link (buffer)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10269 "Return a buffer to be used for displaying the link target of internal links."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10270 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10271 ((not org-display-internal-link-with-indirect-buffer)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10272 buffer)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10273 ((string-match "(Clone)$" (buffer-name buffer))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10274 (message "Buffer is already a clone, not making another one")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10275 ;; we also do not modify visibility in this case
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10276 buffer)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10277 (t ; make a new indirect buffer for displaying the link
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10278 (let* ((bn (buffer-name buffer))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10279 (ibn (concat bn "(Clone)"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10280 (ib (or (get-buffer ibn) (make-indirect-buffer buffer ibn 'clone))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10281 (with-current-buffer ib (org-overview))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10282 ib))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10283
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10284 (defun org-do-occur (regexp &optional cleanup)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10285 "Call the Emacs command `occur'.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10286 If CLEANUP is non-nil, remove the printout of the regular expression
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10287 in the *Occur* buffer. This is useful if the regex is long and not useful
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10288 to read."
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10289 (occur regexp)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10290 (when cleanup
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10291 (let ((cwin (selected-window)) win beg end)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10292 (when (setq win (get-buffer-window "*Occur*"))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10293 (select-window win))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10294 (goto-char (point-min))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10295 (when (re-search-forward "match[a-z]+" nil t)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10296 (setq beg (match-end 0))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10297 (if (re-search-forward "^[ \t]*[0-9]+" nil t)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10298 (setq end (1- (match-beginning 0)))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10299 (and beg end (let ((buffer-read-only)) (delete-region beg end)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10300 (goto-char (point-min))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10301 (select-window cwin))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10302
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10303 (defvar org-mark-ring nil
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10304 "Mark ring for positions before jumps in Org-mode.")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10305 (defvar org-mark-ring-last-goto nil
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10306 "Last position in the mark ring used to go back.")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10307 ;; Fill and close the ring
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10308 (setq org-mark-ring nil org-mark-ring-last-goto nil) ;; in case file is reloaded
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10309 (loop for i from 1 to org-mark-ring-length do
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10310 (push (make-marker) org-mark-ring))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10311 (setcdr (nthcdr (1- org-mark-ring-length) org-mark-ring)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10312 org-mark-ring)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10313
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10314 (defun org-mark-ring-push (&optional pos buffer)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10315 "Put the current position or POS into the mark ring and rotate it."
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10316 (interactive)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10317 (setq pos (or pos (point)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10318 (setq org-mark-ring (nthcdr (1- org-mark-ring-length) org-mark-ring))
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
10319 (move-marker (car org-mark-ring)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10320 (or pos (point))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10321 (or buffer (current-buffer)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10322 (message
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10323 (substitute-command-keys
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10324 "Position saved to mark ring, go back with \\[org-mark-ring-goto].")))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10325
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10326 (defun org-mark-ring-goto (&optional n)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10327 "Jump to the previous position in the mark ring.
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10328 With prefix arg N, jump back that many stored positions. When
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10329 called several times in succession, walk through the entire ring.
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10330 Org-mode commands jumping to a different position in the current file,
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10331 or to another Org-mode file, automatically push the old position
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10332 onto the ring."
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10333 (interactive "p")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10334 (let (p m)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10335 (if (eq last-command this-command)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10336 (setq p (nthcdr n (or org-mark-ring-last-goto org-mark-ring)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10337 (setq p org-mark-ring))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10338 (setq org-mark-ring-last-goto p)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10339 (setq m (car p))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10340 (switch-to-buffer (marker-buffer m))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10341 (goto-char m)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10342 (if (or (org-invisible-p) (org-invisible-p2)) (org-show-context 'mark-goto))))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10343
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10344 (defun org-camel-to-words (s)
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10345 "Split \"CamelCaseWords\" to (\"Camel\" \"Case\" \"Words\")."
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10346 (let ((case-fold-search nil)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10347 words)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10348 (while (string-match "[a-z][A-Z]" s)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10349 (push (substring s 0 (1+ (match-beginning 0))) words)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10350 (setq s (substring s (1+ (match-beginning 0)))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10351 (nreverse (cons s words))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10352
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10353 (defun org-remove-angle-brackets (s)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10354 (if (equal (substring s 0 1) "<") (setq s (substring s 1)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10355 (if (equal (substring s -1) ">") (setq s (substring s 0 -1)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10356 s)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10357 (defun org-add-angle-brackets (s)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10358 (if (equal (substring s 0 1) "<") nil (setq s (concat "<" s)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10359 (if (equal (substring s -1) ">") nil (setq s (concat s ">")))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10360 s)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10361
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10362 (defun org-follow-timestamp-link ()
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10363 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10364 ((org-at-date-range-p t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10365 (let ((org-agenda-start-on-weekday)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10366 (t1 (match-string 1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10367 (t2 (match-string 2)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10368 (setq t1 (time-to-days (org-time-string-to-time t1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10369 t2 (time-to-days (org-time-string-to-time t2)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10370 (org-agenda-list nil t1 (1+ (- t2 t1)))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10371 ((org-at-timestamp-p t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10372 (org-agenda-list nil (time-to-days (org-time-string-to-time
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10373 (substring (match-string 1) 0 10)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10374 1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10375 (t (error "This should not happen"))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10376
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10377
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10378 (defun org-follow-bbdb-link (name)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10379 "Follow a BBDB link to NAME."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10380 (require 'bbdb)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10381 (let ((inhibit-redisplay t)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10382 (bbdb-electric-p nil))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10383 (catch 'exit
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10384 ;; Exact match on name
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10385 (bbdb-name (concat "\\`" name "\\'") nil)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10386 (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10387 ;; Exact match on name
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10388 (bbdb-company (concat "\\`" name "\\'") nil)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10389 (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10390 ;; Partial match on name
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10391 (bbdb-name name nil)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10392 (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10393 ;; Partial match on company
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10394 (bbdb-company name nil)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10395 (if (< 0 (buffer-size (get-buffer "*BBDB*"))) (throw 'exit nil))
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10396 ;; General match including network address and notes
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10397 (bbdb name nil)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10398 (when (= 0 (buffer-size (get-buffer "*BBDB*")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10399 (delete-window (get-buffer-window "*BBDB*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10400 (error "No matching BBDB record")))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10401
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10402
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10403 (defun org-follow-info-link (name)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10404 "Follow an info file & node link to NAME."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10405 (if (or (string-match "\\(.*\\)::?\\(.*\\)" name)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10406 (string-match "\\(.*\\)" name))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10407 (progn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10408 (require 'info)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10409 (if (match-string 2 name) ; If there isn't a node, choose "Top"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10410 (Info-find-node (match-string 1 name) (match-string 2 name))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10411 (Info-find-node (match-string 1 name) "Top")))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10412 (message (concat "Could not open: " name))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10413
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10414 (defun org-follow-gnus-link (&optional group article)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10415 "Follow a Gnus link to GROUP and ARTICLE."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10416 (require 'gnus)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10417 (funcall (cdr (assq 'gnus org-link-frame-setup)))
72494
37bdcb1f6e30 (org-follow-gnus-link): Make sure the dedicated
Carsten Dominik <dominik@science.uva.nl>
parents: 72398
diff changeset
10418 (if gnus-other-frame-object (select-frame gnus-other-frame-object))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10419 (if group (gnus-fetch-group group))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10420 (if article
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10421 (or (gnus-summary-goto-article article nil 'force)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10422 (if (fboundp 'gnus-summary-insert-cached-articles)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10423 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10424 (gnus-summary-insert-cached-articles)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10425 (gnus-summary-goto-article article nil 'force))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10426 (message "Message could not be found.")))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10427
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10428 (defun org-follow-vm-link (&optional folder article readonly)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10429 "Follow a VM link to FOLDER and ARTICLE."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10430 (require 'vm)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10431 (setq article (org-add-angle-brackets article))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10432 (if (string-match "^//\\([a-zA-Z]+@\\)?\\([^:]+\\):\\(.*\\)" folder)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10433 ;; ange-ftp or efs or tramp access
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10434 (let ((user (or (match-string 1 folder) (user-login-name)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10435 (host (match-string 2 folder))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10436 (file (match-string 3 folder)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10437 (cond
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10438 ((featurep 'tramp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10439 ;; use tramp to access the file
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10440 (if (featurep 'xemacs)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10441 (setq folder (format "[%s@%s]%s" user host file))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10442 (setq folder (format "/%s@%s:%s" user host file))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10443 (t
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10444 ;; use ange-ftp or efs
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10445 (require (if (featurep 'xemacs) 'efs 'ange-ftp))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10446 (setq folder (format "/%s@%s:%s" user host file))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10447 (when folder
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10448 (funcall (cdr (assq 'vm org-link-frame-setup)) folder readonly)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10449 (sit-for 0.1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10450 (when article
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10451 (vm-select-folder-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10452 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10453 (let ((case-fold-search t))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10454 (goto-char (point-min))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10455 (if (not (re-search-forward
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10456 (concat "^" "message-id: *" (regexp-quote article))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10457 (error "Could not find the specified message in this folder"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10458 (vm-isearch-update)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10459 (vm-isearch-narrow)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10460 (vm-beginning-of-message)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10461 (vm-summarize)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10462
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10463 (defun org-follow-wl-link (folder article)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10464 "Follow a Wanderlust link to FOLDER and ARTICLE."
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10465 (setq article (org-add-angle-brackets article))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10466 (wl-summary-goto-folder-subr folder 'no-sync t nil t)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10467 (if article (wl-summary-jump-to-msg-by-message-id article ">"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10468 (wl-summary-redisplay))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10469
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10470 (defun org-follow-rmail-link (folder article)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10471 "Follow an RMAIL link to FOLDER and ARTICLE."
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10472 (setq article (org-add-angle-brackets article))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10473 (let (message-number)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10474 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10475 (save-window-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10476 (rmail (if (string= folder "RMAIL") rmail-file-name folder))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10477 (setq message-number
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10478 (save-restriction
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10479 (widen)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10480 (goto-char (point-max))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10481 (if (re-search-backward
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10482 (concat "^Message-ID:\\s-+" (regexp-quote
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10483 (or article "")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10484 nil t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10485 (rmail-what-message))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10486 (if message-number
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10487 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10488 (rmail (if (string= folder "RMAIL") rmail-file-name folder))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10489 (rmail-show-message message-number)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10490 message-number)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10491 (error "Message not found"))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10492
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10493 ;; mh-e integration based on planner-mode
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10494 (defun org-mhe-get-message-real-folder ()
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10495 "Return the name of the current message real folder, so if you use
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
10496 sequences, it will now work."
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10497 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10498 (let* ((folder
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10499 (if (equal major-mode 'mh-folder-mode)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10500 mh-current-folder
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10501 ;; Refer to the show buffer
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10502 mh-show-folder-buffer))
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
10503 (end-index
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10504 (if (boundp 'mh-index-folder)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10505 (min (length mh-index-folder) (length folder))))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10506 )
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10507 ;; a simple test on mh-index-data does not work, because
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10508 ;; mh-index-data is always nil in a show buffer.
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10509 (if (and (boundp 'mh-index-folder)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10510 (string= mh-index-folder (substring folder 0 end-index)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10511 (if (equal major-mode 'mh-show-mode)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10512 (save-window-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10513 (when (buffer-live-p (get-buffer folder))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10514 (progn
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10515 (pop-to-buffer folder)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10516 (org-mhe-get-message-folder-from-index)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10517 )
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10518 ))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10519 (org-mhe-get-message-folder-from-index)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10520 )
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10521 folder
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10522 )
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10523 )))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10524
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10525 (defun org-mhe-get-message-folder-from-index ()
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
10526 "Returns the name of the message folder in a index folder buffer."
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10527 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10528 (mh-index-previous-folder)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10529 (re-search-forward "^\\(+.*\\)$" nil t)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10530 (message (match-string 1))))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10531
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10532 (defun org-mhe-get-message-folder ()
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
10533 "Return the name of the current message folder. Be careful if you
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
10534 use sequences."
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10535 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10536 (if (equal major-mode 'mh-folder-mode)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10537 mh-current-folder
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10538 ;; Refer to the show buffer
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10539 mh-show-folder-buffer)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10540
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10541 (defun org-mhe-get-message-num ()
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
10542 "Return the number of the current message. Be careful if you
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
10543 use sequences."
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10544 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10545 (if (equal major-mode 'mh-folder-mode)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10546 (mh-get-msg-num nil)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10547 ;; Refer to the show buffer
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10548 (mh-show-buffer-message-number))))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10549
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10550 (defun org-mhe-get-header (header)
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
10551 "Return a header of the message in folder mode. This will create a
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
10552 show buffer for the corresponding message. If you have a more clever
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
10553 idea..."
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10554 (let* ((folder (org-mhe-get-message-folder))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10555 (num (org-mhe-get-message-num))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10556 (buffer (get-buffer-create (concat "show-" folder)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10557 (header-field))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10558 (with-current-buffer buffer
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10559 (mh-display-msg num folder)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10560 (if (equal major-mode 'mh-folder-mode)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10561 (mh-header-display)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10562 (mh-show-header-display))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10563 (set-buffer buffer)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10564 (setq header-field (mh-get-header-field header))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10565 (if (equal major-mode 'mh-folder-mode)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10566 (mh-show)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10567 (mh-show-show))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10568 header-field)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10569
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10570 (defun org-follow-mhe-link (folder article)
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10571 "Follow an MHE link to FOLDER and ARTICLE.
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10572 If ARTICLE is nil FOLDER is shown. If the configuration variable
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10573 `org-mhe-search-all-folders' is t and `mh-searcher' is pick,
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10574 ARTICLE is searched in all folders. Indexed searches (swish++,
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10575 namazu, and others supported by MH-E) will always search in all
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10576 folders."
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
10577 (require 'mh-e)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10578 (require 'mh-search)
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10579 (require 'mh-utils)
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
10580 (mh-find-path)
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10581 (if (not article)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10582 (mh-visit-folder (mh-normalize-folder-name folder))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10583 (setq article (org-add-angle-brackets article))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10584 (mh-search-choose)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10585 (if (equal mh-searcher 'pick)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10586 (progn
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10587 (mh-search folder (list "--message-id" article))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10588 (when (and org-mhe-search-all-folders
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10589 (not (org-mhe-get-message-real-folder)))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10590 (kill-this-buffer)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10591 (mh-search "+" (list "--message-id" article))))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10592 (mh-search "+" article))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10593 (if (org-mhe-get-message-real-folder)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10594 (mh-show-msg 1)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10595 (kill-this-buffer)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
10596 (error "Message not found"))))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10597
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10598 ;; BibTeX links
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10599
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10600 ;; Use the custom search meachnism to construct and use search strings for
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10601 ;; file links to BibTeX database entries.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10602
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10603 (defun org-create-file-search-in-bibtex ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10604 "Create the search string and description for a BibTeX database entry."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10605 (when (eq major-mode 'bibtex-mode)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10606 ;; yes, we want to construct this search string.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10607 ;; Make a good description for this entry, using names, year and the title
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10608 ;; Put it into the `description' variable which is dynamically scoped.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10609 (let ((bibtex-autokey-names 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10610 (bibtex-autokey-names-stretch 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10611 (bibtex-autokey-name-case-convert-function 'identity)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10612 (bibtex-autokey-name-separator " & ")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10613 (bibtex-autokey-additional-names " et al.")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10614 (bibtex-autokey-year-length 4)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10615 (bibtex-autokey-name-year-separator " ")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10616 (bibtex-autokey-titlewords 3)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10617 (bibtex-autokey-titleword-separator " ")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10618 (bibtex-autokey-titleword-case-convert-function 'identity)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10619 (bibtex-autokey-titleword-length 'infty)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10620 (bibtex-autokey-year-title-separator ": "))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10621 (setq description (bibtex-generate-autokey)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10622 ;; Now parse the entry, get the key and return it.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10623 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10624 (bibtex-beginning-of-entry)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10625 (cdr (assoc "=key=" (bibtex-parse-entry))))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10626
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10627 (defun org-execute-file-search-in-bibtex (s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10628 "Find the link search string S as a key for a database entry."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10629 (when (eq major-mode 'bibtex-mode)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10630 ;; Yes, we want to do the search in this file.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10631 ;; We construct a regexp that searches for "@entrytype{" followed by the key
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10632 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10633 (and (re-search-forward (concat "@[a-zA-Z]+[ \t\n]*{[ \t\n]*"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10634 (regexp-quote s) "[ \t\n]*,") nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10635 (goto-char (match-beginning 0)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10636 (if (and (match-beginning 0) (equal current-prefix-arg '(16)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10637 ;; Use double prefix to indicate that any web link should be browsed
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10638 (let ((b (current-buffer)) (p (point)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10639 ;; Restore the window configuration because we just use the web link
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10640 (set-window-configuration org-window-config-before-follow-link)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10641 (save-excursion (set-buffer b) (goto-char p)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10642 (bibtex-url)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10643 (recenter 0)) ; Move entry start to beginning of window
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10644 ;; return t to indicate that the search is done.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10645 t))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10646
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10647 ;; Finally add the functions to the right hooks.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10648 (add-hook 'org-create-file-search-functions 'org-create-file-search-in-bibtex)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10649 (add-hook 'org-execute-file-search-functions 'org-execute-file-search-in-bibtex)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10650
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10651 ;; end of Bibtex link setup
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10652
70010
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10653 (defun org-upgrade-old-links (&optional query-description)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10654 "Transfer old <...> style links to new [[...]] style links.
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10655 With arg query-description, ask at each match for a description text to use
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10656 for this link."
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10657 (interactive (list (y-or-n-p "Would you like to be queried for a description at each link?")))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10658 (save-excursion
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10659 (goto-char (point-min))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
10660 (let ((re (concat "\\([^[]\\)<\\("
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
10661 "\\(" (mapconcat 'identity org-link-types "\\|")
70010
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10662 "\\):"
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10663 "[^" org-non-link-chars "]+\\)>"))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10664 l1 l2 (cnt 0))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10665 (while (re-search-forward re nil t)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10666 (setq cnt (1+ cnt)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10667 l1 (org-match-string-no-properties 2)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10668 l2 (save-match-data (org-link-escape l1)))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10669 (when query-description (setq l1 (read-string "Desc: " l1)))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10670 (if (equal l1 l2)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10671 (replace-match (concat (match-string 1) "[[" l1 "]]") t t)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10672 (replace-match (concat (match-string 1) "[[" l2 "][" l1 "]]") t t)))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10673 (message "%d matches have beed treated" cnt))))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
10674
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10675 (defun org-open-file (path &optional in-emacs line search)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10676 "Open the file at PATH.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10677 First, this expands any special file name abbreviations. Then the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10678 configuration variable `org-file-apps' is checked if it contains an
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10679 entry for this file type, and if yes, the corresponding command is launched.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10680 If no application is found, Emacs simply visits the file.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10681 With optional argument IN-EMACS, Emacs will visit the file.
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10682 Optional LINE specifies a line to go to, optional SEARCH a string to
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10683 search for. If LINE or SEARCH is given, the file will always be
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10684 opened in Emacs.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10685 If the file does not exist, an error is thrown."
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10686 (setq in-emacs (or in-emacs line search))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
10687 (let* ((file (if (equal path "")
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10688 buffer-file-name
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10689 (substitute-in-file-name (expand-file-name path))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10690 (apps (append org-file-apps (org-default-apps)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10691 (remp (and (assq 'remote apps) (org-file-remote-p file)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10692 (dirp (if remp nil (file-directory-p file)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10693 (dfile (downcase file))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10694 (old-buffer (current-buffer))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10695 (old-pos (point))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10696 (old-mode major-mode)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10697 ext cmd)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10698 (if (string-match "^.*\\.\\([a-zA-Z0-9]+\\.gz\\)$" dfile)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10699 (setq ext (match-string 1 dfile))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10700 (if (string-match "^.*\\.\\([a-zA-Z0-9]+\\)$" dfile)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10701 (setq ext (match-string 1 dfile))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10702 (if in-emacs
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10703 (setq cmd 'emacs)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10704 (setq cmd (or (and remp (cdr (assoc 'remote apps)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10705 (and dirp (cdr (assoc 'directory apps)))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10706 (cdr (assoc ext apps))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10707 (cdr (assoc t apps)))))
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10708 (when (eq cmd 'mailcap)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10709 (require 'mailcap)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10710 (mailcap-parse-mailcaps)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10711 (let* ((mime-type (mailcap-extension-to-mime (or ext "")))
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10712 (command (mailcap-mime-info mime-type)))
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10713 (if (stringp command)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10714 (setq cmd command)
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10715 (setq cmd 'emacs))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10716 (if (and (not (eq cmd 'emacs)) ; Emacs has not problems with non-ex files
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10717 (not (file-exists-p file))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10718 (not org-open-non-existing-files))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10719 (error "No such file: %s" file))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10720 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10721 ((and (stringp cmd) (not (string-match "^\\s-*$" cmd)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10722 ;; Remove quotes around the file name - we'll use shell-quote-argument.
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
10723 (if (string-match "['\"]%s['\"]" cmd)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10724 (setq cmd (replace-match "%s" t t cmd)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10725 (setq cmd (format cmd (shell-quote-argument file)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10726 (save-window-excursion
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
10727 (shell-command (concat cmd " &"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10728 ((or (stringp cmd)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10729 (eq cmd 'emacs))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10730 ; (unless (equal (file-truename file) (file-truename (or buffer-file-name "")))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10731 ; (funcall (cdr (assq 'file org-link-frame-setup)) file))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10732 (funcall (cdr (assq 'file org-link-frame-setup)) file)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10733 (if line (goto-line line)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10734 (if search (org-link-search search))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10735 ((consp cmd)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10736 (eval cmd))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10737 (t (funcall (cdr (assq 'file org-link-frame-setup)) file)))
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
10738 (and (org-mode-p) (eq old-mode 'org-mode)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10739 (or (not (equal old-buffer (current-buffer)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10740 (not (equal old-pos (point))))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10741 (org-mark-ring-push old-pos old-buffer))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10742
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10743 (defun org-default-apps ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10744 "Return the default applications for this operating system."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10745 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10746 ((eq system-type 'darwin)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10747 org-file-apps-defaults-macosx)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10748 ((eq system-type 'windows-nt)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10749 org-file-apps-defaults-windowsnt)
64078
ebf5ec3a071e (org-file-apps-defaults-gnu): Renamed from org-file-apps-defaults-linux.
Richard M. Stallman <rms@gnu.org>
parents: 64057
diff changeset
10750 (t org-file-apps-defaults-gnu)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10751
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10752 (defun org-expand-file-name (path)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10753 "Replace special path abbreviations and expand the file name."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10754 (expand-file-name path))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10755
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10756 (defvar ange-ftp-name-format) ; to silence the XEmacs compiler.
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10757 (defun org-file-remote-p (file)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10758 "Test whether FILE specifies a location on a remote system.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10759 Return non-nil if the location is indeed remote.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10760
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10761 For example, the filename \"/user@host:/foo\" specifies a location
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10762 on the system \"/user@host:\"."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10763 (cond ((fboundp 'file-remote-p)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10764 (file-remote-p file))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10765 ((fboundp 'tramp-handle-file-remote-p)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10766 (tramp-handle-file-remote-p file))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10767 ((and (boundp 'ange-ftp-name-format)
73164
4eef6a4c871f (org-file-remote-p): Get regexp from list.
Carsten Dominik <dominik@science.uva.nl>
parents: 73010
diff changeset
10768 (string-match (car ange-ftp-name-format) file))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10769 t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
10770 (t nil)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10771
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10772 (defvar org-insert-link-history nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10773 "Minibuffer history for links inserted with `org-insert-link'.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10774
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10775 (defvar org-stored-links nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10776 "Contains the links stored with `org-store-link'.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10777
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10778 ;;;###autoload
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10779 (defun org-store-link (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10780 "\\<org-mode-map>Store an org-link to the current location.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10781 This link can later be inserted into an org-buffer with
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10782 \\[org-insert-link].
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10783 For some link types, a prefix arg is interpreted:
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10784 For links to usenet articles, arg negates `org-usenet-links-prefer-google'.
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10785 For file links, arg negates `org-context-in-file-links'."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10786 (interactive "P")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10787 (let (link cpltxt desc description search txt (pos (point)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10788 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10789
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10790 ((eq major-mode 'bbdb-mode)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
10791 (setq cpltxt (concat
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10792 "bbdb:"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10793 (or (bbdb-record-name (bbdb-current-record))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10794 (bbdb-record-company (bbdb-current-record))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10795 link (org-make-link cpltxt)))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
10796
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10797 ((eq major-mode 'Info-mode)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
10798 (setq link (org-make-link "info:"
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10799 (file-name-nondirectory Info-current-file)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10800 ":" Info-current-node))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10801 (setq cpltxt (concat (file-name-nondirectory Info-current-file)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10802 ":" Info-current-node)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10803
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10804 ((eq major-mode 'calendar-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10805 (let ((cd (calendar-cursor-to-date)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10806 (setq link
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10807 (format-time-string
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10808 (car org-time-stamp-formats)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10809 (apply 'encode-time
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10810 (list 0 0 0 (nth 1 cd) (nth 0 cd) (nth 2 cd)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10811 nil nil nil))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10812
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10813 ((or (eq major-mode 'vm-summary-mode)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10814 (eq major-mode 'vm-presentation-mode))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10815 (and (eq major-mode 'vm-presentation-mode) (vm-summarize))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10816 (vm-follow-summary-cursor)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10817 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10818 (vm-select-folder-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10819 (let* ((message (car vm-message-pointer))
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10820 (folder buffer-file-name)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10821 (subject (vm-su-subject message))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10822 (author (vm-su-full-name message))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10823 (message-id (vm-su-message-id message)))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10824 (setq message-id (org-remove-angle-brackets message-id))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10825 (setq folder (abbreviate-file-name folder))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10826 (if (string-match (concat "^" (regexp-quote vm-folder-directory))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10827 folder)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10828 (setq folder (replace-match "" t t folder)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10829 (setq cpltxt (concat author " on: " subject))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10830 (setq link (org-make-link "vm:" folder "#" message-id)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10831
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10832 ((eq major-mode 'wl-summary-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10833 (let* ((msgnum (wl-summary-message-number))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10834 (message-id (elmo-message-field wl-summary-buffer-elmo-folder
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10835 msgnum 'message-id))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10836 (wl-message-entity (elmo-msgdb-overview-get-entity
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10837 msgnum (wl-summary-buffer-msgdb)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10838 (author (wl-summary-line-from)) ; FIXME: correct?
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10839 (subject "???")) ; FIXME:
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10840 (setq message-id (org-remove-angle-brackets message-id))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10841 (setq cpltxt (concat author " on: " subject))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10842 (setq link (org-make-link "wl:" wl-summary-buffer-folder-name
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10843 "#" message-id))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10844
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10845 ((or (equal major-mode 'mh-folder-mode)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10846 (equal major-mode 'mh-show-mode))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10847 (let ((from-header (org-mhe-get-header "From:"))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10848 (to-header (org-mhe-get-header "To:"))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10849 (subject (org-mhe-get-header "Subject:")))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10850 (setq cpltxt (concat from-header " on: " subject))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10851 (setq link (org-make-link "mhe:" (org-mhe-get-message-real-folder) "#"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10852 (org-remove-angle-brackets
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10853 (org-mhe-get-header "Message-Id:"))))))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10854
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10855 ((eq major-mode 'rmail-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10856 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10857 (save-restriction
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10858 (rmail-narrow-to-non-pruned-header)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10859 (let ((folder buffer-file-name)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10860 (message-id (mail-fetch-field "message-id"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10861 (author (mail-fetch-field "from"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10862 (subject (mail-fetch-field "subject")))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10863 (setq message-id (org-remove-angle-brackets message-id))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10864 (setq cpltxt (concat author " on: " subject))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10865 (setq link (org-make-link "rmail:" folder "#" message-id))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10866
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10867 ((eq major-mode 'gnus-group-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10868 (let ((group (cond ((fboundp 'gnus-group-group-name) ; depending on Gnus
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10869 (gnus-group-group-name)) ; version
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10870 ((fboundp 'gnus-group-name)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10871 (gnus-group-name))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10872 (t "???"))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10873 (setq cpltxt (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10874 (if (org-xor arg org-usenet-links-prefer-google)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10875 "http://groups.google.com/groups?group="
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10876 "gnus:")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10877 group)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10878 link (org-make-link cpltxt))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10879
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10880 ((memq major-mode '(gnus-summary-mode gnus-article-mode))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10881 (require 'gnus-sum)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
10882 (and (eq major-mode 'gnus-article-mode) (gnus-article-show-summary))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10883 (gnus-summary-beginning-of-article)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10884 (let* ((group (car gnus-article-current))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10885 (article (cdr gnus-article-current))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10886 (header (gnus-summary-article-header article))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10887 (author (mail-header-from header))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10888 (message-id (mail-header-id header))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10889 (date (mail-header-date header))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10890 (subject (gnus-summary-subject-string)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10891 (setq cpltxt (concat author " on: " subject))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10892 (if (org-xor arg org-usenet-links-prefer-google)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10893 (setq link
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10894 (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10895 cpltxt "\n "
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10896 (format "http://groups.google.com/groups?as_umsgid=%s"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10897 (org-fixup-message-id-for-http message-id))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10898 (setq link (org-make-link "gnus:" group
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10899 "#" (number-to-string article))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10900
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10901 ((eq major-mode 'w3-mode)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
10902 (setq cpltxt (url-view-url t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10903 link (org-make-link cpltxt)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10904 ((eq major-mode 'w3m-mode)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
10905 (setq cpltxt (or w3m-current-title w3m-current-url)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
10906 link (org-make-link w3m-current-url)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10907
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10908 ((setq search (run-hook-with-args-until-success
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10909 'org-create-file-search-functions))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10910 (setq link (concat "file:" (abbreviate-file-name buffer-file-name)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10911 "::" search))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
10912 (setq cpltxt (or description link)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10913
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
10914 ((eq major-mode 'image-mode)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
10915 (setq cpltxt (concat "file:"
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
10916 (abbreviate-file-name buffer-file-name))
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
10917 link (org-make-link cpltxt)))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
10918
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10919 ((eq major-mode 'dired-mode)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10920 ;; link to the file in the current line
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10921 (setq cpltxt (concat "file:"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10922 (abbreviate-file-name
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10923 (expand-file-name
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10924 (dired-get-filename nil t))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10925 link (org-make-link cpltxt)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10926
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
10927 ((and buffer-file-name (org-mode-p))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10928 ;; Just link to current headline
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10929 (setq cpltxt (concat "file:"
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10930 (abbreviate-file-name buffer-file-name)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10931 ;; Add a context search string
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10932 (when (org-xor org-context-in-file-links arg)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10933 ;; Check if we are on a target
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10934 (if (save-excursion
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10935 (skip-chars-forward "^>\n\r")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10936 (and (re-search-backward "<<" nil t)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10937 (looking-at "<<\\(.*?\\)>>")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10938 (<= (match-beginning 0) pos)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10939 (>= (match-end 0) pos)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10940 (setq cpltxt (concat cpltxt "::" (match-string 1)))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10941 (setq txt (cond
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10942 ((org-on-heading-p) nil)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10943 ((org-region-active-p)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10944 (buffer-substring (region-beginning) (region-end)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10945 (t (buffer-substring (point-at-bol) (point-at-eol)))))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
10946 (when (or (null txt) (string-match "\\S-" txt))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10947 (setq cpltxt
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10948 (concat cpltxt "::"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10949 (if org-file-link-context-use-camel-case
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10950 (org-make-org-heading-camel txt)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10951 (org-make-org-heading-search-string txt)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10952 desc "NONE"))))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10953 (if (string-match "::\\'" cpltxt)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10954 (setq cpltxt (substring cpltxt 0 -2)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10955 (setq link (org-make-link cpltxt)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10956
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10957 (buffer-file-name
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10958 ;; Just link to this file here.
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
10959 (setq cpltxt (concat "file:"
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
10960 (abbreviate-file-name buffer-file-name)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10961 ;; Add a context string
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
10962 (when (org-xor org-context-in-file-links arg)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10963 (setq txt (if (org-region-active-p)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10964 (buffer-substring (region-beginning) (region-end))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10965 (buffer-substring (point-at-bol) (point-at-eol))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10966 ;; Only use search option if there is some text.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10967 (when (string-match "\\S-" txt)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10968 (setq cpltxt
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10969 (concat cpltxt "::"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10970 (if org-file-link-context-use-camel-case
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10971 (org-make-org-heading-camel txt)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10972 (org-make-org-heading-search-string txt)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
10973 desc "NONE")))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
10974 (setq link (org-make-link cpltxt)))
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
10975
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10976 ((interactive-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10977 (error "Cannot link to a buffer which is not visiting a file"))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
10978
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10979 (t (setq link nil)))
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
10980
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10981 (if (consp link) (setq cpltxt (car link) link (cdr link)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10982 (setq link (or link cpltxt)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10983 desc (or desc cpltxt))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10984 (if (equal desc "NONE") (setq desc nil))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10985
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10986 (if (and (interactive-p) link)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10987 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10988 (setq org-stored-links
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10989 (cons (list cpltxt link desc) org-stored-links))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
10990 (message "Stored: %s" (or cpltxt link)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
10991 (org-make-link-string link desc))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10992
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10993 (defun org-make-org-heading-search-string (&optional string heading)
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
10994 "Make search string for STRING or current headline."
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10995 (interactive)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10996 (let ((s (or string (org-get-heading))))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10997 (unless (and string (not heading))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10998 ;; We are using a headline, clean up garbage in there.
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
10999 (if (string-match org-todo-regexp s)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11000 (setq s (replace-match "" t t s)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11001 (if (string-match ":[a-zA-Z_@0-9:]+:[ \t]*$" s)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11002 (setq s (replace-match "" t t s)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11003 (setq s (org-trim s))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11004 (if (string-match (concat "^\\(" org-quote-string "\\|"
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11005 org-comment-string "\\)") s)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11006 (setq s (replace-match "" t t s)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11007 (while (string-match org-ts-regexp s)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11008 (setq s (replace-match "" t t s))))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11009 (while (string-match "[^a-zA-Z_0-9 \t]+" s)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11010 (setq s (replace-match " " t t s)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11011 (or string (setq s (concat "*" s))) ; Add * for headlines
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11012 (mapconcat 'identity (org-split-string s "[ \t]+") " ")))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11013
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11014 (defun org-make-org-heading-camel (&optional string heading)
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
11015 "Make a CamelCase string for STRING or the current headline."
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11016 (interactive)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11017 (let ((s (or string (org-get-heading))))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11018 (unless (and string (not heading))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11019 ;; We are using a headline, clean up garbage in there.
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11020 (if (string-match org-todo-regexp s)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11021 (setq s (replace-match "" t t s)))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11022 (if (string-match ":[a-zA-Z_@0-9:]+:[ \t]*$" s)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11023 (setq s (replace-match "" t t s)))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11024 (setq s (org-trim s))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11025 (if (string-match (concat "^\\(" org-quote-string "\\|"
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11026 org-comment-string "\\)") s)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11027 (setq s (replace-match "" t t s)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11028 (while (string-match org-ts-regexp s)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11029 (setq s (replace-match "" t t s))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11030 (while (string-match "[^a-zA-Z_ \t]+" s)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11031 (setq s (replace-match " " t t s)))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11032 (or string (setq s (concat "*" s))) ; Add * for headlines
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11033 (mapconcat 'capitalize (org-split-string s "[ \t]+") "")))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
11034
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
11035 (defun org-make-link (&rest strings)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
11036 "Concatenate STRINGS, format resulting string with `org-link-format'."
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
11037 (format org-link-format (apply 'concat strings)))
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
11038
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11039 (defun org-make-link-string (link &optional description)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11040 "Make a link with brackets, consisting of LINK and DESCRIPTION."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11041 (if (eq org-link-style 'plain)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11042 (if (equal description link)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11043 link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11044 (concat description "\n" link))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11045 (when (stringp description)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11046 ;; Remove brackets from the description, they are fatal.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11047 (while (string-match "\\[\\|\\]" description)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11048 (setq description (replace-match "" t t description))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11049 (when (equal (org-link-escape link) description)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11050 ;; No description needed, it is identical
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11051 (setq description nil))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11052 (when (and (not description)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11053 (not (equal link (org-link-escape link))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11054 (setq description link))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11055 (concat "[[" (org-link-escape link) "]"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11056 (if description (concat "[" description "]") "")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11057 "]")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11058
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11059 (defconst org-link-escape-chars '(("[" . "%5B") ("]" . "%5D") (" " . "%20"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11060 "Association list of escapes for some characters problematic in links.")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11061
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11062 (defun org-link-escape (text)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11063 "Escape charaters in TEXT that are problematic for links."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11064 (when text
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11065 (let ((re (mapconcat (lambda (x) (regexp-quote (car x)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11066 org-link-escape-chars "\\|")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11067 (while (string-match re text)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11068 (setq text
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11069 (replace-match
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11070 (cdr (assoc (match-string 0 text) org-link-escape-chars))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11071 t t text)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11072 text)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11073
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11074 (defun org-link-unescape (text)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11075 "Reverse the action of `org-link-escape'."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11076 (when text
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11077 (let ((re (mapconcat (lambda (x) (regexp-quote (cdr x)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11078 org-link-escape-chars "\\|")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11079 (while (string-match re text)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11080 (setq text
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11081 (replace-match
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11082 (car (rassoc (match-string 0 text) org-link-escape-chars))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11083 t t text)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11084 text)))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
11085
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11086 (defun org-xor (a b)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11087 "Exclusive or."
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
11088 (if a (not b) b))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11089
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11090 (defun org-get-header (header)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11091 "Find a header field in the current buffer."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11092 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11093 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11094 (let ((case-fold-search t) s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11095 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11096 ((eq header 'from)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11097 (if (re-search-forward "^From:\\s-+\\(.*\\)" nil t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11098 (setq s (match-string 1)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11099 (while (string-match "\"" s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11100 (setq s (replace-match "" t t s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11101 (if (string-match "[<(].*" s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11102 (setq s (replace-match "" t t s))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11103 ((eq header 'message-id)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11104 (if (re-search-forward "^message-id:\\s-+\\(.*\\)" nil t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11105 (setq s (match-string 1))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11106 ((eq header 'subject)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11107 (if (re-search-forward "^subject:\\s-+\\(.*\\)" nil t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11108 (setq s (match-string 1)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11109 (if (string-match "\\`[ \t\]+" s) (setq s (replace-match "" t t s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11110 (if (string-match "[ \t\]+\\'" s) (setq s (replace-match "" t t s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11111 s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11112
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11113
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11114 (defun org-fixup-message-id-for-http (s)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11115 "Replace special characters in a message id, so it can be used in an http query."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11116 (while (string-match "<" s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11117 (setq s (replace-match "%3C" t t s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11118 (while (string-match ">" s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11119 (setq s (replace-match "%3E" t t s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11120 (while (string-match "@" s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11121 (setq s (replace-match "%40" t t s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11122 s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11123
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11124 (defun org-insert-link (&optional complete-file)
62076
4f2150e05f24 (org-get-entries-from-diary): Remove unused vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 61924
diff changeset
11125 "Insert a link. At the prompt, enter the link.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11126
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11127 Completion can be used to select a link previously stored with
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11128 `org-store-link'. When the empty string is entered (i.e. if you just
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11129 press RET at the prompt), the link defaults to the most recently
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
11130 stored link. As SPC triggers completion in the minibuffer, you need to
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
11131 use M-SPC or C-q SPC to force the insertion of a space character.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11132
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11133 You will also be prompted for a description, and if one is given, it will
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11134 be displayed in the buffer instead of the link.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11135
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11136 If there is already a link at point, this command will allow you to edit link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11137 and description parts.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11138
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11139 With a \\[universal-argument] prefix, prompts for a file to link to. The file name can be
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11140 selected using completion. The path to the file will be relative to
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11141 the current directory if the file is in the current directory or a
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11142 subdirectory. Otherwise, the link will be the absolute path as
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11143 completed in the minibuffer (i.e. normally ~/path/to/file).
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11144
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11145 With two \\[universal-argument] prefixes, enforce an absolute path even if the file
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
11146 is in the current directory or below.
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
11147 With three \\[universal-argument] prefixes, negate the meaning of
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
11148 `org-keep-stored-link-after-insertion'."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11149 (interactive "P")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11150 (let (link desc entry remove file (pos (point)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11151 (cond
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11152 ((save-excursion
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11153 (skip-chars-forward "^]\n\r")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11154 (and (re-search-backward "\\[\\[" nil t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11155 (looking-at org-bracket-link-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11156 (<= (match-beginning 0) pos)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11157 (>= (match-end 0) pos)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11158 ;; We do have a link at point, and we are going to edit it.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11159 (setq remove (list (match-beginning 0) (match-end 0)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11160 (setq desc (if (match-end 3) (org-match-string-no-properties 3)))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
11161 (setq link (read-string "Link: "
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
11162 (org-link-unescape
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11163 (org-match-string-no-properties 1)))))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
11164 ((equal complete-file '(4))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11165 ;; Completing read for file names.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11166 (setq file (read-file-name "File: "))
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
11167 (let ((pwd (file-name-as-directory (expand-file-name ".")))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
11168 (pwd1 (file-name-as-directory (abbreviate-file-name
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
11169 (expand-file-name ".")))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11170 (cond
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11171 ((equal complete-file '(16))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11172 (setq link (org-make-link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11173 "file:"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11174 (abbreviate-file-name (expand-file-name file)))))
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
11175 ((string-match (concat "^" (regexp-quote pwd1) "\\(.+\\)") file)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
11176 (setq link (org-make-link "file:" (match-string 1 file))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11177 ((string-match (concat "^" (regexp-quote pwd) "\\(.+\\)")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11178 (expand-file-name file))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11179 (setq link (org-make-link
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11180 "file:" (match-string 1 (expand-file-name file)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11181 (t (setq link (org-make-link "file:" file))))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11182 (t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11183 ;; Read link, with completion for stored links.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11184 (setq link (org-completing-read
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11185 "Link: " org-stored-links nil nil nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11186 org-insert-link-history
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11187 (or (car (car org-stored-links)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11188 (setq entry (assoc link org-stored-links))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
11189 (if (funcall (if (equal complete-file '(64)) 'not 'identity)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
11190 (not org-keep-stored-link-after-insertion))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11191 (setq org-stored-links (delq (assoc link org-stored-links)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11192 org-stored-links)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11193 (setq link (if entry (nth 1 entry) link)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11194 desc (or desc (nth 2 entry)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11195
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11196 (if (string-match org-plain-link-re link)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11197 ;; URL-like link, normalize the use of angular brackets.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11198 (setq link (org-make-link (org-remove-angle-brackets link))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11199
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11200 ;; Check if we are linking to the current file with a search option
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11201 ;; If yes, simplify the link by using only the search option.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11202 (when (and buffer-file-name
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11203 (string-match "\\<file:\\(.+?\\)::\\([^>]+\\)" link))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11204 (let* ((path (match-string 1 link))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11205 (case-fold-search nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11206 (search (match-string 2 link)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11207 (save-match-data
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11208 (if (equal (file-truename buffer-file-name) (file-truename path))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11209 ;; We are linking to this same file, with a search option
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11210 (setq link search)))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11211
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11212 ;; Check if we can/should use a relative path. If yes, simplify the link
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11213 (when (string-match "\\<file:\\(.*\\)" link)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11214 (let* ((path (match-string 1 link))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11215 (case-fold-search nil))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11216 (cond
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11217 ((eq org-link-file-path-type 'absolute)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11218 (setq path (abbreviate-file-name (expand-file-name path))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11219 ((eq org-link-file-path-type 'noabbrev)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11220 (setq path (expand-file-name path)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11221 ((eq org-link-file-path-type 'relative)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11222 (setq path (file-relative-name path)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11223 (t
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11224 (save-match-data
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
11225 (if (string-match (concat "^" (regexp-quote
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11226 (file-name-as-directory
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11227 (expand-file-name "."))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11228 (expand-file-name path))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11229 ;; We are linking a file with relative path name.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11230 (setq path (substring (expand-file-name path)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11231 (match-end 0)))))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11232 (setq link (concat "file:" path))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11233
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11234 (setq desc (read-string "Description: " desc))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11235 (unless (string-match "\\S-" desc) (setq desc nil))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11236 (if remove (apply 'delete-region remove))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11237 (insert (org-make-link-string link desc))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11238
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11239 (defun org-completing-read (&rest args)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
11240 (let ((minibuffer-local-completion-map
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11241 (copy-keymap minibuffer-local-completion-map)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11242 (define-key minibuffer-local-completion-map " " 'self-insert-command)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11243 (apply 'completing-read args)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11244
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11245 ;;; Hooks for remember.el
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11246
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11247 (defvar org-finish-function nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11248
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11249 ;;;###autoload
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11250 (defun org-remember-annotation ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11251 "Return a link to the current location as an annotation for remember.el.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11252 If you are using Org-mode files as target for data storage with
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11253 remember.el, then the annotations should include a link compatible with the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11254 conventions in Org-mode. This function returns such a link."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11255 (org-store-link nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11256
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11257 (defconst org-remember-help
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11258 "Select a destination location for the note.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11259 UP/DOWN=headline TAB=cycle visibility [Q]uit RET/<left>/<right>=Store
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11260 RET at beg-of-buf -> Append to file as level 2 headline
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11261 RET on headline -> Store as sublevel entry to current headline
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11262 <left>/<right> -> before/after current headline, same headings level")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11263
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11264 ;;;###autoload
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11265 (defun org-remember-apply-template ()
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11266 "Initialize *remember* buffer with template, invoke `org-mode'.
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11267 This function should be placed into `remember-mode-hook' and in fact requires
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11268 to be run from that hook to fucntion properly."
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11269 (if org-remember-templates
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11270
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11271 (let* ((entry (if (= (length org-remember-templates) 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11272 (cdar org-remember-templates)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11273 (message "Select template: %s"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11274 (mapconcat
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11275 (lambda (x) (char-to-string (car x)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11276 org-remember-templates " "))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11277 (cdr (assoc (read-char-exclusive) org-remember-templates))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11278 (tpl (car entry))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11279 (file (if (consp (cdr entry)) (nth 1 entry)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11280 (v-t (format-time-string (car org-time-stamp-formats) (org-current-time)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11281 (v-T (format-time-string (cdr org-time-stamp-formats) (org-current-time)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11282 (v-u (concat "[" (substring v-t 1 -1) "]"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11283 (v-U (concat "[" (substring v-T 1 -1) "]"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11284 (v-a annotation) ; defined in `remember-mode'
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11285 (v-i initial) ; defined in `remember-mode'
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11286 (v-n user-full-name)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11287 )
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11288 (unless tpl (setq tpl "") (message "No template") (ding))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11289 (insert tpl) (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11290 (while (re-search-forward "%\\([tTuTai]\\)" nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11291 (when (and initial (equal (match-string 0) "%i"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11292 (save-match-data
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11293 (let* ((lead (buffer-substring
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11294 (point-at-bol) (match-beginning 0))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11295 (setq v-i (mapconcat 'identity
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11296 (org-split-string initial "\n")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11297 (concat "\n" lead))))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11298 (replace-match
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11299 (or (eval (intern (concat "v-" (match-string 1)))) "")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11300 t t))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11301 (let ((org-startup-folded nil)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11302 (org-startup-with-deadline-check nil))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11303 (org-mode))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11304 (if (and file (string-match "\\S-" file) (not (file-directory-p file)))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
11305 (org-set-local 'org-default-notes-file file))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11306 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11307 (if (re-search-forward "%\\?" nil t) (replace-match "")))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11308 (let ((org-startup-folded nil)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11309 (org-startup-with-deadline-check nil))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11310 (org-mode)))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
11311 (org-set-local 'org-finish-function 'remember-buffer))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11312
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11313 ;;;###autoload
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11314 (defun org-remember-handler ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11315 "Store stuff from remember.el into an org file.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11316 First prompts for an org file. If the user just presses return, the value
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11317 of `org-default-notes-file' is used.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11318 Then the command offers the headings tree of the selected file in order to
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11319 file the text at a specific location.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11320 You can either immediately press RET to get the note appended to the
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
11321 file, or you can use vertical cursor motion and visibility cycling (TAB) to
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11322 find a better place. Then press RET or <left> or <right> in insert the note.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11323
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11324 Key Cursor position Note gets inserted
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11325 -----------------------------------------------------------------------------
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11326 RET buffer-start as level 2 heading at end of file
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11327 RET on headline as sublevel of the heading at cursor
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11328 RET no heading at cursor position, level taken from context.
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11329 Or use prefix arg to specify level manually.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11330 <left> on headline as same level, before current heading
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11331 <right> on headline as same level, after current heading
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11332
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11333 So the fastest way to store the note is to press RET RET to append it to
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11334 the default file. This way your current train of thought is not
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11335 interrupted, in accordance with the principles of remember.el. But with
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11336 little extra effort, you can push it directly to the correct location.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11337
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11338 Before being stored away, the function ensures that the text has a
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11339 headline, i.e. a first line that starts with a \"*\". If not, a headline
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11340 is constructed from the current date and some additional data.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11341
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11342 If the variable `org-adapt-indentation' is non-nil, the entire text is
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11343 also indented so that it starts in the same column as the headline
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11344 \(i.e. after the stars).
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11345
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
11346 See also the variable `org-reverse-note-order'."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11347 (catch 'quit
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11348 (let* ((txt (buffer-substring (point-min) (point-max)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11349 (fastp current-prefix-arg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11350 (file (if fastp org-default-notes-file (org-get-org-file)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11351 (visiting (find-buffer-visiting file))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11352 (org-startup-with-deadline-check nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11353 (org-startup-folded nil)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11354 (org-startup-align-all-tables nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11355 spos level indent reversed)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11356 ;; Modify text so that it becomes a nice subtree which can be inserted
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11357 ;; into an org tree.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11358 (let* ((lines (split-string txt "\n"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11359 first)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11360 ;; remove empty lines at the beginning
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11361 (while (and lines (string-match "^[ \t]*\n" (car lines)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11362 (setq lines (cdr lines)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11363 (setq first (car lines) lines (cdr lines))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11364 (if (string-match "^\\*+" first)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11365 ;; Is already a headline
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11366 (setq indent nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11367 ;; We need to add a headline: Use time and first buffer line
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11368 (setq lines (cons first lines)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11369 first (concat "* " (current-time-string)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11370 " (" (remember-buffer-desc) ")")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11371 indent " "))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11372 (if (and org-adapt-indentation indent)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11373 (setq lines (mapcar (lambda (x) (concat indent x)) lines)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11374 (setq txt (concat first "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11375 (mapconcat 'identity lines "\n"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11376 ;; Find the file
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11377 (if (not visiting)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11378 (find-file-noselect file))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11379 (with-current-buffer (get-file-buffer file)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11380 (save-excursion (and (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11381 (not (re-search-forward "^\\* " nil t))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11382 (insert "\n* Notes\n")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11383 (setq reversed (org-notes-order-reversed-p))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11384 (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11385 (save-restriction
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11386 (widen)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11387 ;; Ask the User for a location
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11388 (setq spos (if fastp 1 (org-get-location
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11389 (current-buffer)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11390 org-remember-help)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11391 (if (not spos) (throw 'quit nil)) ; return nil to show we did
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11392 ; not handle this note
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11393 (goto-char spos)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11394 (cond ((bobp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11395 ;; Put it at the start or end, as level 2
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11396 (save-restriction
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11397 (widen)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11398 (goto-char (if reversed (point-min) (point-max)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11399 (if (not (bolp)) (newline))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11400 (org-paste-subtree 2 txt)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11401 ((and (org-on-heading-p nil) (not current-prefix-arg))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11402 ;; Put it below this entry, at the beg/end of the subtree
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11403 (org-back-to-heading)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
11404 (setq level (funcall outline-level))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11405 (if reversed
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11406 (outline-end-of-heading)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11407 (outline-end-of-subtree))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11408 (if (not (bolp)) (newline))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11409 (beginning-of-line 1)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11410 (org-paste-subtree (org-get-legal-level level 1) txt))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11411 (t
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11412 ;; Put it right there, with automatic level determined by
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11413 ;; org-paste-subtree or from prefix arg
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11414 (org-paste-subtree current-prefix-arg txt)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11415 (when remember-save-after-remembering
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11416 (save-buffer)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11417 (if (not visiting) (kill-buffer (current-buffer)))))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11418 t) ;; return t to indicate that we took care of this note.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11419
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11420 (defun org-get-org-file ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11421 "Read a filename, with default directory `org-directory'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11422 (let ((default (or org-default-notes-file remember-data-file)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11423 (read-file-name (format "File name [%s]: " default)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11424 (file-name-as-directory org-directory)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11425 default)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11426
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11427 (defun org-notes-order-reversed-p ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11428 "Check if the current file should receive notes in reversed order."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11429 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11430 ((not org-reverse-note-order) nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11431 ((eq t org-reverse-note-order) t)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11432 ((not (listp org-reverse-note-order)) nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11433 (t (catch 'exit
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11434 (let ((all org-reverse-note-order)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11435 entry)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11436 (while (setq entry (pop all))
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
11437 (if (string-match (car entry) buffer-file-name)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11438 (throw 'exit (cdr entry))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11439 nil)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11440
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11441 ;;; Tables
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11442
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11443 ;; Watch out: Here we are talking about two different kind of tables.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11444 ;; Most of the code is for the tables created with the Org-mode table editor.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11445 ;; Sometimes, we talk about tables created and edited with the table.el
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11446 ;; Emacs package. We call the former org-type tables, and the latter
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11447 ;; table.el-type tables.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11448
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11449
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11450 (defun org-before-change-function (beg end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11451 "Every change indicates that a table might need an update."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11452 (setq org-table-may-need-update t))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11453
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11454 (defconst org-table-line-regexp "^[ \t]*|"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11455 "Detects an org-type table line.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11456 (defconst org-table-dataline-regexp "^[ \t]*|[^-]"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11457 "Detects an org-type table line.")
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11458 (defconst org-table-auto-recalculate-regexp "^[ \t]*| *# *\\(|\\|$\\)"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11459 "Detects a table line marked for automatic recalculation.")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11460 (defconst org-table-recalculate-regexp "^[ \t]*| *[#*] *\\(|\\|$\\)"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11461 "Detects a table line marked for automatic recalculation.")
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
11462 (defconst org-table-calculate-mark-regexp "^[ \t]*| *[!$^_#*] *\\(|\\|$\\)"
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
11463 "Detects a table line marked for automatic recalculation.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11464 (defconst org-table-hline-regexp "^[ \t]*|-"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11465 "Detects an org-type table hline.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11466 (defconst org-table1-hline-regexp "^[ \t]*\\+-[-+]"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11467 "Detects a table-type table hline.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11468 (defconst org-table-any-line-regexp "^[ \t]*\\(|\\|\\+-[-+]\\)"
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11469 "Detects an org-type or table-type table.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11470 (defconst org-table-border-regexp "^[ \t]*[^| \t]"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11471 "Searching from within a table (any type) this finds the first line
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11472 outside the table.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11473 (defconst org-table-any-border-regexp "^[ \t]*[^|+ \t]"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11474 "Searching from within a table (any type) this finds the first line
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11475 outside the table.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11476
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11477 (defun org-table-create-with-table.el ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11478 "Use the table.el package to insert a new table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11479 If there is already a table at point, convert between Org-mode tables
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11480 and table.el tables."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11481 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11482 (require 'table)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11483 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11484 ((org-at-table.el-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11485 (if (y-or-n-p "Convert table to Org-mode table? ")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11486 (org-table-convert)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11487 ((org-at-table-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11488 (if (y-or-n-p "Convert table to table.el table? ")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11489 (org-table-convert)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11490 (t (call-interactively 'table-insert))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11491
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11492 (defun org-table-create-or-convert-from-region (arg)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11493 "Convert region to table, or create an empty table.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11494 If there is an active region, convert it to a table. If there is no such
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11495 region, create an empty table."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11496 (interactive "P")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11497 (if (org-region-active-p)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11498 (org-table-convert-region (region-beginning) (region-end) arg)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11499 (org-table-create arg)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11500
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11501 (defun org-table-create (&optional size)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11502 "Query for a size and insert a table skeleton.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11503 SIZE is a string Columns x Rows like for example \"3x2\"."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11504 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11505 (unless size
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11506 (setq size (read-string
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11507 (concat "Table size Columns x Rows [e.g. "
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11508 org-table-default-size "]: ")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11509 "" nil org-table-default-size)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11510
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11511 (let* ((pos (point))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11512 (indent (make-string (current-column) ?\ ))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11513 (split (org-split-string size " *x *"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11514 (rows (string-to-number (nth 1 split)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11515 (columns (string-to-number (car split)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11516 (line (concat (apply 'concat indent "|" (make-list columns " |"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11517 "\n")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11518 (if (string-match "^[ \t]*$" (buffer-substring-no-properties
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11519 (point-at-bol) (point)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11520 (beginning-of-line 1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11521 (newline))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
11522 ;; (mapcar (lambda (x) (insert line)) (make-list rows t))
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
11523 (dotimes (i rows) (insert line))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11524 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11525 (if (> rows 1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11526 ;; Insert a hline after the first row.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11527 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11528 (end-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11529 (insert "\n|-")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11530 (goto-char pos)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11531 (org-table-align)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11532
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11533 (defun org-table-convert-region (beg0 end0 &optional nspace)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11534 "Convert region to a table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11535 The region goes from BEG0 to END0, but these borders will be moved
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11536 slightly, to make sure a beginning of line in the first line is included.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11537 When NSPACE is non-nil, it indicates the minimum number of spaces that
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
11538 separate columns (default: just one space)."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11539 (interactive "rP")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11540 (let* ((beg (min beg0 end0))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11541 (end (max beg0 end0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11542 (tabsep t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11543 re)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11544 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11545 (beginning-of-line 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11546 (setq beg (move-marker (make-marker) (point)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11547 (goto-char end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11548 (if (bolp) (backward-char 1) (end-of-line 1))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11549 (setq end (move-marker (make-marker) (point)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11550 ;; Lets see if this is tab-separated material. If every nonempty line
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11551 ;; contains a tab, we will assume that it is tab-separated material
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11552 (if nspace
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11553 (setq tabsep nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11554 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11555 (and (re-search-forward "^[^\n\t]+$" end t) (setq tabsep nil)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11556 (if nspace (setq tabsep nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11557 (if tabsep
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11558 (setq re "^\\|\t")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11559 (setq re (format "^ *\\| *\t *\\| \\{%d,\\}"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11560 (max 1 (prefix-numeric-value nspace)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11561 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11562 (while (re-search-forward re end t)
74029
d187fba051f6 (org-scan-tags): Re-align code fixed.
Carsten Dominik <dominik@science.uva.nl>
parents: 73983
diff changeset
11563 (replace-match "| " t t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11564 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11565 (insert " ")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11566 (org-table-align)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11567
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11568 (defun org-table-import (file arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11569 "Import FILE as a table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11570 The file is assumed to be tab-separated. Such files can be produced by most
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11571 spreadsheet and database applications. If no tabs (at least one per line)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11572 are found, lines will be split on whitespace into fields."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11573 (interactive "f\nP")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11574 (or (bolp) (newline))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11575 (let ((beg (point))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11576 (pm (point-max)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11577 (insert-file-contents file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11578 (org-table-convert-region beg (+ (point) (- (point-max) pm)) arg)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11579
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11580 (defun org-table-export ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11581 "Export table as a tab-separated file.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11582 Such a file can be imported into a spreadsheet program like Excel."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11583 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11584 (let* ((beg (org-table-begin))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11585 (end (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11586 (table (buffer-substring beg end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11587 (file (read-file-name "Export table to: "))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11588 buf)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11589 (unless (or (not (file-exists-p file))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11590 (y-or-n-p (format "Overwrite file %s? " file)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11591 (error "Abort"))
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
11592 (with-current-buffer (find-file-noselect file)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11593 (setq buf (current-buffer))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11594 (erase-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11595 (fundamental-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11596 (insert table)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11597 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11598 (while (re-search-forward "^[ \t]*|[ \t]*" nil t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11599 (replace-match "" t t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11600 (end-of-line 1))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11601 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11602 (while (re-search-forward "[ \t]*|[ \t]*$" nil t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11603 (replace-match "" t t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11604 (goto-char (min (1+ (point)) (point-max))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11605 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11606 (while (re-search-forward "^-[-+]*$" nil t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11607 (replace-match "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11608 (if (looking-at "\n")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11609 (delete-char 1)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11610 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11611 (while (re-search-forward "[ \t]*|[ \t]*" nil t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11612 (replace-match "\t" t t))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11613 (save-buffer))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11614 (kill-buffer buf)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11615
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11616 (defvar org-table-aligned-begin-marker (make-marker)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11617 "Marker at the beginning of the table last aligned.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11618 Used to check if cursor still is in that table, to minimize realignment.")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11619 (defvar org-table-aligned-end-marker (make-marker)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11620 "Marker at the end of the table last aligned.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11621 Used to check if cursor still is in that table, to minimize realignment.")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11622 (defvar org-table-last-alignment nil
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
11623 "List of flags for flushright alignment, from the last re-alignment.
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11624 This is being used to correctly align a single field after TAB or RET.")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11625 (defvar org-table-last-column-widths nil
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
11626 "List of max width of fields in each column.
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11627 This is being used to correctly align a single field after TAB or RET.")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11628
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11629 (defvar org-last-recalc-line nil)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11630 (defconst org-narrow-column-arrow "=>"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11631 "Used as display property in narrowed table columns.")
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11632
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11633 (defun org-table-align ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11634 "Align the table at point by aligning all vertical bars."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11635 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11636 (let* (
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11637 ;; Limits of table
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11638 (beg (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11639 (end (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11640 ;; Current cursor position
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11641 (linepos (org-current-line))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11642 (colpos (org-table-current-column))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11643 (winstart (window-start))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11644 (winstartline (org-current-line (min winstart (1- (point-max)))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
11645 lines (new "") lengths l typenums ty fields maxfields i
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11646 column
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11647 (indent "") cnt frac
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11648 rfmt hfmt
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11649 (spaces '(1 . 1))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11650 (sp1 (car spaces))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11651 (sp2 (cdr spaces))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11652 (rfmt1 (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11653 (make-string sp2 ?\ ) "%%%s%ds" (make-string sp1 ?\ ) "|"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11654 (hfmt1 (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11655 (make-string sp2 ?-) "%s" (make-string sp1 ?-) "+"))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11656 emptystrings links dates narrow fmax f1 len c e)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11657 (untabify beg end)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11658 (remove-text-properties beg end '(org-cwidth t org-dwidth t display t))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11659 ;; Check if we have links or dates
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11660 (goto-char beg)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11661 (setq links (re-search-forward org-bracket-link-regexp end t))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11662 (goto-char beg)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11663 (setq dates (and org-display-custom-times
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11664 (re-search-forward org-ts-regexp-both end t)))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
11665 ;; Make sure the link properties are right
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11666 (when links (goto-char beg) (while (org-activate-bracket-links end)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11667 ;; Make sure the date properties are right
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11668 (when dates (goto-char beg) (while (org-activate-dates end)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11669
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11670 ;; Check if we are narrowing any columns
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11671 (goto-char beg)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11672 (setq narrow (and org-format-transports-properties-p
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11673 (re-search-forward "<[0-9]+>" end t)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11674 ;; Get the rows
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11675 (setq lines (org-split-string
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11676 (buffer-substring beg end) "\n"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11677 ;; Store the indentation of the first line
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11678 (if (string-match "^ *" (car lines))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11679 (setq indent (make-string (- (match-end 0) (match-beginning 0)) ?\ )))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11680 ;; Mark the hlines by setting the corresponding element to nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11681 ;; At the same time, we remove trailing space.
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11682 (setq lines (mapcar (lambda (l)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11683 (if (string-match "^ *|-" l)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11684 nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11685 (if (string-match "[ \t]+$" l)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11686 (substring l 0 (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11687 l)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11688 lines))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11689 ;; Get the data fields by splitting the lines.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11690 (setq fields (mapcar
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11691 (lambda (l)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11692 (org-split-string l " *| *"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11693 (delq nil (copy-sequence lines))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11694 ;; How many fields in the longest line?
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11695 (condition-case nil
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11696 (setq maxfields (apply 'max (mapcar 'length fields)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11697 (error
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11698 (kill-region beg end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11699 (org-table-create org-table-default-size)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11700 (error "Empty table - created default table")))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11701 ;; A list of empty strings to fill any short rows on output
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11702 (setq emptystrings (make-list maxfields ""))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11703 ;; Check for special formatting.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11704 (setq i -1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11705 (while (< (setq i (1+ i)) maxfields) ;; Loop over all columns
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11706 (setq column (mapcar (lambda (x) (or (nth i x) "")) fields))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11707 ;; Check if there is an explicit width specified
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11708 (when (and org-table-limit-column-width narrow)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11709 (setq c column fmax nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11710 (while c
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11711 (setq e (pop c))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11712 (if (and (stringp e) (string-match "^<\\([0-9]+\\)>$" e))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11713 (setq fmax (string-to-number (match-string 1 e)) c nil)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11714 ;; Find fields that are wider than fmax, and shorten them
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11715 (when fmax
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11716 (loop for xx in column do
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11717 (when (and (stringp xx)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11718 (> (org-string-width xx) fmax))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11719 (org-add-props xx nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11720 'help-echo
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
11721 (concat "Clipped table field, use C-c ` to edit. Full value is:\n" (org-no-properties (copy-sequence xx))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11722 (setq f1 (min fmax (or (string-match org-bracket-link-regexp xx) fmax)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11723 (unless (> f1 1)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11724 (error "Cannot narrow field starting with wide link \"%s\""
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11725 (match-string 0 xx)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11726 (add-text-properties f1 (length xx) (list 'org-cwidth t) xx)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
11727 (add-text-properties (- f1 2) f1
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11728 (list 'display org-narrow-column-arrow)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11729 xx)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11730 ;; Get the maximum width for each column
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11731 (push (apply 'max 1 (mapcar 'org-string-width column)) lengths)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11732 ;; Get the fraction of numbers, to decide about alignment of the column
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11733 (setq cnt 0 frac 0.0)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11734 (loop for x in column do
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11735 (if (equal x "")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11736 nil
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11737 (setq frac ( / (+ (* frac cnt)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11738 (if (string-match org-table-number-regexp x) 1 0))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11739 (setq cnt (1+ cnt))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11740 (push (>= frac org-table-number-fraction) typenums))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11741 (setq lengths (nreverse lengths) typenums (nreverse typenums))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11742
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11743 ;; Store the alignment of this table, for later editing of single fields
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11744 (setq org-table-last-alignment typenums
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11745 org-table-last-column-widths lengths)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11746
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11747 ;; With invisible characters, `format' does not get the field width right
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11748 ;; So we need to make these fields wide by hand.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11749 (when links
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11750 (loop for i from 0 upto (1- maxfields) do
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11751 (setq len (nth i lengths))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11752 (loop for j from 0 upto (1- (length fields)) do
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11753 (setq c (nthcdr i (car (nthcdr j fields))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11754 (if (and (stringp (car c))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11755 (string-match org-bracket-link-regexp (car c))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11756 (< (org-string-width (car c)) len))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11757 (setcar c (concat (car c) (make-string (- len (org-string-width (car c))) ?\ )))))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11758
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11759 ;; Compute the formats needed for output of the table
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11760 (setq rfmt (concat indent "|") hfmt (concat indent "|"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11761 (while (setq l (pop lengths))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11762 (setq ty (if (pop typenums) "" "-")) ; number types flushright
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11763 (setq rfmt (concat rfmt (format rfmt1 ty l))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11764 hfmt (concat hfmt (format hfmt1 (make-string l ?-)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11765 (setq rfmt (concat rfmt "\n")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11766 hfmt (concat (substring hfmt 0 -1) "|\n"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11767
62546
153ddc124932 (org-agenda-toggle-time-grid): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 62087
diff changeset
11768 (setq new (mapconcat
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11769 (lambda (l)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11770 (if l (apply 'format rfmt
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11771 (append (pop fields) emptystrings))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11772 hfmt))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11773 lines ""))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11774 ;; Replace the old one
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11775 (delete-region beg end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11776 (move-marker end nil)
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11777 (move-marker org-table-aligned-begin-marker (point))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11778 (insert new)
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11779 (move-marker org-table-aligned-end-marker (point))
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
11780 (when (and orgtbl-mode (not (org-mode-p)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11781 (goto-char org-table-aligned-begin-marker)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11782 (while (org-hide-wide-columns org-table-aligned-end-marker)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11783 ;; Try to move to the old location
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11784 (goto-line winstartline)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11785 (setq winstart (point-at-bol))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11786 (goto-line linepos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11787 (set-window-start (selected-window) winstart 'noforce)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11788 (org-table-goto-column colpos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11789 (setq org-table-may-need-update nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11790 ))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11791
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11792 (defun org-string-width (s)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11793 "Compute width of string, ignoring invisible characters.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11794 This ignores character with invisibility property `org-link', and also
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11795 characters with property `org-cwidth', because these will become invisible
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11796 upon the next fontification round."
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11797 (let (b l)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11798 (when (or (eq t buffer-invisibility-spec)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11799 (assq 'org-link buffer-invisibility-spec))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11800 (while (setq b (text-property-any 0 (length s)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11801 'invisible 'org-link s))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11802 (setq s (concat (substring s 0 b)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11803 (substring s (or (next-single-property-change
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11804 b 'invisible s) (length s)))))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11805 (while (setq b (text-property-any 0 (length s) 'org-cwidth t s))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11806 (setq s (concat (substring s 0 b)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11807 (substring s (or (next-single-property-change
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11808 b 'org-cwidth s) (length s))))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11809 (setq l (string-width s) b -1)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11810 (while (setq b (text-property-any (1+ b) (length s) 'org-dwidth t s))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11811 (setq l (- l (get-text-property b 'org-dwidth-n s))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
11812 l))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11813
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11814 (defun org-table-begin (&optional table-type)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11815 "Find the beginning of the table and return its position.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11816 With argument TABLE-TYPE, go to the beginning of a table.el-type table."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11817 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11818 (if (not (re-search-backward
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11819 (if table-type org-table-any-border-regexp
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11820 org-table-border-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11821 nil t))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
11822 (progn (goto-char (point-min)) (point))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11823 (goto-char (match-beginning 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11824 (beginning-of-line 2)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11825 (point))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11826
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11827 (defun org-table-end (&optional table-type)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11828 "Find the end of the table and return its position.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11829 With argument TABLE-TYPE, go to the end of a table.el-type table."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11830 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11831 (if (not (re-search-forward
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11832 (if table-type org-table-any-border-regexp
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11833 org-table-border-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11834 nil t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11835 (goto-char (point-max))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11836 (goto-char (match-beginning 0)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11837 (point-marker)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11838
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11839 (defun org-table-justify-field-maybe (&optional new)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11840 "Justify the current field, text to left, number to right.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11841 Optional argument NEW may specify text to replace the current field content."
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11842 (cond
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11843 ((and (not new) org-table-may-need-update)) ; Realignment will happen anyway
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11844 ((org-at-table-hline-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11845 ((and (not new)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11846 (or (not (equal (marker-buffer org-table-aligned-begin-marker)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11847 (current-buffer)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11848 (< (point) org-table-aligned-begin-marker)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11849 (>= (point) org-table-aligned-end-marker)))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11850 ;; This is not the same table, force a full re-align
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11851 (setq org-table-may-need-update t))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11852 (t ;; realign the current field, based on previous full realign
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11853 (let* ((pos (point)) s
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11854 (col (org-table-current-column))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
11855 (num (if (> col 0) (nth (1- col) org-table-last-alignment)))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
11856 l f n o e)
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11857 (when (> col 0)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11858 (skip-chars-backward "^|\n")
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
11859 (if (looking-at " *\\([^|\n]*?\\) *\\(|\\|$\\)")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11860 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11861 (setq s (match-string 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11862 o (match-string 0)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
11863 l (max 1 (- (match-end 0) (match-beginning 0) 3))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
11864 e (not (= (match-beginning 2) (match-end 2))))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
11865 (setq f (format (if num " %%%ds %s" " %%-%ds %s")
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
11866 l (if e "|" (setq org-table-may-need-update t) ""))
70161
b9e09a4a2168 (org-mode-map): Catch conflict with old allout.el.
Carsten Dominik <dominik@science.uva.nl>
parents: 70136
diff changeset
11867 n (format f s))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11868 (if new
70161
b9e09a4a2168 (org-mode-map): Catch conflict with old allout.el.
Carsten Dominik <dominik@science.uva.nl>
parents: 70136
diff changeset
11869 (if (<= (length new) l) ;; FIXME: length -> str-width?
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
11870 (setq n (format f new))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11871 (setq n (concat new "|") org-table-may-need-update t)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11872 (or (equal n o)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11873 (let (org-table-may-need-update)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11874 (replace-match n))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11875 (setq org-table-may-need-update t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11876 (goto-char pos))))))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
11877
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11878 (defun org-table-next-field ()
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11879 "Go to the next field in the current table, creating new lines as needed.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11880 Before doing so, re-align the table if necessary."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11881 (interactive)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11882 (org-table-maybe-eval-formula)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11883 (org-table-maybe-recalculate-line)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11884 (if (and org-table-automatic-realign
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11885 org-table-may-need-update)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11886 (org-table-align))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11887 (let ((end (org-table-end)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11888 (if (org-at-table-hline-p)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11889 (end-of-line 1))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11890 (condition-case nil
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11891 (progn
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11892 (re-search-forward "|" end)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11893 (if (looking-at "[ \t]*$")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11894 (re-search-forward "|" end))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11895 (if (and (looking-at "-")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11896 org-table-tab-jumps-over-hlines
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11897 (re-search-forward "^[ \t]*|\\([^-]\\)" end t))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11898 (goto-char (match-beginning 1)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11899 (if (looking-at "-")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11900 (progn
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11901 (beginning-of-line 0)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11902 (org-table-insert-row 'below))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11903 (if (looking-at " ") (forward-char 1))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11904 (error
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
11905 (org-table-insert-row 'below)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11906
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11907 (defun org-table-previous-field ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11908 "Go to the previous field in the table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11909 Before doing so, re-align the table if necessary."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11910 (interactive)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11911 (org-table-justify-field-maybe)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11912 (org-table-maybe-recalculate-line)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11913 (if (and org-table-automatic-realign
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11914 org-table-may-need-update)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11915 (org-table-align))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11916 (if (org-at-table-hline-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11917 (end-of-line 1))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11918 (re-search-backward "|" (org-table-begin))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11919 (re-search-backward "|" (org-table-begin))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11920 (while (looking-at "|\\(-\\|[ \t]*$\\)")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11921 (re-search-backward "|" (org-table-begin)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11922 (if (looking-at "| ?")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11923 (goto-char (match-end 0))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11924
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11925 (defun org-table-next-row ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11926 "Go to the next row (same column) in the current table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11927 Before doing so, re-align the table if necessary."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
11928 (interactive)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11929 (org-table-maybe-eval-formula)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11930 (org-table-maybe-recalculate-line)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11931 (if (or (looking-at "[ \t]*$")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11932 (save-excursion (skip-chars-backward " \t") (bolp)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11933 (newline)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11934 (if (and org-table-automatic-realign
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11935 org-table-may-need-update)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11936 (org-table-align))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11937 (let ((col (org-table-current-column)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11938 (beginning-of-line 2)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11939 (if (or (not (org-at-table-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11940 (org-at-table-hline-p))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11941 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11942 (beginning-of-line 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11943 (org-table-insert-row 'below)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11944 (org-table-goto-column col)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11945 (skip-chars-backward "^|\n\r")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11946 (if (looking-at " ") (forward-char 1)))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11947
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
11948 (defun org-table-copy-down (n)
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
11949 "Copy a field down in the current column.
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
11950 If the field at the cursor is empty, copy into it the content of the nearest
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
11951 non-empty field above. With argument N, use the Nth non-empty field.
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
11952 If the current field is not empty, it is copied down to the next row, and
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
11953 the cursor is moved with it. Therefore, repeating this command causes the
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
11954 column to be filled row-by-row.
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
11955 If the variable `org-table-copy-increment' is non-nil and the field is an
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
11956 integer, it will be incremented while copying."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11957 (interactive "p")
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
11958 (let* ((colpos (org-table-current-column))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11959 (field (org-table-get-field))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11960 (non-empty (string-match "[^ \t]" field))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11961 (beg (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11962 txt)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11963 (org-table-check-inside-data-field)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11964 (if non-empty
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11965 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11966 (setq txt (org-trim field))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11967 (org-table-next-row)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11968 (org-table-blank-field))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11969 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11970 (setq txt
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11971 (catch 'exit
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11972 (while (progn (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11973 (re-search-backward org-table-dataline-regexp
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11974 beg t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11975 (org-table-goto-column colpos t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11976 (if (and (looking-at
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11977 "|[ \t]*\\([^| \t][^|]*?\\)[ \t]*|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11978 (= (setq n (1- n)) 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11979 (throw 'exit (match-string 1))))))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
11980 (if txt
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11981 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11982 (if (and org-table-copy-increment
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11983 (string-match "^[0-9]+$" txt))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
11984 (setq txt (format "%d" (+ (string-to-number txt) 1))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11985 (insert txt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11986 (org-table-maybe-recalculate-line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11987 (org-table-align))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11988 (error "No non-empty field found"))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11989
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11990 (defun org-table-check-inside-data-field ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11991 "Is point inside a table data field?
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
11992 I.e. not on a hline or before the first or after the last column?
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
11993 This actually throws an error, so it aborts the current command."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11994 (if (or (not (org-at-table-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11995 (= (org-table-current-column) 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11996 (org-at-table-hline-p)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
11997 (looking-at "[ \t]*$"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11998 (error "Not in table data field")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11999
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12000 (defvar org-table-clip nil
62076
4f2150e05f24 (org-get-entries-from-diary): Remove unused vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 61924
diff changeset
12001 "Clipboard for table regions.")
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12002
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12003 (defun org-table-blank-field ()
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12004 "Blank the current table field or active region."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12005 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12006 (org-table-check-inside-data-field)
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12007 (if (and (interactive-p) (org-region-active-p))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12008 (let (org-table-clip)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12009 (org-table-cut-region (region-beginning) (region-end)))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12010 (skip-chars-backward "^|")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12011 (backward-char 1)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12012 (if (looking-at "|[^|\n]+")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12013 (let* ((pos (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12014 (match (match-string 0))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12015 (len (org-string-width match)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12016 (replace-match (concat "|" (make-string (1- len) ?\ )))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12017 (goto-char (+ 2 pos))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12018 (substring match 1)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12019
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12020 (defun org-table-get-field (&optional n replace)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12021 "Return the value of the field in column N of current row.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12022 N defaults to current field.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12023 If REPLACE is a string, replace field with this value. The return value
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12024 is always the old value."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12025 (and n (org-table-goto-column n))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12026 (skip-chars-backward "^|\n")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12027 (backward-char 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12028 (if (looking-at "|[^|\r\n]*")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12029 (let* ((pos (match-beginning 0))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12030 (val (buffer-substring (1+ pos) (match-end 0))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12031 (if replace
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12032 (replace-match (concat "|" replace)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12033 (goto-char (min (point-at-eol) (+ 2 pos)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12034 val)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12035 (forward-char 1) ""))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12036
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12037 (defun org-table-current-column ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12038 "Find out which column we are in.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12039 When called interactively, column is also displayed in echo area."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12040 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12041 (if (interactive-p) (org-table-check-inside-data-field))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12042 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12043 (let ((cnt 0) (pos (point)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12044 (beginning-of-line 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12045 (while (search-forward "|" pos t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12046 (setq cnt (1+ cnt)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12047 (if (interactive-p) (message "This is table column %d" cnt))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12048 cnt)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12049
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12050 (defun org-table-goto-column (n &optional on-delim force)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12051 "Move the cursor to the Nth column in the current table line.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12052 With optional argument ON-DELIM, stop with point before the left delimiter
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
12053 of the field.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12054 If there are less than N fields, just go to after the last delimiter.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12055 However, when FORCE is non-nil, create new columns if necessary."
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12056 (interactive "p")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12057 (let ((pos (point-at-eol)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12058 (beginning-of-line 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12059 (when (> n 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12060 (while (and (> (setq n (1- n)) -1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12061 (or (search-forward "|" pos t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12062 (and force
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12063 (progn (end-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12064 (skip-chars-backward "^|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12065 (insert " | "))))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12066 ; (backward-char 2) t)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12067 (when (and force (not (looking-at ".*|")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12068 (save-excursion (end-of-line 1) (insert " | ")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12069 (if on-delim
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12070 (backward-char 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12071 (if (looking-at " ") (forward-char 1))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12072
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12073 (defun org-at-table-p (&optional table-type)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
12074 "Return t if the cursor is inside an org-type table.
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12075 If TABLE-TYPE is non-nil, also check for table.el-type tables."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12076 (if org-enable-table-editor
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12077 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12078 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12079 (looking-at (if table-type org-table-any-line-regexp
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12080 org-table-line-regexp)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12081 nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12082
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12083 (defun org-at-table.el-p ()
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12084 "Return t if and only if we are at a table.el table."
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12085 (and (org-at-table-p 'any)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12086 (save-excursion
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12087 (goto-char (org-table-begin 'any))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12088 (looking-at org-table1-hline-regexp))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12089
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12090 (defun org-table-recognize-table.el ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12091 "If there is a table.el table nearby, recognize it and move into it."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12092 (if org-table-tab-recognizes-table.el
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12093 (if (org-at-table.el-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12094 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12095 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12096 (if (looking-at org-table-dataline-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12097 nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12098 (if (looking-at org-table1-hline-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12099 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12100 (beginning-of-line 2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12101 (if (looking-at org-table-any-border-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12102 (beginning-of-line -1)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12103 (if (re-search-forward "|" (org-table-end t) t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12104 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12105 (require 'table)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12106 (if (table--at-cell-p (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12107 t
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12108 (message "recognizing table.el table...")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12109 (table-recognize-table)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12110 (message "recognizing table.el table...done")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12111 (error "This should not happen..."))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12112 t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12113 nil)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12114 nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12115
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12116 (defun org-at-table-hline-p ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12117 "Return t if the cursor is inside a hline in a table."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12118 (if org-enable-table-editor
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12119 (save-excursion
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12120 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12121 (looking-at org-table-hline-regexp))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12122 nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12123
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12124 (defun org-table-insert-column ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12125 "Insert a new column into the table."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12126 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12127 (if (not (org-at-table-p))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12128 (error "Not at a table"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12129 (org-table-find-dataline)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12130 (let* ((col (max 1 (org-table-current-column)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12131 (beg (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12132 (end (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12133 ;; Current cursor position
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
12134 (linepos (org-current-line))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12135 (colpos col))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12136 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12137 (while (< (point) end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12138 (if (org-at-table-hline-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12139 nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12140 (org-table-goto-column col t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12141 (insert "| "))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12142 (beginning-of-line 2))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12143 (move-marker end nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12144 (goto-line linepos)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12145 (org-table-goto-column colpos)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12146 (org-table-align)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12147 (org-table-modify-formulas 'insert col)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12148
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12149 (defun org-table-find-dataline ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12150 "Find a dataline in the current table, which is needed for column commands."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12151 (if (and (org-at-table-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12152 (not (org-at-table-hline-p)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12153 t
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12154 (let ((col (current-column))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12155 (end (org-table-end)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12156 (move-to-column col)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12157 (while (and (< (point) end)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12158 (or (not (= (current-column) col))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12159 (org-at-table-hline-p)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12160 (beginning-of-line 2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12161 (move-to-column col))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12162 (if (and (org-at-table-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12163 (not (org-at-table-hline-p)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12164 t
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12165 (error
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12166 "Please position cursor in a data line for column operations")))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12167
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12168 (defun org-table-delete-column ()
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
12169 "Delete a column from the table."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12170 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12171 (if (not (org-at-table-p))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12172 (error "Not at a table"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12173 (org-table-find-dataline)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12174 (org-table-check-inside-data-field)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12175 (let* ((col (org-table-current-column))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12176 (beg (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12177 (end (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12178 ;; Current cursor position
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
12179 (linepos (org-current-line))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12180 (colpos col))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12181 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12182 (while (< (point) end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12183 (if (org-at-table-hline-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12184 nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12185 (org-table-goto-column col t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12186 (and (looking-at "|[^|\n]+|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12187 (replace-match "|")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12188 (beginning-of-line 2))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12189 (move-marker end nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12190 (goto-line linepos)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12191 (org-table-goto-column colpos)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12192 (org-table-align)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12193 (org-table-modify-formulas 'remove col)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12194
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12195 (defun org-table-move-column-right ()
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12196 "Move column to the right."
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12197 (interactive)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12198 (org-table-move-column nil))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12199 (defun org-table-move-column-left ()
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12200 "Move column to the left."
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12201 (interactive)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12202 (org-table-move-column 'left))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12203
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12204 (defun org-table-move-column (&optional left)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12205 "Move the current column to the right. With arg LEFT, move to the left."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12206 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12207 (if (not (org-at-table-p))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12208 (error "Not at a table"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12209 (org-table-find-dataline)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12210 (org-table-check-inside-data-field)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12211 (let* ((col (org-table-current-column))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12212 (col1 (if left (1- col) col))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12213 (beg (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12214 (end (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12215 ;; Current cursor position
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
12216 (linepos (org-current-line))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12217 (colpos (if left (1- col) (1+ col))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12218 (if (and left (= col 1))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12219 (error "Cannot move column further left"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12220 (if (and (not left) (looking-at "[^|\n]*|[^|\n]*$"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12221 (error "Cannot move column further right"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12222 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12223 (while (< (point) end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12224 (if (org-at-table-hline-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12225 nil
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12226 (org-table-goto-column col1 t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12227 (and (looking-at "|\\([^|\n]+\\)|\\([^|\n]+\\)|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12228 (replace-match "|\\2|\\1|")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12229 (beginning-of-line 2))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12230 (move-marker end nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12231 (goto-line linepos)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12232 (org-table-goto-column colpos)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12233 (org-table-align)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12234 (org-table-modify-formulas 'swap col (if left (1- col) (1+ col)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12235
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12236 (defun org-table-move-row-down ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
12237 "Move table row down."
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12238 (interactive)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12239 (org-table-move-row nil))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12240 (defun org-table-move-row-up ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
12241 "Move table row up."
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12242 (interactive)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12243 (org-table-move-row 'up))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12244
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12245 (defun org-table-move-row (&optional up)
62076
4f2150e05f24 (org-get-entries-from-diary): Remove unused vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 61924
diff changeset
12246 "Move the current table line down. With arg UP, move it up."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12247 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12248 (let ((col (current-column))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12249 (pos (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12250 (tonew (if up 0 2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12251 txt)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12252 (beginning-of-line tonew)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12253 (if (not (org-at-table-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12254 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12255 (goto-char pos)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12256 (error "Cannot move row further")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12257 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12258 (beginning-of-line 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12259 (setq pos (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12260 (setq txt (buffer-substring (point) (1+ (point-at-eol))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12261 (delete-region (point) (1+ (point-at-eol)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12262 (beginning-of-line tonew)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12263 (insert txt)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12264 (beginning-of-line 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12265 (move-to-column col)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12266
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12267 (defun org-table-insert-row (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12268 "Insert a new row above the current line into the table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12269 With prefix ARG, insert below the current line."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12270 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12271 (if (not (org-at-table-p))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12272 (error "Not at a table"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12273 (let* ((line (buffer-substring (point-at-bol) (point-at-eol)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12274 (new (org-table-clean-line line)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12275 ;; Fix the first field if necessary
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12276 (if (string-match "^[ \t]*| *[#$] *|" line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12277 (setq new (replace-match (match-string 0 line) t t new)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12278 (beginning-of-line (if arg 2 1))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12279 (let (org-table-may-need-update) (insert-before-markers new "\n"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12280 (beginning-of-line 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12281 (re-search-forward "| ?" (point-at-eol) t)
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
12282 (and org-table-may-need-update (org-table-align))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12283
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12284 (defun org-table-insert-hline (&optional arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12285 "Insert a horizontal-line below the current line into the table.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12286 With prefix ARG, insert above the current line."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12287 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12288 (if (not (org-at-table-p))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12289 (error "Not at a table"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12290 (let ((line (org-table-clean-line
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12291 (buffer-substring (point-at-bol) (point-at-eol))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12292 (col (current-column)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12293 (while (string-match "|\\( +\\)|" line)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
12294 (setq line (replace-match
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12295 (concat "+" (make-string (- (match-end 1) (match-beginning 1))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12296 ?-) "|") t t line)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12297 (and (string-match "\\+" line) (setq line (replace-match "|" t t line)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12298 (beginning-of-line (if arg 1 2))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12299 (insert line "\n")
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
12300 (beginning-of-line (if arg 1 -1))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12301 (move-to-column col)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12302
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12303 (defun org-table-clean-line (s)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12304 "Convert a table line S into a string with only \"|\" and space.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12305 In particular, this does handle wide and invisible characters."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12306 (if (string-match "^[ \t]*|-" s)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12307 ;; It's a hline, just map the characters
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
12308 (setq s (mapconcat (lambda (x) (if (member x '(?| ?+)) "|" " ")) s ""))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12309 (while (string-match "|\\([ \t]*?[^ \t\r\n|][^\r\n|]*\\)|" s)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12310 (setq s (replace-match
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12311 (concat "|" (make-string (org-string-width (match-string 1 s))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12312 ?\ ) "|")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12313 t t s)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12314 s))
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
12315
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12316 (defun org-table-kill-row ()
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12317 "Delete the current row or horizontal line from the table."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12318 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12319 (if (not (org-at-table-p))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12320 (error "Not at a table"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12321 (let ((col (current-column)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12322 (kill-region (point-at-bol) (min (1+ (point-at-eol)) (point-max)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12323 (if (not (org-at-table-p)) (beginning-of-line 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12324 (move-to-column col)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12325
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12326 (defun org-table-sort-lines (beg end numericp)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12327 "Sort table lines in region.
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12328 Point and mark define the first and last line to include. Both point and
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12329 mark should be in the column that is used for sorting. For example, to
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12330 sort according to column 3, put the mark in the first line to sort, in
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12331 table column 3. Put point into the last line to be included in the sorting,
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
12332 also in table column 3. The command will prompt for the sorting method
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
12333 \(n for numerical, a for alphanumeric)."
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12334 (interactive "r\nsSorting method: [n]=numeric [a]=alpha: ")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12335 (setq numericp (string-match "[nN]" numericp))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12336 (org-table-align) ;; Just to be safe
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12337 (let* (bcol ecol cmp column lns)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12338 (goto-char beg)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12339 (org-table-check-inside-data-field)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12340 (setq column (org-table-current-column)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12341 beg (move-marker (make-marker) (point-at-bol)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12342 (goto-char end)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12343 (org-table-check-inside-data-field)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12344 (setq end (move-marker (make-marker) (1+ (point-at-eol))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12345 (untabify beg end)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12346 (goto-char beg)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12347 (org-table-goto-column column)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12348 (skip-chars-backward "^|")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12349 (setq bcol (current-column))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12350 (org-table-goto-column (1+ column))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12351 (skip-chars-backward "^|")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12352 (setq ecol (1- (current-column)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12353 (setq cmp (if numericp
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12354 (lambda (a b) (< (car a) (car b)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12355 (lambda (a b) (string< (car a) (car b)))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12356 (setq lns (mapcar (lambda(x) (cons (org-trim (substring x bcol ecol)) x))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
12357 (org-split-string (buffer-substring beg end) "\n")))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12358 (if numericp
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12359 (setq lns (mapcar (lambda(x)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12360 (cons (string-to-number (car x)) (cdr x)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12361 lns)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12362 (delete-region beg end)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12363 (move-marker beg nil)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12364 (move-marker end nil)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12365 (insert (mapconcat 'cdr (setq lns (sort lns cmp)) "\n") "\n")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12366 (message "%d lines sorted %s based on column %d"
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12367 (length lns)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
12368 (if numericp "numerically" "alphabetically") column)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12369
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12370 (defun org-table-cut-region (beg end)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12371 "Copy region in table to the clipboard and blank all relevant fields."
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12372 (interactive "r")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12373 (org-table-copy-region beg end 'cut))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12374
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12375 (defun org-table-copy-region (beg end &optional cut)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12376 "Copy rectangular region in table to clipboard.
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
12377 A special clipboard is used which can only be accessed
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
12378 with `org-table-paste-rectangle'."
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12379 (interactive "rP")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12380 (let* (l01 c01 l02 c02 l1 c1 l2 c2 ic1 ic2
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12381 region cols
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12382 (rpl (if cut " " nil)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12383 (goto-char beg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12384 (org-table-check-inside-data-field)
74723
c6c8c744f694 (org-current-line): Make sure that lines are
Carsten Dominik <dominik@science.uva.nl>
parents: 74294
diff changeset
12385 (setq l01 (org-current-line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12386 c01 (org-table-current-column))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12387 (goto-char end)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12388 (org-table-check-inside-data-field)
74723
c6c8c744f694 (org-current-line): Make sure that lines are
Carsten Dominik <dominik@science.uva.nl>
parents: 74294
diff changeset
12389 (setq l02 (org-current-line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12390 c02 (org-table-current-column))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12391 (setq l1 (min l01 l02) l2 (max l01 l02)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12392 c1 (min c01 c02) c2 (max c01 c02))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12393 (catch 'exit
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12394 (while t
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12395 (catch 'nextline
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12396 (if (> l1 l2) (throw 'exit t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12397 (goto-line l1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12398 (if (org-at-table-hline-p) (throw 'nextline (setq l1 (1+ l1))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12399 (setq cols nil ic1 c1 ic2 c2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12400 (while (< ic1 (1+ ic2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12401 (push (org-table-get-field ic1 rpl) cols)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12402 (setq ic1 (1+ ic1)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12403 (push (nreverse cols) region)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12404 (setq l1 (1+ l1)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12405 (setq org-table-clip (nreverse region))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12406 (if cut (org-table-align))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12407 org-table-clip))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
12408
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12409 (defun org-table-paste-rectangle ()
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
12410 "Paste a rectangular region into a table.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12411 The upper right corner ends up in the current field. All involved fields
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12412 will be overwritten. If the rectangle does not fit into the present table,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12413 the table is enlarged as needed. The process ignores horizontal separator
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12414 lines."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12415 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12416 (unless (and org-table-clip (listp org-table-clip))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12417 (error "First cut/copy a region to paste!"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12418 (org-table-check-inside-data-field)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12419 (let* ((clip org-table-clip)
74723
c6c8c744f694 (org-current-line): Make sure that lines are
Carsten Dominik <dominik@science.uva.nl>
parents: 74294
diff changeset
12420 (line (org-current-line))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12421 (col (org-table-current-column))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12422 (org-enable-table-editor t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12423 (org-table-automatic-realign nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12424 c cols field)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12425 (while (setq cols (pop clip))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12426 (while (org-at-table-hline-p) (beginning-of-line 2))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12427 (if (not (org-at-table-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12428 (progn (end-of-line 0) (org-table-next-field)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12429 (setq c col)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12430 (while (setq field (pop cols))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12431 (org-table-goto-column c nil 'force)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12432 (org-table-get-field nil field)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12433 (setq c (1+ c)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12434 (beginning-of-line 2))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12435 (goto-line line)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12436 (org-table-goto-column col)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12437 (org-table-align)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12438
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12439 (defun org-table-convert ()
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12440 "Convert from `org-mode' table to table.el and back.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12441 Obviously, this only works within limits. When an Org-mode table is
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12442 converted to table.el, all horizontal separator lines get lost, because
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12443 table.el uses these as cell boundaries and has no notion of horizontal lines.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12444 A table.el table can be converted to an Org-mode table only if it does not
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12445 do row or column spanning. Multiline cells will become multiple cells.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12446 Beware, Org-mode does not test if the table can be successfully converted - it
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12447 blindly applies a recipe that works for simple tables."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12448 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12449 (require 'table)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12450 (if (org-at-table.el-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12451 ;; convert to Org-mode table
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12452 (let ((beg (move-marker (make-marker) (org-table-begin t)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12453 (end (move-marker (make-marker) (org-table-end t))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12454 (table-unrecognize-region beg end)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12455 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12456 (while (re-search-forward "^\\([ \t]*\\)\\+-.*\n" end t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12457 (replace-match ""))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12458 (goto-char beg))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12459 (if (org-at-table-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12460 ;; convert to table.el table
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12461 (let ((beg (move-marker (make-marker) (org-table-begin)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12462 (end (move-marker (make-marker) (org-table-end))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12463 ;; first, get rid of all horizontal lines
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12464 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12465 (while (re-search-forward "^\\([ \t]*\\)|-.*\n" end t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12466 (replace-match ""))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12467 ;; insert a hline before first
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12468 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12469 (org-table-insert-hline 'above)
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
12470 (beginning-of-line -1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12471 ;; insert a hline after each line
68171
0164d7cc3832 (org-open-file): Use mailcap for selecting an
Carsten Dominik <dominik@science.uva.nl>
parents: 68031
diff changeset
12472 (while (progn (beginning-of-line 3) (< (point) end))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12473 (org-table-insert-hline))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12474 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12475 (setq end (move-marker end (org-table-end)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12476 ;; replace "+" at beginning and ending of hlines
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12477 (while (re-search-forward "^\\([ \t]*\\)|-" end t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12478 (replace-match "\\1+-"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12479 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12480 (while (re-search-forward "-|[ \t]*$" end t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12481 (replace-match "-+"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12482 (goto-char beg)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12483
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12484 (defun org-table-wrap-region (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12485 "Wrap several fields in a column like a paragraph.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12486 This is useful if you'd like to spread the contents of a field over several
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12487 lines, in order to keep the table compact.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12488
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12489 If there is an active region, and both point and mark are in the same column,
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12490 the text in the column is wrapped to minimum width for the given number of
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12491 lines. Generally, this makes the table more compact. A prefix ARG may be
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12492 used to change the number of desired lines. For example, `C-2 \\[org-table-wrap]'
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
12493 formats the selected text to two lines. If the region was longer than two
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12494 lines, the remaining lines remain empty. A negative prefix argument reduces
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12495 the current number of lines by that amount. The wrapped text is pasted back
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12496 into the table. If you formatted it to more lines than it was before, fields
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12497 further down in the table get overwritten - so you might need to make space in
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12498 the table first.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12499
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12500 If there is no region, the current field is split at the cursor position and
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12501 the text fragment to the right of the cursor is prepended to the field one
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12502 line down.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12503
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12504 If there is no region, but you specify a prefix ARG, the current field gets
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12505 blank, and the content is appended to the field above."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12506 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12507 (org-table-check-inside-data-field)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12508 (if (org-region-active-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12509 ;; There is a region: fill as a paragraph
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12510 (let ((beg (region-beginning))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12511 nlines)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12512 (org-table-cut-region (region-beginning) (region-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12513 (if (> (length (car org-table-clip)) 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12514 (error "Region must be limited to single column"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12515 (setq nlines (if arg
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12516 (if (< arg 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12517 (+ (length org-table-clip) arg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12518 arg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12519 (length org-table-clip)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12520 (setq org-table-clip
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12521 (mapcar 'list (org-wrap (mapconcat 'car org-table-clip " ")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12522 nil nlines)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12523 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12524 (org-table-paste-rectangle))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12525 ;; No region, split the current field at point
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12526 (if arg
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12527 ;; combine with field above
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12528 (let ((s (org-table-blank-field))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12529 (col (org-table-current-column)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12530 (beginning-of-line 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12531 (while (org-at-table-hline-p) (beginning-of-line 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12532 (org-table-goto-column col)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12533 (skip-chars-forward "^|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12534 (skip-chars-backward " ")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12535 (insert " " (org-trim s))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12536 (org-table-align))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12537 ;; split field
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12538 (when (looking-at "\\([^|]+\\)+|")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12539 (let ((s (match-string 1)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12540 (replace-match " |")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12541 (goto-char (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12542 (org-table-next-row)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12543 (insert (org-trim s) " ")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12544 (org-table-align))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12545
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12546 (defvar org-field-marker nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12547
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12548 (defun org-table-edit-field (arg)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12549 "Edit table field in a different window.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12550 This is mainly useful for fields that contain hidden parts.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12551 When called with a \\[universal-argument] prefix, just make the full field visible so that
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12552 it can be edited in place."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12553 (interactive "P")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12554 (if arg
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12555 (let ((b (save-excursion (skip-chars-backward "^|") (point)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12556 (e (save-excursion (skip-chars-forward "^|\r\n") (point))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12557 (remove-text-properties b e '(org-cwidth t invisible t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12558 display t intangible t))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12559 (if (and (boundp 'font-lock-mode) font-lock-mode)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12560 (font-lock-fontify-block)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12561 (let ((pos (move-marker (make-marker) (point)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12562 (field (org-table-get-field))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12563 (cw (current-window-configuration))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12564 p)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12565 (switch-to-buffer-other-window "*Org tmp*")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12566 (erase-buffer)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12567 (insert "#\n# Edit field and finish with C-c C-c\n#\n")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12568 (org-mode)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12569 (goto-char (setq p (point-max)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12570 (insert (org-trim field))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12571 (remove-text-properties p (point-max)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12572 '(invisible t org-cwidth t display t
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12573 intangible t))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12574 (goto-char p)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
12575 (org-set-local 'org-finish-function
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
12576 'org-table-finish-edit-field)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
12577 (org-set-local 'org-window-configuration cw)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
12578 (org-set-local 'org-field-marker pos)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12579 (message "Edit and finish with C-c C-c"))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12580
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12581 (defun org-table-finish-edit-field ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12582 "Finish editing a table data field.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12583 Remove all newline characters, insert the result into the table, realign
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12584 the table and kill the editing buffer."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12585 (let ((pos org-field-marker)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12586 (cw org-window-configuration)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12587 (cb (current-buffer))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12588 text)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12589 (goto-char (point-min))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12590 (while (re-search-forward "^#.*\n?" nil t) (replace-match ""))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12591 (while (re-search-forward "\\([ \t]*\n[ \t]*\\)+" nil t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12592 (replace-match " "))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12593 (setq text (org-trim (buffer-string)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12594 (set-window-configuration cw)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12595 (kill-buffer cb)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12596 (select-window (get-buffer-window (marker-buffer pos)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12597 (goto-char pos)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12598 (move-marker pos nil)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12599 (org-table-check-inside-data-field)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12600 (org-table-get-field nil text)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12601 (org-table-align)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12602 (message "New field value inserted")))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12603
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12604 (defun org-trim (s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12605 "Remove whitespace at beginning and end of string."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12606 (if (string-match "^[ \t]+" s) (setq s (replace-match "" t t s)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12607 (if (string-match "[ \t]+$" s) (setq s (replace-match "" t t s)))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12608 s)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12609
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12610 (defun org-wrap (string &optional width lines)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
12611 "Wrap string to either a number of lines, or a width in characters.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12612 If WIDTH is non-nil, the string is wrapped to that width, however many lines
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
12613 that costs. If there is a word longer than WIDTH, the text is actually
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12614 wrapped to the length of that word.
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
12615 IF WIDTH is nil and LINES is non-nil, the string is forced into at most that
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12616 many lines, whatever width that takes.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12617 The return value is a list of lines, without newlines at the end."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12618 (let* ((words (org-split-string string "[ \t\n]+"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12619 (maxword (apply 'max (mapcar 'org-string-width words)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12620 w ll)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12621 (cond (width
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12622 (org-do-wrap words (max maxword width)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12623 (lines
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12624 (setq w maxword)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12625 (setq ll (org-do-wrap words maxword))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12626 (if (<= (length ll) lines)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12627 ll
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12628 (setq ll words)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12629 (while (> (length ll) lines)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12630 (setq w (1+ w))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12631 (setq ll (org-do-wrap words w)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12632 ll))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12633 (t (error "Cannot wrap this")))))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
12634
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12635
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12636 (defun org-do-wrap (words width)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
12637 "Create lines of maximum width WIDTH (in characters) from word list WORDS."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12638 (let (lines line)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12639 (while words
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12640 (setq line (pop words))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12641 (while (and words (< (+ (length line) (length (car words))) width))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12642 (setq line (concat line " " (pop words))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12643 (setq lines (push line lines)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12644 (nreverse lines)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12645
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12646 (defun org-split-string (string &optional separators)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12647 "Splits STRING into substrings at SEPARATORS.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12648 No empty strings are returned if there are matches at the beginning
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12649 and end of string."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12650 (let ((rexp (or separators "[ \f\t\n\r\v]+"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12651 (start 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12652 notfirst
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12653 (list nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12654 (while (and (string-match rexp string
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12655 (if (and notfirst
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12656 (= start (match-beginning 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12657 (< start (length string)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12658 (1+ start) start))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12659 (< (match-beginning 0) (length string)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12660 (setq notfirst t)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12661 (or (eq (match-beginning 0) 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12662 (and (eq (match-beginning 0) (match-end 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12663 (eq (match-beginning 0) start))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12664 (setq list
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12665 (cons (substring string start (match-beginning 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12666 list)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12667 (setq start (match-end 0)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12668 (or (eq start (length string))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12669 (setq list
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12670 (cons (substring string start)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12671 list)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12672 (nreverse list)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12673
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12674 (defun org-table-map-tables (function)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
12675 "Apply FUNCTION to the start of all tables in the buffer."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12676 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12677 (save-restriction
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12678 (widen)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12679 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12680 (while (re-search-forward org-table-any-line-regexp nil t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12681 (message "Mapping tables: %d%%" (/ (* 100.0 (point)) (buffer-size)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12682 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12683 (if (looking-at org-table-line-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12684 (save-excursion (funcall function)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12685 (re-search-forward org-table-any-border-regexp nil 1))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12686 (message "Mapping tables: done"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12687
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12688 (defun org-table-sum (&optional beg end nlast)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12689 "Sum numbers in region of current table column.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12690 The result will be displayed in the echo area, and will be available
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12691 as kill to be inserted with \\[yank].
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12692
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12693 If there is an active region, it is interpreted as a rectangle and all
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12694 numbers in that rectangle will be summed. If there is no active
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12695 region and point is located in a table column, sum all numbers in that
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12696 column.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12697
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
12698 If at least one number looks like a time HH:MM or HH:MM:SS, all other
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12699 numbers are assumed to be times as well (in decimal hours) and the
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12700 numbers are added as such.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12701
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12702 If NLAST is a number, only the NLAST fields will actually be summed."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12703 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12704 (save-excursion
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12705 (let (col (timecnt 0) diff h m s org-table-clip)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12706 (cond
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12707 ((and beg end)) ; beg and end given explicitly
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12708 ((org-region-active-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12709 (setq beg (region-beginning) end (region-end)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12710 (t
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12711 (setq col (org-table-current-column))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12712 (goto-char (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12713 (unless (re-search-forward "^[ \t]*|[^-]" nil t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12714 (error "No table data"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12715 (org-table-goto-column col)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12716 ;not needed? (skip-chars-backward "^|")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12717 (setq beg (point))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12718 (goto-char (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12719 (unless (re-search-backward "^[ \t]*|[^-]" nil t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12720 (error "No table data"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12721 (org-table-goto-column col)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12722 ;not needed? (skip-chars-forward "^|")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12723 (setq end (point))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12724 (let* ((items (apply 'append (org-table-copy-region beg end)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12725 (items1 (cond ((not nlast) items)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12726 ((>= nlast (length items)) items)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12727 (t (setq items (reverse items))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12728 (setcdr (nthcdr (1- nlast) items) nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12729 (nreverse items))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12730 (numbers (delq nil (mapcar 'org-table-get-number-for-summing
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12731 items1)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12732 (res (apply '+ numbers))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12733 (sres (if (= timecnt 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12734 (format "%g" res)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12735 (setq diff (* 3600 res)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12736 h (floor (/ diff 3600)) diff (mod diff 3600)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12737 m (floor (/ diff 60)) diff (mod diff 60)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12738 s diff)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12739 (format "%d:%02d:%02d" h m s))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12740 (kill-new sres)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12741 (if (interactive-p)
65705
7d20cbe1d616 (org-table-sum): Fix format string.
Juanma Barranquero <lekktu@gmail.com>
parents: 65654
diff changeset
12742 (message "%s"
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
12743 (substitute-command-keys
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
12744 (format "Sum of %d items: %-20s (\\[yank] will insert result into buffer)"
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
12745 (length numbers) sres))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12746 sres))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12747
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12748 (defun org-table-get-number-for-summing (s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12749 (let (n)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12750 (if (string-match "^ *|? *" s)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12751 (setq s (replace-match "" nil nil s)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12752 (if (string-match " *|? *$" s)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12753 (setq s (replace-match "" nil nil s)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12754 (setq n (string-to-number s))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12755 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12756 ((and (string-match "0" s)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12757 (string-match "\\`[-+ \t0.edED]+\\'" s)) 0)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12758 ((string-match "\\`[ \t]+\\'" s) nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12759 ((string-match "\\`\\([0-9]+\\):\\([0-9]+\\)\\(:\\([0-9]+\\)\\)?\\'" s)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12760 (let ((h (string-to-number (or (match-string 1 s) "0")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12761 (m (string-to-number (or (match-string 2 s) "0")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12762 (s (string-to-number (or (match-string 4 s) "0"))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12763 (if (boundp 'timecnt) (setq timecnt (1+ timecnt)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12764 (* 1.0 (+ h (/ m 60.0) (/ s 3600.0)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12765 ((equal n 0) nil)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12766 (t n))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12767
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12768 (defun org-table-get-vertical-vector (desc &optional tbeg col)
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
12769 "Get a calc vector from a column, accorting to descriptor DESC.
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
12770 Optional arguments TBEG and COL can give the beginning of the table and
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
12771 the current column, to avoid unnecessary parsing."
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12772 (save-excursion
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12773 (or tbeg (setq tbeg (org-table-begin)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12774 (or col (setq col (org-table-current-column)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12775 (let (beg end nn n n1 n2 l (thisline (org-current-line)) hline-list)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12776 (cond
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12777 ((string-match "\\(I+\\)\\(-\\(I+\\)\\)?" desc)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12778 (setq n1 (- (match-end 1) (match-beginning 1)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12779 (if (match-beginning 3)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12780 (setq n2 (- (match-end 2) (match-beginning 3))))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12781 (setq n (if n2 (max n1 n2) n1))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12782 (setq n1 (if n2 (min n1 n2)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12783 (setq nn n)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12784 (while (and (> nn 0)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12785 (re-search-backward org-table-hline-regexp tbeg t))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12786 (push (org-current-line) hline-list)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12787 (setq nn (1- nn)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12788 (setq hline-list (nreverse hline-list))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12789 (goto-line (nth (1- n) hline-list))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12790 (when (re-search-forward org-table-dataline-regexp)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12791 (org-table-goto-column col)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12792 (setq beg (point)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12793 (goto-line (if n1 (nth (1- n1) hline-list) thisline))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12794 (when (re-search-backward org-table-dataline-regexp)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12795 (org-table-goto-column col)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12796 (setq end (point)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12797 (setq l (apply 'append (org-table-copy-region beg end)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12798 (concat "[" (mapconcat (lambda (x) (setq x (org-trim x))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12799 (if (equal x "") "0" x))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12800 l ",") "]"))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12801 ((string-match "\\([0-9]+\\)-\\([0-9]+\\)" desc)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12802 (setq n1 (string-to-number (match-string 1 desc))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12803 n2 (string-to-number (match-string 2 desc)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12804 (beginning-of-line 1)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12805 (save-excursion
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12806 (when (re-search-backward org-table-dataline-regexp tbeg t n1)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12807 (org-table-goto-column col)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12808 (setq beg (point))))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12809 (when (re-search-backward org-table-dataline-regexp tbeg t n2)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12810 (org-table-goto-column col)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12811 (setq end (point)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12812 (setq l (apply 'append (org-table-copy-region beg end)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12813 (concat "[" (mapconcat
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12814 (lambda (x) (setq x (org-trim x))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12815 (if (equal x "") "0" x))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12816 l ",") "]"))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12817 ((string-match "\\([0-9]+\\)" desc)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12818 (beginning-of-line 1)
65264
a95981ee377b (calc-embedded-close-formula, calc-embedded-open-formula,
Juanma Barranquero <lekktu@gmail.com>
parents: 65243
diff changeset
12819 (when (re-search-backward org-table-dataline-regexp tbeg t
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12820 (string-to-number (match-string 0 desc)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12821 (org-table-goto-column col)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12822 (org-trim (org-table-get-field))))))))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12823
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12824 (defvar org-table-formula-history nil)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12825
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12826 (defvar org-table-column-names nil
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12827 "Alist with column names, derived from the `!' line.")
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12828 (defvar org-table-column-name-regexp nil
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12829 "Regular expression matching the current column names.")
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12830 (defvar org-table-local-parameters nil
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12831 "Alist with parameter names, derived from the `$' line.")
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12832 (defvar org-table-named-field-locations nil
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12833 "Alist with locations of named fields.")
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12834
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12835 (defun org-table-get-formula (&optional equation named)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12836 "Read a formula from the minibuffer, offer stored formula as default."
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12837 (let* ((name (car (rassoc (list (org-current-line)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12838 (org-table-current-column))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12839 org-table-named-field-locations)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12840 (scol (if named
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12841 (if name name
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12842 (error "Not in a named field"))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12843 (int-to-string (org-table-current-column))))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12844 (dummy (and name (not named)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12845 (not (y-or-n-p "Replace named-field formula with column equation? " ))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12846 (error "Abort")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12847 (org-table-may-need-update nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12848 (stored-list (org-table-get-stored-formulas))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12849 (stored (cdr (assoc scol stored-list)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12850 (eq (cond
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
12851 ((and stored equation (string-match "^ *=? *$" equation))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12852 stored)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12853 ((stringp equation)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12854 equation)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12855 (t (read-string
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12856 (format "%s formula $%s=" (if named "Field" "Column") scol)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12857 (or stored "") 'org-table-formula-history
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12858 ;stored
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12859 ))))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12860 mustsave)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12861 (when (not (string-match "\\S-" eq))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12862 ;; remove formula
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12863 (setq stored-list (delq (assoc scol stored-list) stored-list))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12864 (org-table-store-formulas stored-list)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12865 (error "Formula removed"))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12866 (if (string-match "^ *=?" eq) (setq eq (replace-match "" t t eq)))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12867 (if (string-match " *$" eq) (setq eq (replace-match "" t t eq)))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12868 (if (and name (not named))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12869 ;; We set the column equation, delete the named one.
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12870 (setq stored-list (delq (assoc name stored-list) stored-list)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12871 mustsave t))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12872 (if stored
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12873 (setcdr (assoc scol stored-list) eq)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12874 (setq stored-list (cons (cons scol eq) stored-list)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12875 (if (or mustsave (not (equal stored eq)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12876 (org-table-store-formulas stored-list))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12877 eq))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12878
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12879 (defun org-table-store-formulas (alist)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12880 "Store the list of formulas below the current table."
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12881 (setq alist (sort alist (lambda (a b) (string< (car a) (car b)))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12882 (save-excursion
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12883 (goto-char (org-table-end))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12884 (if (looking-at "\\([ \t]*\n\\)*#\\+TBLFM:.*\n?")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12885 (delete-region (point) (match-end 0)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12886 (insert "#+TBLFM: "
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12887 (mapconcat (lambda (x)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12888 (concat "$" (car x) "=" (cdr x)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12889 alist "::")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12890 "\n")))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12891
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12892 (defun org-table-get-stored-formulas ()
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
12893 "Return an alist with the stored formulas directly after current table."
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12894 (interactive)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12895 (let (scol eq eq-alist strings string seen)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12896 (save-excursion
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12897 (goto-char (org-table-end))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12898 (when (looking-at "\\([ \t]*\n\\)*#\\+TBLFM: *\\(.*\\)")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12899 (setq strings (org-split-string (match-string 2) " *:: *"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12900 (while (setq string (pop strings))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12901 (when (string-match "\\$\\([a-zA-Z0-9]+\\) *= *\\(.*[^ \t]\\)" string)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12902 (setq scol (match-string 1 string)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12903 eq (match-string 2 string)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12904 eq-alist (cons (cons scol eq) eq-alist))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12905 (if (member scol seen)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12906 (error "Double definition `$%s=' in TBLFM line, please fix by hand" scol)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12907 (push scol seen))))))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12908 (nreverse eq-alist)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12909
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12910 (defun org-table-modify-formulas (action &rest columns)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12911 "Modify the formulas stored below the current table.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12912 ACTION can be `remove', `insert', `swap'. For `swap', two column numbers are
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
12913 expected, for the other actions only a single column number is needed."
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12914 (let ((list (org-table-get-stored-formulas))
65264
a95981ee377b (calc-embedded-close-formula, calc-embedded-open-formula,
Juanma Barranquero <lekktu@gmail.com>
parents: 65243
diff changeset
12915 (nmax (length (org-split-string
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12916 (buffer-substring (point-at-bol) (point-at-eol))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12917 "|")))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12918 col col1 col2 scol si sc1 sc2)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12919 (cond
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12920 ((null list)) ; No action needed if there are no stored formulas
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12921 ((eq action 'remove)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12922 (setq col (car columns)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12923 scol (int-to-string col))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12924 (org-table-replace-in-formulas list scol "INVALID")
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12925 (if (assoc scol list) (setq list (delq (assoc scol list) list)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12926 (loop for i from (1+ col) upto nmax by 1 do
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12927 (setq si (int-to-string i))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12928 (org-table-replace-in-formulas list si (int-to-string (1- i)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12929 (if (assoc si list) (setcar (assoc si list)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12930 (int-to-string (1- i))))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12931 ((eq action 'insert)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12932 (setq col (car columns))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12933 (loop for i from nmax downto col by 1 do
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12934 (setq si (int-to-string i))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12935 (org-table-replace-in-formulas list si (int-to-string (1+ i)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12936 (if (assoc si list) (setcar (assoc si list)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12937 (int-to-string (1+ i))))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12938 ((eq action 'swap)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12939 (setq col1 (car columns) col2 (nth 1 columns)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12940 sc1 (int-to-string col1) sc2 (int-to-string col2))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12941 ;; Hopefully, ZqZtZ will never be a name in a table
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12942 (org-table-replace-in-formulas list sc1 "ZqZtZ")
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12943 (org-table-replace-in-formulas list sc2 sc1)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12944 (org-table-replace-in-formulas list "ZqZtZ" sc2)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12945 (if (assoc sc1 list) (setcar (assoc sc1 list) "ZqZtZ"))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12946 (if (assoc sc2 list) (setcar (assoc sc2 list) sc1))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
12947 (if (assoc "ZqZtZ" list) (setcar (assoc "ZqZtZ" list) sc2)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12948 (t (error "Invalid action in `org-table-modify-formulas'")))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12949 (if list (org-table-store-formulas list))))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12950
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12951 (defun org-table-replace-in-formulas (list s1 s2)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12952 (let (elt re s)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12953 (setq s1 (concat "$" (if (integerp s1) (int-to-string s1) s1))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12954 s2 (concat "$" (if (integerp s2) (int-to-string s2) s2))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12955 re (concat (regexp-quote s1) "\\>"))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12956 (while (setq elt (pop list))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12957 (setq s (cdr elt))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12958 (while (string-match re s)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12959 (setq s (replace-match s2 t t s)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12960 (setcdr elt s))))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12961
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12962 (defun org-table-get-specials ()
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
12963 "Get the column names and local parameters for this table."
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12964 (save-excursion
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12965 (let ((beg (org-table-begin)) (end (org-table-end))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12966 names name fields fields1 field cnt c v line col)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12967 (setq org-table-column-names nil
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12968 org-table-local-parameters nil
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12969 org-table-named-field-locations nil)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12970 (goto-char beg)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12971 (when (re-search-forward "^[ \t]*| *! *\\(|.*\\)" end t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12972 (setq names (org-split-string (match-string 1) " *| *")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12973 cnt 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12974 (while (setq name (pop names))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12975 (setq cnt (1+ cnt))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12976 (if (string-match "^[a-zA-Z][a-zA-Z0-9]*$" name)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12977 (push (cons name (int-to-string cnt)) org-table-column-names))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12978 (setq org-table-column-names (nreverse org-table-column-names))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12979 (setq org-table-column-name-regexp
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12980 (concat "\\$\\(" (mapconcat 'car org-table-column-names "\\|") "\\)\\>"))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12981 (goto-char beg)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
12982 (while (re-search-forward "^[ \t]*| *\\$ *\\(|.*\\)" end t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12983 (setq fields (org-split-string (match-string 1) " *| *"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12984 (while (setq field (pop fields))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12985 (if (string-match "^\\([a-zA-Z][a-zA-Z0-9]*\\|%\\) *= *\\(.*\\)" field)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12986 (push (cons (match-string 1 field) (match-string 2 field))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12987 org-table-local-parameters))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12988 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12989 (while (re-search-forward "^[ \t]*| *\\([_^]\\) *\\(|.*\\)" end t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12990 (setq c (match-string 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12991 fields (org-split-string (match-string 2) " *| *"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12992 (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12993 (beginning-of-line (if (equal c "_") 2 0))
65264
a95981ee377b (calc-embedded-close-formula, calc-embedded-open-formula,
Juanma Barranquero <lekktu@gmail.com>
parents: 65243
diff changeset
12994 (setq line (org-current-line) col 1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12995 (and (looking-at "^[ \t]*|[^|]*\\(|.*\\)")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
12996 (setq fields1 (org-split-string (match-string 1) " *| *"))))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12997 (while (and fields1 (setq field (pop fields)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12998 (setq v (pop fields1) col (1+ col))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
12999 (when (and (stringp field) (stringp v)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13000 (string-match "^[a-zA-Z][a-zA-Z0-9]*$" field))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13001 (push (cons field v) org-table-local-parameters)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13002 (push (list field line col) org-table-named-field-locations)))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13003
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13004 (defun org-this-word ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13005 ;; Get the current word
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13006 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13007 (let ((beg (progn (skip-chars-backward "^ \t\n") (point)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13008 (end (progn (skip-chars-forward "^ \t\n") (point))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13009 (buffer-substring-no-properties beg end))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13010
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13011 (defun org-table-maybe-eval-formula ()
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13012 "Check if the current field starts with \"=\" or \":=\".
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13013 If yes, store the formula and apply it."
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13014 ;; We already know we are in a table. Get field will only return a formula
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13015 ;; when appropriate. It might return a separator line, but no problem.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13016 (when org-table-formula-evaluate-inline
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13017 (let* ((field (org-trim (or (org-table-get-field) "")))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13018 named eq)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13019 (when (string-match "^:?=\\(.*\\)" field)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13020 (setq named (equal (string-to-char field) ?:)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13021 eq (match-string 1 field))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13022 (if (fboundp 'calc-eval)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13023 (org-table-eval-formula (if named '(4) nil) eq))))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13024
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13025 (defvar org-recalc-commands nil
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
13026 "List of commands triggering the recalculation of a line.
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13027 Will be filled automatically during use.")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13028
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13029 (defvar org-recalc-marks
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13030 '((" " . "Unmarked: no special line, no automatic recalculation")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13031 ("#" . "Automatically recalculate this line upon TAB, RET, and C-c C-c in the line")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13032 ("*" . "Recalculate only when entire table is recalculated with `C-u C-c *'")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13033 ("!" . "Column name definition line. Reference in formula as $name.")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13034 ("$" . "Parameter definition line name=value. Reference in formula as $name.")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13035 ("_" . "Names for values in row below this one.")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13036 ("^" . "Names for values in row above this one.")))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13037
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13038 (defun org-table-rotate-recalc-marks (&optional newchar)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13039 "Rotate the recalculation mark in the first column.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13040 If in any row, the first field is not consistent with a mark,
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
13041 insert a new column for the markers.
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13042 When there is an active region, change all the lines in the region,
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13043 after prompting for the marking character.
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
13044 After each change, a message will be displayed indicating the meaning
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13045 of the new mark."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13046 (interactive)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13047 (unless (org-at-table-p) (error "Not at a table"))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13048 (let* ((marks (append (mapcar 'car org-recalc-marks) '(" ")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13049 (beg (org-table-begin))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13050 (end (org-table-end))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13051 (l (org-current-line))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13052 (l1 (if (org-region-active-p) (org-current-line (region-beginning))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13053 (l2 (if (org-region-active-p) (org-current-line (region-end))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13054 (have-col
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13055 (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13056 (goto-char beg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13057 (not (re-search-forward "^[ \t]*|[^-|][^|]*[^#!$*_^| \t][^|]*|" end t))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13058 (col (org-table-current-column))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13059 (forcenew (car (assoc newchar org-recalc-marks)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13060 epos new)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13061 (when l1
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13062 (message "Change region to what mark? Type # * ! $ or SPC: ")
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13063 (setq newchar (char-to-string (read-char-exclusive))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13064 forcenew (car (assoc newchar org-recalc-marks))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13065 (if (and newchar (not forcenew))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13066 (error "Invalid NEWCHAR `%s' in `org-table-rotate-recalc-marks'"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13067 newchar))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13068 (if l1 (goto-line l1))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13069 (save-excursion
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13070 (beginning-of-line 1)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13071 (unless (looking-at org-table-dataline-regexp)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13072 (error "Not at a table data line")))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13073 (unless have-col
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13074 (org-table-goto-column 1)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13075 (org-table-insert-column)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13076 (org-table-goto-column (1+ col)))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13077 (setq epos (point-at-eol))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13078 (save-excursion
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13079 (beginning-of-line 1)
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
13080 (org-table-get-field
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13081 1 (if (looking-at "^[ \t]*| *\\([#!$*^_ ]\\) *|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13082 (concat " "
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13083 (setq new (or forcenew
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13084 (cadr (member (match-string 1) marks))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13085 " ")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13086 " # ")))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13087 (if (and l1 l2)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13088 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13089 (goto-line l1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13090 (while (progn (beginning-of-line 2) (not (= (org-current-line) l2)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13091 (and (looking-at org-table-dataline-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13092 (org-table-get-field 1 (concat " " new " "))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13093 (goto-line l1)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13094 (if (not (= epos (point-at-eol))) (org-table-align))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13095 (goto-line l)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13096 (and (interactive-p) (message (cdr (assoc new org-recalc-marks))))))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13097
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13098 (defun org-table-maybe-recalculate-line ()
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13099 "Recompute the current line if marked for it, and if we haven't just done it."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13100 (interactive)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13101 (and org-table-allow-automatic-line-recalculation
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13102 (not (and (memq last-command org-recalc-commands)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13103 (equal org-last-recalc-line (org-current-line))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13104 (save-excursion (beginning-of-line 1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13105 (looking-at org-table-auto-recalculate-regexp))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13106 (fboundp 'calc-eval)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13107 (org-table-recalculate) t))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13108
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13109 (defvar org-table-formula-debug nil
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13110 "Non-nil means, debug table formulas.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13111 When nil, simply write \"#ERROR\" in corrupted fields.")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13112
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13113 (defvar modes)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13114 (defsubst org-set-calc-mode (var &optional value)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13115 (if (stringp var)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13116 (setq var (assoc var '(("D" calc-angle-mode deg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13117 ("R" calc-angle-mode rad)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13118 ("F" calc-prefer-frac t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13119 ("S" calc-symbolic-mode t)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13120 value (nth 2 var) var (nth 1 var)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13121 (if (memq var modes)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13122 (setcar (cdr (memq var modes)) value)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13123 (cons var (cons value modes)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13124 modes)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13125
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13126 (defun org-table-eval-formula (&optional arg equation
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13127 suppress-align suppress-const
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13128 suppress-store)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13129 "Replace the table field value at the cursor by the result of a calculation.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13130
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
13131 This function makes use of Dave Gillespie's Calc package, in my view the
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
13132 most exciting program ever written for GNU Emacs. So you need to have Calc
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13133 installed in order to use this function.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13134
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13135 In a table, this command replaces the value in the current field with the
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
13136 result of a formula. It also installs the formula as the \"current\" column
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13137 formula, by storing it in a special line below the table. When called
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13138 with a `C-u' prefix, the current field must ba a named field, and the
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13139 formula is installed as valid in only this specific field.
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13140
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13141 When called, the command first prompts for a formula, which is read in
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13142 the minibuffer. Previously entered formulas are available through the
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13143 history list, and the last used formula is offered as a default.
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13144 These stored formulas are adapted correctly when moving, inserting, or
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13145 deleting columns with the corresponding commands.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13146
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
13147 The formula can be any algebraic expression understood by the Calc package.
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13148 For details, see the Org-mode manual.
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13149
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13150 This function can also be called from Lisp programs and offers
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
13151 additional arguments: EQUATION can be the formula to apply. If this
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13152 argument is given, the user will not be prompted. SUPPRESS-ALIGN is
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13153 used to speed-up recursive calls by by-passing unnecessary aligns.
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13154 SUPPRESS-CONST suppresses the interpretation of constants in the
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
13155 formula, assuming that this has been done already outside the function.
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13156 SUPPRESS-STORE means the formula should not be stored, either because
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13157 it is already stored, or because it is a modified equation that should
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13158 not overwrite the stored one."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13159 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13160 (require 'calc)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13161 (org-table-check-inside-data-field)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13162 (org-table-get-specials)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13163 (let* (fields
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13164 (ndown (if (integerp arg) arg 1))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13165 (org-table-automatic-realign nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13166 (case-fold-search nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13167 (down (> ndown 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13168 (formula (if (and equation suppress-store)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13169 equation
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13170 (org-table-get-formula equation (equal arg '(4)))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13171 (n0 (org-table-current-column))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13172 (modes (copy-sequence org-calc-default-modes))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13173 n form fmt x ev orig c lispp)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13174 ;; Parse the format string. Since we have a lot of modes, this is
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13175 ;; a lot of work. However, I think calc still uses most of the time.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13176 (if (string-match ";" formula)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13177 (let ((tmp (org-split-string formula ";")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13178 (setq formula (car tmp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13179 fmt (concat (cdr (assoc "%" org-table-local-parameters))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13180 (nth 1 tmp)))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13181 (while (string-match "\\([pnfse]\\)\\(-?[0-9]+\\)" fmt)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13182 (setq c (string-to-char (match-string 1 fmt))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13183 n (string-to-number (match-string 2 fmt)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13184 (if (= c ?p)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13185 (setq modes (org-set-calc-mode 'calc-internal-prec n))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13186 (setq modes (org-set-calc-mode
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13187 'calc-float-format
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
13188 (list (cdr (assoc c '((?n . float) (?f . fix)
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
13189 (?s . sci) (?e . eng))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13190 n))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13191 (setq fmt (replace-match "" t t fmt)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13192 (while (string-match "[DRFS]" fmt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13193 (setq modes (org-set-calc-mode (match-string 0 fmt)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13194 (setq fmt (replace-match "" t t fmt)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13195 (unless (string-match "\\S-" fmt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13196 (setq fmt nil))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13197 (if (and (not suppress-const) org-table-formula-use-constants)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13198 (setq formula (org-table-formula-substitute-names formula)))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13199 (setq orig (or (get-text-property 1 :orig-formula formula) "?"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13200 (while (> ndown 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13201 (setq fields (org-split-string
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13202 (buffer-substring
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13203 (point-at-bol) (point-at-eol)) " *| *"))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13204 (if org-table-formula-numbers-only
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13205 (setq fields (mapcar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13206 (lambda (x) (number-to-string (string-to-number x)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13207 fields)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13208 (setq ndown (1- ndown))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13209 (setq form (copy-sequence formula)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13210 lispp (equal (substring form 0 2) "'("))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13211 ;; Insert the references to fields in same row
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13212 (while (string-match "\\$\\([0-9]+\\)?" form)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13213 (setq n (if (match-beginning 1)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
13214 (string-to-number (match-string 1 form))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13215 n0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13216 x (nth (1- n) fields))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13217 (unless x (error "Invalid field specifier \"%s\""
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13218 (match-string 0 form)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13219 (if (equal x "") (setq x "0"))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13220 (setq form (replace-match
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13221 (if lispp x (concat "(" x ")"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13222 t t form)))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13223 ;; Insert ranges in current column
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13224 (while (string-match "\\&[-I0-9]+" form)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13225 (setq form (replace-match
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
13226 (save-match-data
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
13227 (org-table-get-vertical-vector (match-string 0 form)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
13228 nil n0))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
13229 t t form)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13230 (if lispp
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13231 (setq ev (eval (eval (read form)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13232 ev (if (numberp ev) (number-to-string ev) ev))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13233 (setq ev (calc-eval (cons form modes)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13234 (if org-table-formula-numbers-only 'num))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13235
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13236 (when org-table-formula-debug
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13237 (with-output-to-temp-buffer "*Help*"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13238 (princ (format "Substitution history of formula
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13239 Orig: %s
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13240 $xyz-> %s
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13241 $1-> %s\n" orig formula form))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13242 (if (listp ev)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13243 (princ (format " %s^\nError: %s"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13244 (make-string (car ev) ?\-) (nth 1 ev)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13245 (princ (format "Result: %s\nFormat: %s\nFinal: %s"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13246 ev (or fmt "NONE")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13247 (if fmt (format fmt (string-to-number ev)) ev)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13248 (shrink-window-if-larger-than-buffer (get-buffer-window "*Help*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13249 (unless (and (interactive-p) (not ndown))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13250 (unless (let (inhibit-redisplay)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13251 (y-or-n-p "Debugging Formula. Continue to next? "))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13252 (org-table-align)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13253 (error "Abort"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13254 (delete-window (get-buffer-window "*Help*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13255 (message "")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13256 (if (listp ev) (setq fmt nil ev "#ERROR"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13257 (org-table-justify-field-maybe
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13258 (if fmt (format fmt (string-to-number ev)) ev))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13259 (if (and down (> ndown 0) (looking-at ".*\n[ \t]*|[^-]"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13260 (call-interactively 'org-return)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13261 (setq ndown 0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13262 (and down (org-table-maybe-recalculate-line))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13263 (or suppress-align (and org-table-may-need-update
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13264 (org-table-align)))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13265
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13266 (defun org-table-recalculate (&optional all noalign)
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
13267 "Recalculate the current table line by applying all stored formulas.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
13268 With prefix arg ALL, do this for all lines in the table."
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13269 (interactive "P")
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13270 (or (memq this-command org-recalc-commands)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13271 (setq org-recalc-commands (cons this-command org-recalc-commands)))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13272 (unless (org-at-table-p) (error "Not at a table"))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13273 (org-table-get-specials)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13274 (let* ((eqlist (sort (org-table-get-stored-formulas)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13275 (lambda (a b) (string< (car a) (car b)))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13276 (inhibit-redisplay t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13277 (line-re org-table-dataline-regexp)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
13278 (thisline (org-current-line))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13279 (thiscol (org-table-current-column))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13280 beg end entry eqlnum eqlname eql (cnt 0) eq a name)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13281 ;; Insert constants in all formulas
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13282 (setq eqlist
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13283 (mapcar (lambda (x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13284 (setcdr x (org-table-formula-substitute-names (cdr x)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13285 x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13286 eqlist))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13287 ;; Split the equation list
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13288 (while (setq eq (pop eqlist))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13289 (if (<= (string-to-char (car eq)) ?9)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13290 (push eq eqlnum)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13291 (push eq eqlname)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13292 (setq eqlnum (nreverse eqlnum) eqlname (nreverse eqlname))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13293 (if all
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13294 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13295 (setq end (move-marker (make-marker) (1+ (org-table-end))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13296 (goto-char (setq beg (org-table-begin)))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13297 (if (re-search-forward org-table-calculate-mark-regexp end t)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13298 ;; This is a table with marked lines, only compute selected lines
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13299 (setq line-re org-table-recalculate-regexp)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13300 ;; Move forward to the first non-header line
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13301 (if (and (re-search-forward org-table-dataline-regexp end t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13302 (re-search-forward org-table-hline-regexp end t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13303 (re-search-forward org-table-dataline-regexp end t))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13304 (setq beg (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13305 nil))) ;; just leave beg where it is
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13306 (setq beg (point-at-bol)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13307 end (move-marker (make-marker) (1+ (point-at-eol)))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13308 (goto-char beg)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13309 (and all (message "Re-applying formulas to full table..."))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13310 (while (re-search-forward line-re end t)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13311 (unless (string-match "^ *[_^!$] *$" (org-table-get-field 1))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13312 ;; Unprotected line, recalculate
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13313 (and all (message "Re-applying formulas to full table...(line %d)"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13314 (setq cnt (1+ cnt))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13315 (setq org-last-recalc-line (org-current-line))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13316 (setq eql eqlnum)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13317 (while (setq entry (pop eql))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13318 (goto-line org-last-recalc-line)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
13319 (org-table-goto-column (string-to-number (car entry)) nil 'force)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13320 (org-table-eval-formula nil (cdr entry) 'noalign 'nocst 'nostore))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13321 (goto-line thisline)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13322 (org-table-goto-column thiscol)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13323 (or noalign (and org-table-may-need-update (org-table-align))
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13324 (and all (message "Re-applying formulas to %d lines...done" cnt)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13325 ;; Now do the names fields
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13326 (while (setq eq (pop eqlname))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13327 (setq name (car eq)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13328 a (assoc name org-table-named-field-locations))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13329 (when a
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13330 (message "Re-applying formula to named field: %s" name)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13331 (goto-line (nth 1 a))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13332 (org-table-goto-column (nth 2 a))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13333 (org-table-eval-formula nil (cdr eq) 'noalign 'nocst 'nostore)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13334 ;; back to initial position
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13335 (goto-line thisline)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13336 (org-table-goto-column thiscol)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13337 (or noalign (and org-table-may-need-update (org-table-align))
64518
7b82147924c7 (org-table-formula-substitute-names, org-table-get-vertical-vector): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents: 64515
diff changeset
13338 (and all (message "Re-applying formulas...done")))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13339
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13340 (defun org-table-formula-substitute-names (f)
64518
7b82147924c7 (org-table-formula-substitute-names, org-table-get-vertical-vector): Doc fixes.
Juanma Barranquero <lekktu@gmail.com>
parents: 64515
diff changeset
13341 "Replace $const with values in string F."
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13342 (let ((start 0) a n1 n2 nn1 nn2 s (f1 f))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13343 ;; First, check for column names
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13344 (while (setq start (string-match org-table-column-name-regexp f start))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13345 (setq start (1+ start))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13346 (setq a (assoc (match-string 1 f) org-table-column-names))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13347 (setq f (replace-match (concat "$" (cdr a)) t t f)))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13348 ;; Expand ranges to vectors
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13349 (while (string-match "\\$\\([0-9]+\\)\\.\\.\\.?\\$\\([0-9]+\\)" f)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13350 (setq n1 (string-to-number (match-string 1 f))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13351 n2 (string-to-number (match-string 2 f))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13352 nn1 (1+ (min n1 n2)) nn2 (max n1 n2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13353 s (concat "[($" (number-to-string (1- nn1)) ")"))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13354 (loop for i from nn1 upto nn2 do
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13355 (setq s (concat s ",($" (int-to-string i) ")")))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13356 (setq s (concat s "]"))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13357 (if (< n2 n1) (setq s (concat "rev(" s ")")))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13358 (setq f (replace-match s t t f)))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13359 ;; Parameters and constants
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13360 (setq start 0)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13361 (while (setq start (string-match "\\$\\([a-zA-Z][a-zA-Z0-9]*\\)" f start))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13362 (setq start (1+ start))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
13363 (if (setq a (save-match-data
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13364 (org-table-get-constant (match-string 1 f))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13365 (setq f (replace-match (concat "(" a ")") t t f))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13366 (if org-table-formula-debug
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13367 (put-text-property 0 (length f) :orig-formula f1 f))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13368 f))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13369
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13370 (defun org-table-get-constant (const)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13371 "Find the value for a parameter or constant in a formula.
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13372 Parameters get priority."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13373 (or (cdr (assoc const org-table-local-parameters))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13374 (cdr (assoc const org-table-formula-constants))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13375 (and (fboundp 'constants-get) (constants-get const))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13376 "#UNDEFINED_NAME"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13377
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13378 (defvar org-edit-formulas-map (make-sparse-keymap))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13379 (define-key org-edit-formulas-map "\C-c\C-c" 'org-finish-edit-formulas)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13380 (define-key org-edit-formulas-map "\C-c\C-q" 'org-abort-edit-formulas)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13381 (define-key org-edit-formulas-map "\C-c?" 'org-show-variable)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13382
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13383 (defvar org-pos)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13384
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13385 (defun org-table-edit-formulas ()
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13386 "Edit the formulas of the current table in a separate buffer."
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13387 (interactive)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13388 (unless (org-at-table-p)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13389 (error "Not at a table"))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13390 (org-table-get-specials)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13391 (let ((eql (org-table-get-stored-formulas))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13392 (pos (move-marker (make-marker) (point)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13393 (wc (current-window-configuration))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13394 entry loc s)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13395 (switch-to-buffer-other-window "*Edit Formulas*")
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13396 (erase-buffer)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13397 (fundamental-mode)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13398 (org-set-local 'org-pos pos)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13399 (org-set-local 'org-window-configuration wc)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13400 (use-local-map org-edit-formulas-map)
65264
a95981ee377b (calc-embedded-close-formula, calc-embedded-open-formula,
Juanma Barranquero <lekktu@gmail.com>
parents: 65243
diff changeset
13401 (setq s "# Edit formulas and finish with `C-c C-c'.
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13402 # Use `C-u C-c C-c' to also appy them immediately to the entire table.
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13403 # Use `C-c ?' to get information about $name at point.
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13404 # To cancel editing, press `C-c C-q'.\n")
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13405 (put-text-property 0 (length s) 'face 'font-lock-comment-face s)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13406 (insert s)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13407 (while (setq entry (pop eql))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13408 (when (setq loc (assoc (car entry) org-table-named-field-locations))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13409 (setq s (format "# Named formula, referring to column %d in line %d\n"
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13410 (nth 2 loc) (nth 1 loc)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13411 (put-text-property 0 (length s) 'face 'font-lock-comment-face s)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13412 (insert s))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13413 (setq s (concat "$" (car entry) "=" (cdr entry) "\n"))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13414 (remove-text-properties 0 (length s) '(face nil) s)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13415 (insert s))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13416 (goto-char (point-min))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13417 (message "Edit formulas and finish with `C-c C-c'.")))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13418
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13419 (defun org-show-variable ()
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13420 "Show the location/value of the $ expression at point."
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13421 (interactive)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13422 (let (var (pos org-pos) (win (selected-window)) e)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13423 (save-excursion
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13424 (or (looking-at "\\$") (skip-chars-backward "$a-zA-Z0-9"))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13425 (if (looking-at "\\$\\([a-zA-Z0-9]+\\)")
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13426 (setq var (match-string 1))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13427 (error "No variable at point")))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13428 (cond
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13429 ((setq e (assoc var org-table-named-field-locations))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13430 (switch-to-buffer-other-window (marker-buffer pos))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13431 (goto-line (nth 1 e))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13432 (org-table-goto-column (nth 2 e))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13433 (select-window win)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13434 (message "Named field, column %d of line %d" (nth 2 e) (nth 1 e)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13435 ((setq e (assoc var org-table-column-names))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13436 (switch-to-buffer-other-window (marker-buffer pos))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13437 (goto-char pos)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13438 (goto-char (org-table-begin))
65264
a95981ee377b (calc-embedded-close-formula, calc-embedded-open-formula,
Juanma Barranquero <lekktu@gmail.com>
parents: 65243
diff changeset
13439 (if (re-search-forward (concat "^[ \t]*| *! *.*?| *\\(" var "\\) *|")
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13440 (org-table-end) t)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13441 (progn
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13442 (goto-char (match-beginning 1))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13443 (message "Named column (column %s)" (cdr e)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13444 (error "Column name not found"))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13445 (select-window win))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13446 ((string-match "^[0-9]$" var)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13447 ;; column number
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13448 (switch-to-buffer-other-window (marker-buffer pos))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13449 (goto-char pos)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13450 (goto-char (org-table-begin))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13451 (recenter 1)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13452 (if (re-search-forward org-table-dataline-regexp
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13453 (org-table-end) t)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13454 (progn
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13455 (goto-char (match-beginning 0))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13456 (org-table-goto-column (string-to-number var))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13457 (message "Column %s" var))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13458 (error "Column name not found"))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13459 (select-window win))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13460 ((setq e (assoc var org-table-local-parameters))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13461 (switch-to-buffer-other-window (marker-buffer pos))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13462 (goto-char pos)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13463 (goto-char (org-table-begin))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13464 (if (re-search-forward (concat "^[ \t]*| *\\$ *.*?| *\\(" var "=\\)") nil t)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13465 (progn
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13466 (goto-char (match-beginning 1))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13467 (message "Local parameter."))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13468 (error "Parameter not found"))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13469 (select-window win))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13470 (t
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13471 (cond
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13472 ((setq e (assoc var org-table-formula-constants))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13473 (message "Constant: $%s=%s in `org-table-formula-constants'." var (cdr e)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13474 ((setq e (and (fboundp 'constants-get) (constants-get var)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13475 (message "Constant: $%s=%s, retrieved from `constants.el'." var e))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13476 (t (error "Undefined name $%s" var)))))))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13477
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13478 (defun org-finish-edit-formulas (&optional arg)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13479 "Parse the buffer for formula definitions and install them.
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13480 With prefix ARG, apply the new formulas to the table."
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13481 (interactive "P")
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13482 (let ((pos org-pos) eql)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13483 (goto-char (point-min))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13484 (while (re-search-forward "^\\$\\([a-zA-Z0-9]+\\) *= *\\(.*?\\) *$" nil t)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13485 (push (cons (match-string 1) (match-string 2)) eql))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13486 (set-window-configuration org-window-configuration)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13487 (select-window (get-buffer-window (marker-buffer pos)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13488 (goto-char pos)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13489 (unless (org-at-table-p)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13490 (error "Lost table position - cannot install formulae"))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13491 (org-table-store-formulas eql)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13492 (move-marker pos nil)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13493 (kill-buffer "*Edit Formulas*")
65264
a95981ee377b (calc-embedded-close-formula, calc-embedded-open-formula,
Juanma Barranquero <lekktu@gmail.com>
parents: 65243
diff changeset
13494 (if arg
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13495 (org-table-recalculate 'all)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13496 (message "New formulas installed - press C-u C-c C-c to apply."))))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13497
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13498 (defun org-abort-edit-formulas ()
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13499 "Abort editing formulas, without installing the changes."
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13500 (interactive)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13501 (let ((pos org-pos))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13502 (set-window-configuration org-window-configuration)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13503 (select-window (get-buffer-window (marker-buffer pos)))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13504 (goto-char pos)
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13505 (message "Formula editing aborted without installing changes")))
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13506
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13507 ;;; The orgtbl minor mode
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13508
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13509 ;; Define a minor mode which can be used in other modes in order to
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13510 ;; integrate the org-mode table editor.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13511
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13512 ;; This is really a hack, because the org-mode table editor uses several
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13513 ;; keys which normally belong to the major mode, for example the TAB and
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13514 ;; RET keys. Here is how it works: The minor mode defines all the keys
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13515 ;; necessary to operate the table editor, but wraps the commands into a
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13516 ;; function which tests if the cursor is currently inside a table. If that
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13517 ;; is the case, the table editor command is executed. However, when any of
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13518 ;; those keys is used outside a table, the function uses `key-binding' to
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13519 ;; look up if the key has an associated command in another currently active
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13520 ;; keymap (minor modes, major mode, global), and executes that command.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13521 ;; There might be problems if any of the keys used by the table editor is
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13522 ;; otherwise used as a prefix key.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13523
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13524 ;; Another challenge is that the key binding for TAB can be tab or \C-i,
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13525 ;; likewise the binding for RET can be return or \C-m. Orgtbl-mode
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13526 ;; addresses this by checking explicitly for both bindings.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13527
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13528 ;; The optimized version (see variable `orgtbl-optimized') takes over
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13529 ;; all keys which are bound to `self-insert-command' in the *global map*.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13530 ;; Some modes bind other commands to simple characters, for example
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13531 ;; AUCTeX binds the double quote to `Tex-insert-quote'. With orgtbl-mode
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13532 ;; active, this binding is ignored inside tables and replaced with a
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13533 ;; modified self-insert.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13534
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13535 (defvar orgtbl-mode nil
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
13536 "Variable controlling `orgtbl-mode', a minor mode enabling the `org-mode'
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
13537 table editor in arbitrary modes.")
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13538 (make-variable-buffer-local 'orgtbl-mode)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13539
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
13540 (defvar orgtbl-mode-map (make-keymap)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
13541 "Keymap for `orgtbl-mode'.")
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13542
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13543 ;;;###autoload
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13544 (defun turn-on-orgtbl ()
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
13545 "Unconditionally turn on `orgtbl-mode'."
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13546 (orgtbl-mode 1))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13547
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13548 ;;;###autoload
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13549 (defun orgtbl-mode (&optional arg)
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
13550 "The `org-mode' table editor as a minor mode for use in other modes."
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13551 (interactive)
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
13552 (if (org-mode-p)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13553 ;; Exit without error, in case some hook functions calls this
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13554 ;; by accident in org-mode.
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13555 (message "Orgtbl-mode is not useful in org-mode, command ignored")
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13556 (setq orgtbl-mode
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13557 (if arg (> (prefix-numeric-value arg) 0) (not orgtbl-mode)))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13558 (if orgtbl-mode
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13559 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13560 (and (orgtbl-setup) (defun orgtbl-setup () nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13561 ;; Make sure we are first in minor-mode-map-alist
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13562 (let ((c (assq 'orgtbl-mode minor-mode-map-alist)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13563 (and c (setq minor-mode-map-alist
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13564 (cons c (delq c minor-mode-map-alist)))))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13565 (org-set-local (quote org-table-may-need-update) t)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
13566 (org-add-hook 'before-change-functions 'org-before-change-function
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
13567 nil 'local)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13568 (org-set-local 'org-old-auto-fill-inhibit-regexp
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13569 auto-fill-inhibit-regexp)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13570 (org-set-local 'auto-fill-inhibit-regexp
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13571 (if auto-fill-inhibit-regexp
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13572 (concat "\\([ \t]*|\\|" auto-fill-inhibit-regexp)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
13573 "[ \t]*|"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13574 (org-add-to-invisibility-spec '(org-cwidth))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13575 (easy-menu-add orgtbl-mode-menu)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13576 (run-hooks 'orgtbl-mode-hook))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13577 (setq auto-fill-inhibit-regexp org-old-auto-fill-inhibit-regexp)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13578 (org-cleanup-narrow-column-properties)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13579 (org-remove-from-invisibility-spec '(org-cwidth))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13580 (remove-hook 'before-change-functions 'org-before-change-function t)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13581 (easy-menu-remove orgtbl-mode-menu)
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
13582 (force-mode-line-update 'all))))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13583
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13584 (defun org-cleanup-narrow-column-properties ()
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13585 "Remove all properties related to narrow-column invisibility."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13586 (let ((s 1))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13587 (while (setq s (text-property-any s (point-max)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13588 'display org-narrow-column-arrow))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13589 (remove-text-properties s (1+ s) '(display t)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13590 (setq s 1)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13591 (while (setq s (text-property-any s (point-max) 'org-cwidth 1))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13592 (remove-text-properties s (1+ s) '(org-cwidth t)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13593 (setq s 1)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13594 (while (setq s (text-property-any s (point-max) 'invisible 'org-cwidth))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13595 (remove-text-properties s (1+ s) '(invisible t)))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13596
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13597 ;; Install it as a minor mode.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13598 (put 'orgtbl-mode :included t)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13599 (put 'orgtbl-mode :menu-tag "Org Table Mode")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13600 (add-minor-mode 'orgtbl-mode " OrgTbl" orgtbl-mode-map)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13601
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13602 (defun orgtbl-make-binding (fun n &rest keys)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13603 "Create a function for binding in the table minor mode.
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
13604 FUN is the command to call inside a table. N is used to create a unique
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
13605 command name. KEYS are keys that should be checked in for a command
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13606 to execute outside of tables."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13607 (eval
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
13608 (list 'defun
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13609 (intern (concat "orgtbl-hijacker-command-" (int-to-string n)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13610 '(arg)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13611 (concat "In tables, run `" (symbol-name fun) "'.\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13612 "Outside of tables, run the binding of `"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13613 (mapconcat (lambda (x) (format "%s" x)) keys "' or `")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13614 "'.")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13615 '(interactive "p")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13616 (list 'if
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13617 '(org-at-table-p)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13618 (list 'call-interactively (list 'quote fun))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13619 (list 'let '(orgtbl-mode)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13620 (list 'call-interactively
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13621 (append '(or)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13622 (mapcar (lambda (k)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13623 (list 'key-binding k))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13624 keys)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13625 '('orgtbl-error))))))))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13626
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13627 (defun orgtbl-error ()
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13628 "Error when there is no default binding for a table key."
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13629 (interactive)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13630 (error "This key is has no function outside tables"))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13631
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13632 (defun orgtbl-setup ()
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13633 "Setup orgtbl keymaps."
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13634 (let ((nfunc 0)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13635 (bindings
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13636 (list
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13637 '([(meta shift left)] org-table-delete-column)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13638 '([(meta left)] org-table-move-column-left)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13639 '([(meta right)] org-table-move-column-right)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13640 '([(meta shift right)] org-table-insert-column)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13641 '([(meta shift up)] org-table-kill-row)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13642 '([(meta shift down)] org-table-insert-row)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13643 '([(meta up)] org-table-move-row-up)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13644 '([(meta down)] org-table-move-row-down)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13645 '("\C-c\C-w" org-table-cut-region)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13646 '("\C-c\M-w" org-table-copy-region)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13647 '("\C-c\C-y" org-table-paste-rectangle)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13648 '("\C-c-" org-table-insert-hline)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13649 ; '([(shift tab)] org-table-previous-field)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13650 '("\C-m" org-table-next-row)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13651 (list (org-key 'S-return) 'org-table-copy-down)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13652 '([(meta return)] org-table-wrap-region)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13653 '("\C-c\C-q" org-table-wrap-region)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13654 '("\C-c?" org-table-current-column)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13655 '("\C-c " org-table-blank-field)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13656 '("\C-c+" org-table-sum)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13657 '("\C-c=" org-table-eval-formula)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13658 '("\C-c'" org-table-edit-formulas)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13659 '("\C-c`" org-table-edit-field)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13660 '("\C-c*" org-table-recalculate)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13661 '("\C-c|" org-table-create-or-convert-from-region)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
13662 '("\C-c^" org-table-sort-lines)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13663 '([(control ?#)] org-table-rotate-recalc-marks)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13664 elt key fun cmd)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13665 (while (setq elt (pop bindings))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13666 (setq nfunc (1+ nfunc))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13667 (setq key (car elt)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13668 fun (nth 1 elt)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13669 cmd (orgtbl-make-binding fun nfunc key))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13670 (define-key orgtbl-mode-map key cmd))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13671 ;; Special treatment needed for TAB and RET
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
13672 (define-key orgtbl-mode-map [(return)]
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13673 (orgtbl-make-binding 'orgtbl-ret 100 [(return)] "\C-m"))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
13674 (define-key orgtbl-mode-map "\C-m"
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13675 (orgtbl-make-binding 'orgtbl-ret 101 "\C-m" [(return)]))
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
13676 (define-key orgtbl-mode-map [(tab)]
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13677 (orgtbl-make-binding 'orgtbl-tab 102 [(tab)] "\C-i"))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13678 (define-key orgtbl-mode-map "\C-i"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13679 (orgtbl-make-binding 'orgtbl-tab 103 "\C-i" [(tab)])))
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13680 (define-key orgtbl-mode-map "\C-i"
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13681 (orgtbl-make-binding 'orgtbl-tab 104 [(shift tab)]))
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13682 (define-key orgtbl-mode-map "\C-c\C-c"
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13683 (orgtbl-make-binding 'org-ctrl-c-ctrl-c 105 "\C-c\C-c"))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13684 (when orgtbl-optimized
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13685 ;; If the user wants maximum table support, we need to hijack
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13686 ;; some standard editing functions
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13687 (org-remap orgtbl-mode-map
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13688 'self-insert-command 'orgtbl-self-insert-command
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13689 'delete-char 'org-delete-char
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13690 'delete-backward-char 'org-delete-backward-char)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13691 (define-key orgtbl-mode-map "|" 'org-force-self-insert))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13692 (easy-menu-define orgtbl-mode-menu orgtbl-mode-map "OrgTbl menu"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13693 '("OrgTbl"
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13694 ["Align" org-ctrl-c-ctrl-c :active (org-at-table-p) :keys "C-c C-c"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13695 ["Next Field" org-cycle :active (org-at-table-p) :keys "TAB"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13696 ["Previous Field" org-shifttab :active (org-at-table-p) :keys "S-TAB"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13697 ["Next Row" org-return :active (org-at-table-p) :keys "RET"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13698 "--"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13699 ["Blank Field" org-table-blank-field :active (org-at-table-p) :keys "C-c SPC"]
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13700 ["Edit Field" org-table-edit-field :active (org-at-table-p) :keys "C-c ` "]
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13701 ["Copy Field from Above"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13702 org-table-copy-down :active (org-at-table-p) :keys "S-RET"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13703 "--"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13704 ("Column"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13705 ["Move Column Left" org-metaleft :active (org-at-table-p) :keys "M-<left>"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13706 ["Move Column Right" org-metaright :active (org-at-table-p) :keys "M-<right>"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13707 ["Delete Column" org-shiftmetaleft :active (org-at-table-p) :keys "M-S-<left>"]
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13708 ["Insert Column" org-shiftmetaright :active (org-at-table-p) :keys "M-S-<right>"]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13709 "--"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13710 ["Enable Narrowing" (setq org-table-limit-column-width (not org-table-limit-column-width)) :active (org-at-table-p) :selected org-table-limit-column-width :style toggle])
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13711 ("Row"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13712 ["Move Row Up" org-metaup :active (org-at-table-p) :keys "M-<up>"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13713 ["Move Row Down" org-metadown :active (org-at-table-p) :keys "M-<down>"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13714 ["Delete Row" org-shiftmetaup :active (org-at-table-p) :keys "M-S-<up>"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13715 ["Insert Row" org-shiftmetadown :active (org-at-table-p) :keys "M-S-<down>"]
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
13716 ["Sort lines in region" org-table-sort-lines (org-at-table-p) :keys "C-c ^"]
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13717 "--"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13718 ["Insert Hline" org-table-insert-hline :active (org-at-table-p) :keys "C-c -"])
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13719 ("Rectangle"
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
13720 ["Copy Rectangle" org-copy-special :active (org-at-table-p)]
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
13721 ["Cut Rectangle" org-cut-special :active (org-at-table-p)]
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
13722 ["Paste Rectangle" org-paste-special :active (org-at-table-p)]
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
13723 ["Fill Rectangle" org-table-wrap-region :active (org-at-table-p)])
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13724 "--"
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13725 ["Set Column Formula" org-table-eval-formula :active (org-at-table-p) :keys "C-c ="]
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13726 ["Set Named Field Formula" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
13727 ["Edit Formulas" org-table-edit-formulas :active (org-at-table-p) :keys "C-c '"]
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13728 ["Recalculate line" org-table-recalculate :active (org-at-table-p) :keys "C-c *"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13729 ["Recalculate all" (org-table-recalculate '(4)) :active (org-at-table-p) :keys "C-u C-c *"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13730 ["Toggle Recalculate Mark" org-table-rotate-recalc-marks :active (org-at-table-p) :keys "C-c #"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13731 ["Sum Column/Rectangle" org-table-sum
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13732 :active (or (org-at-table-p) (org-region-active-p)) :keys "C-c +"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13733 ["Which Column?" org-table-current-column :active (org-at-table-p) :keys "C-c ?"]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13734 ["Debug Formulas"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13735 (setq org-table-formula-debug (not org-table-formula-debug))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13736 :style toggle :selected org-table-formula-debug]
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13737 ))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
13738 t)
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13739
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13740 (defun orgtbl-tab (arg)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
13741 "Justification and field motion for `orgtbl-mode'."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13742 (interactive "P")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13743 (if arg (org-table-edit-field t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13744 (org-table-justify-field-maybe)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
13745 (org-table-next-field)))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13746
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13747 (defun orgtbl-ret ()
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
13748 "Justification and field motion for `orgtbl-mode'."
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13749 (interactive)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13750 (org-table-justify-field-maybe)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13751 (org-table-next-row))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13752
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13753 (defun orgtbl-self-insert-command (N)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13754 "Like `self-insert-command', use overwrite-mode for whitespace in tables.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13755 If the cursor is in a table looking at whitespace, the whitespace is
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13756 overwritten, and the table is not marked as requiring realignment."
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13757 (interactive "p")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13758 (if (and (org-at-table-p)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13759 (or
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13760 (and org-table-auto-blank-field
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13761 (member last-command
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13762 '(orgtbl-hijacker-command-100
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13763 orgtbl-hijacker-command-101
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13764 orgtbl-hijacker-command-102
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13765 orgtbl-hijacker-command-103
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13766 orgtbl-hijacker-command-104
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13767 orgtbl-hijacker-command-105))
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13768 (org-table-blank-field))
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13769 t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13770 (eq N 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13771 (looking-at "[^|\n]* +|"))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
13772 (let (org-table-may-need-update)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13773 (goto-char (1- (match-end 0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13774 (delete-backward-char 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13775 (goto-char (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13776 (self-insert-command N))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13777 (setq org-table-may-need-update t)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13778 (let (orgtbl-mode)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13779 (call-interactively (key-binding (vector last-input-event))))))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
13780
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13781 (defun org-force-self-insert (N)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13782 "Needed to enforce self-insert under remapping."
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13783 (interactive "p")
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13784 (self-insert-command N))
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
13785
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13786 ;;; Exporting
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13787
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13788 (defconst org-level-max 20)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13789
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13790 (defvar org-export-html-preamble nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13791 "Preamble, to be inserted just after <body>. Set by publishing functions.")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13792 (defvar org-export-html-postamble nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13793 "Preamble, to be inserted just before </body>. Set by publishing functions.")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13794 (defvar org-export-html-auto-preamble t
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13795 "Should default preamble be inserted? Set by publishing functions.")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13796 (defvar org-export-html-auto-postamble t
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13797 "Should default postamble be inserted? Set by publishing functions.")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13798
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13799 (defconst org-export-plist-vars
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13800 '((:language . org-export-default-language)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13801 (:headline-levels . org-export-headline-levels)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13802 (:section-numbers . org-export-with-section-numbers)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13803 (:table-of-contents . org-export-with-toc)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
13804 (:archived-trees . org-export-with-archived-trees)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13805 (:emphasize . org-export-with-emphasize)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13806 (:sub-superscript . org-export-with-sub-superscripts)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13807 (:TeX-macros . org-export-with-TeX-macros)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
13808 (:LaTeX-fragments . org-export-with-LaTeX-fragments)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13809 (:fixed-width . org-export-with-fixed-width)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13810 (:timestamps . org-export-with-timestamps)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13811 (:tables . org-export-with-tables)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13812 (:table-auto-headline . org-export-highlight-first-table-line)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13813 (:style . org-export-html-style)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13814 (:convert-org-links . org-export-html-link-org-files-as-html)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13815 (:inline-images . org-export-html-inline-images)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13816 (:expand-quoted-html . org-export-html-expand)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13817 (:timestamp . org-export-html-with-timestamp)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13818 (:publishing-directory . org-export-publishing-directory)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13819 (:preamble . org-export-html-preamble)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13820 (:postamble . org-export-html-postamble)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13821 (:auto-preamble . org-export-html-auto-preamble)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13822 (:auto-postamble . org-export-html-auto-postamble)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13823 (:author . user-full-name)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13824 (:email . user-mail-address)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13825
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13826 (defun org-default-export-plist ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13827 "Return the property list with default settings for the export variables."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13828 (let ((l org-export-plist-vars) rtn e)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13829 (while (setq e (pop l))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13830 (setq rtn (cons (car e) (cons (symbol-value (cdr e)) rtn))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13831 rtn))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13832
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13833 (defun org-infile-export-plist ()
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13834 "Return the property list with file-local settings for export."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13835 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13836 (goto-char 0)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13837 (let ((re (org-make-options-regexp
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13838 '("TITLE" "AUTHOR" "EMAIL" "TEXT" "OPTIONS" "LANGUAGE")))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13839 p key val text options)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13840 (while (re-search-forward re nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13841 (setq key (org-match-string-no-properties 1)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13842 val (org-match-string-no-properties 2))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13843 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13844 ((string-equal key "TITLE") (setq p (plist-put p :title val)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13845 ((string-equal key "AUTHOR")(setq p (plist-put p :author val)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13846 ((string-equal key "EMAIL") (setq p (plist-put p :email val)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13847 ((string-equal key "LANGUAGE") (setq p (plist-put p :language val)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13848 ((string-equal key "TEXT")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13849 (setq text (if text (concat text "\n" val) val)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13850 ((string-equal key "OPTIONS") (setq options val))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13851 (setq p (plist-put p :text text))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13852 (when options
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13853 (let ((op '(("H" . :headline-levels)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13854 ("num" . :section-numbers)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13855 ("toc" . :table-of-contents)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13856 ("\\n" . :preserve-breaks)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13857 ("@" . :expand-quoted-html)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13858 (":" . :fixed-width)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13859 ("|" . :tables)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13860 ("^" . :sub-superscript)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13861 ("*" . :emphasize)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
13862 ("TeX" . :TeX-macros)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
13863 ("LaTeX" . :LaTeX-fragments)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13864 o)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13865 (while (setq o (pop op))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13866 (if (string-match (concat (regexp-quote (car o))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13867 ":\\([^ \t\n\r;,.]*\\)")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13868 options)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13869 (setq p (plist-put p (cdr o)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13870 (car (read-from-string
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13871 (match-string 1 options)))))))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13872 p)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13873
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13874 (defun org-combine-plists (&rest plists)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13875 "Create a single property list from all plists in PLISTS.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13876 The process starts by copying the last list, and then setting properties
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13877 from the other lists. Settings in the first list are the most significant
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13878 ones and overrule settings in the other lists."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13879 (let ((rtn (copy-sequence (pop plists)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13880 p v ls)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13881 (while plists
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13882 (setq ls (pop plists))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13883 (while ls
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13884 (setq p (pop ls) v (pop ls))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13885 (setq rtn (plist-put rtn p v))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13886 rtn))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13887
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13888 (defun org-export-directory (type plist)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13889 (let* ((val (plist-get plist :publishing-directory))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13890 (dir (if (listp val)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13891 (or (cdr (assoc type val)) ".")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13892 val)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13893 dir))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
13894
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13895 (defun org-export-find-first-heading-line (list)
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
13896 "Remove all lines from LIST which are before the first headline."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13897 (let ((orig-list list)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13898 (re (concat "^" outline-regexp)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13899 (while (and list
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13900 (not (string-match re (car list))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13901 (pop list))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13902 (or list orig-list)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13903
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13904 (defun org-skip-comments (lines)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13905 "Skip lines starting with \"#\" and subtrees starting with COMMENT."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13906 (let ((re1 (concat "^\\(\\*+\\)[ \t]+" org-comment-string))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13907 (re2 "^\\(\\*+\\)[ \t\n\r]")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13908 rtn line level)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13909 (while (setq line (pop lines))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13910 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13911 ((and (string-match re1 line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13912 (setq level (- (match-end 1) (match-beginning 1))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13913 ;; Beginning of a COMMENT subtree. Skip it.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13914 (while (and (setq line (pop lines))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13915 (or (not (string-match re2 line))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13916 (> (- (match-end 1) (match-beginning 1)) level))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13917 (setq lines (cons line lines)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13918 ((string-match "^#" line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13919 ;; an ordinary comment line
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
13920 )
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
13921 ((and org-export-table-remove-special-lines
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
13922 (string-match "^[ \t]*|" line)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
13923 (or (string-match "^[ \t]*| *[!_^] *|" line)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
13924 (and (string-match "| *<[0-9]+> *|" line)
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
13925 (not (string-match "| *[^ <|]" line)))))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
13926 ;; a special table line that should be removed
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
13927 )
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13928 (t (setq rtn (cons line rtn)))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13929 (nreverse rtn)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13930
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13931 (defun org-export (&optional arg)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13932 (interactive)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13933 (let ((help "[t] insert the export option template
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13934 \[v] limit export to visible part of outline tree
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13935
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13936 \[a] export as ASCII
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13937 \[h] export as HTML
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13938 \[b] export as HTML and browse immediately
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13939 \[x] export as XOXO
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13940
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13941 \[i] export current file as iCalendar file
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13942 \[I] export all agenda files as iCalendar files
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13943 \[c] export agenda files into combined iCalendar file
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13944
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13945 \[F] publish current file
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13946 \[P] publish current project
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13947 \[X] publish... (project will be prompted for)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13948 \[A] publish all projects")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13949 (cmds
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
13950 '((?t . org-insert-export-options-template)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
13951 (?v . org-export-visible)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13952 (?a . org-export-as-ascii)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13953 (?h . org-export-as-html)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13954 (?b . org-export-as-html-and-open)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13955 (?x . org-export-as-xoxo)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13956 (?i . org-export-icalendar-this-file)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13957 (?I . org-export-icalendar-all-agenda-files)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13958 (?c . org-export-icalendar-combine-agenda-files)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13959 (?F . org-publish-current-file)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13960 (?P . org-publish-current-project)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13961 (?X . org-publish)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13962 (?A . org-publish-all)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13963 r1 r2 ass)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13964 (save-window-excursion
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13965 (delete-other-windows)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13966 (with-output-to-temp-buffer "*Org Export/Publishing Help*"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13967 (princ help))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13968 (message "Select command: ")
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13969 (setq r1 (read-char-exclusive)))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13970 (setq r2 (if (< r1 27) (+ r1 96) r1))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13971 (if (setq ass (assq r2 cmds))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13972 (call-interactively (cdr ass))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13973 (error "No command associated with key %c" r1))))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
13974
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13975 ;; ASCII
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13976
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13977 (defconst org-html-entities
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13978 '(("nbsp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13979 ("iexcl")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13980 ("cent")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13981 ("pound")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13982 ("curren")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13983 ("yen")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13984 ("brvbar")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13985 ("sect")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13986 ("uml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13987 ("copy")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13988 ("ordf")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13989 ("laquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13990 ("not")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13991 ("shy")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13992 ("reg")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13993 ("macr")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13994 ("deg")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13995 ("plusmn")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13996 ("sup2")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13997 ("sup3")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13998 ("acute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13999 ("micro")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14000 ("para")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14001 ("middot")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14002 ("odot"."o")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14003 ("star"."*")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14004 ("cedil")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14005 ("sup1")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14006 ("ordm")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14007 ("raquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14008 ("frac14")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14009 ("frac12")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14010 ("frac34")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14011 ("iquest")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14012 ("Agrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14013 ("Aacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14014 ("Acirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14015 ("Atilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14016 ("Auml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14017 ("Aring") ("AA"."&Aring;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14018 ("AElig")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14019 ("Ccedil")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14020 ("Egrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14021 ("Eacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14022 ("Ecirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14023 ("Euml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14024 ("Igrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14025 ("Iacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14026 ("Icirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14027 ("Iuml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14028 ("ETH")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14029 ("Ntilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14030 ("Ograve")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14031 ("Oacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14032 ("Ocirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14033 ("Otilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14034 ("Ouml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14035 ("times")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14036 ("Oslash")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14037 ("Ugrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14038 ("Uacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14039 ("Ucirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14040 ("Uuml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14041 ("Yacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14042 ("THORN")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14043 ("szlig")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14044 ("agrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14045 ("aacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14046 ("acirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14047 ("atilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14048 ("auml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14049 ("aring")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14050 ("aelig")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14051 ("ccedil")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14052 ("egrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14053 ("eacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14054 ("ecirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14055 ("euml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14056 ("igrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14057 ("iacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14058 ("icirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14059 ("iuml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14060 ("eth")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14061 ("ntilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14062 ("ograve")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14063 ("oacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14064 ("ocirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14065 ("otilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14066 ("ouml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14067 ("divide")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14068 ("oslash")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14069 ("ugrave")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14070 ("uacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14071 ("ucirc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14072 ("uuml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14073 ("yacute")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14074 ("thorn")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14075 ("yuml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14076 ("fnof")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14077 ("Alpha")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14078 ("Beta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14079 ("Gamma")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14080 ("Delta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14081 ("Epsilon")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14082 ("Zeta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14083 ("Eta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14084 ("Theta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14085 ("Iota")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14086 ("Kappa")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14087 ("Lambda")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14088 ("Mu")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14089 ("Nu")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14090 ("Xi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14091 ("Omicron")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14092 ("Pi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14093 ("Rho")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14094 ("Sigma")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14095 ("Tau")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14096 ("Upsilon")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14097 ("Phi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14098 ("Chi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14099 ("Psi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14100 ("Omega")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14101 ("alpha")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14102 ("beta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14103 ("gamma")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14104 ("delta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14105 ("epsilon")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14106 ("varepsilon"."&epsilon;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14107 ("zeta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14108 ("eta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14109 ("theta")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14110 ("iota")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14111 ("kappa")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14112 ("lambda")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14113 ("mu")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14114 ("nu")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14115 ("xi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14116 ("omicron")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14117 ("pi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14118 ("rho")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14119 ("sigmaf") ("varsigma"."&sigmaf;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14120 ("sigma")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14121 ("tau")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14122 ("upsilon")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14123 ("phi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14124 ("chi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14125 ("psi")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14126 ("omega")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14127 ("thetasym") ("vartheta"."&thetasym;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14128 ("upsih")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14129 ("piv")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14130 ("bull") ("bullet"."&bull;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14131 ("hellip") ("dots"."&hellip;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14132 ("prime")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14133 ("Prime")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14134 ("oline")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14135 ("frasl")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14136 ("weierp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14137 ("image")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14138 ("real")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14139 ("trade")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14140 ("alefsym")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14141 ("larr") ("leftarrow"."&larr;") ("gets"."&larr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14142 ("uarr") ("uparrow"."&uarr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14143 ("rarr") ("to"."&rarr;") ("rightarrow"."&rarr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14144 ("darr")("downarrow"."&darr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14145 ("harr") ("leftrightarrow"."&harr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14146 ("crarr") ("hookleftarrow"."&crarr;") ; has round hook, not quite CR
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14147 ("lArr") ("Leftarrow"."&lArr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14148 ("uArr") ("Uparrow"."&uArr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14149 ("rArr") ("Rightarrow"."&rArr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14150 ("dArr") ("Downarrow"."&dArr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14151 ("hArr") ("Leftrightarrow"."&hArr;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14152 ("forall")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14153 ("part") ("partial"."&part;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14154 ("exist") ("exists"."&exist;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14155 ("empty") ("emptyset"."&empty;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14156 ("nabla")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14157 ("isin") ("in"."&isin;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14158 ("notin")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14159 ("ni")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14160 ("prod")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14161 ("sum")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14162 ("minus")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14163 ("lowast") ("ast"."&lowast;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14164 ("radic")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14165 ("prop") ("proptp"."&prop;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14166 ("infin") ("infty"."&infin;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14167 ("ang") ("angle"."&ang;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14168 ("and") ("vee"."&and;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14169 ("or") ("wedge"."&or;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14170 ("cap")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14171 ("cup")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14172 ("int")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14173 ("there4")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14174 ("sim")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14175 ("cong") ("simeq"."&cong;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14176 ("asymp")("approx"."&asymp;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14177 ("ne") ("neq"."&ne;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14178 ("equiv")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14179 ("le")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14180 ("ge")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14181 ("sub") ("subset"."&sub;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14182 ("sup") ("supset"."&sup;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14183 ("nsub")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14184 ("sube")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14185 ("supe")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14186 ("oplus")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14187 ("otimes")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14188 ("perp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14189 ("sdot") ("cdot"."&sdot;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14190 ("lceil")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14191 ("rceil")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14192 ("lfloor")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14193 ("rfloor")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14194 ("lang")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14195 ("rang")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14196 ("loz") ("Diamond"."&loz;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14197 ("spades") ("spadesuit"."&spades;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14198 ("clubs") ("clubsuit"."&clubs;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14199 ("hearts") ("diamondsuit"."&hearts;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14200 ("diams") ("diamondsuit"."&diams;")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14201 ("quot")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14202 ("amp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14203 ("lt")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14204 ("gt")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14205 ("OElig")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14206 ("oelig")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14207 ("Scaron")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14208 ("scaron")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14209 ("Yuml")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14210 ("circ")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14211 ("tilde")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14212 ("ensp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14213 ("emsp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14214 ("thinsp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14215 ("zwnj")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14216 ("zwj")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14217 ("lrm")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14218 ("rlm")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14219 ("ndash")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14220 ("mdash")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14221 ("lsquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14222 ("rsquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14223 ("sbquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14224 ("ldquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14225 ("rdquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14226 ("bdquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14227 ("dagger")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14228 ("Dagger")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14229 ("permil")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14230 ("lsaquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14231 ("rsaquo")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14232 ("euro")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14233
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14234 ("arccos"."arccos")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14235 ("arcsin"."arcsin")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14236 ("arctan"."arctan")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14237 ("arg"."arg")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14238 ("cos"."cos")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14239 ("cosh"."cosh")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14240 ("cot"."cot")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14241 ("coth"."coth")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14242 ("csc"."csc")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14243 ("deg"."deg")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14244 ("det"."det")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14245 ("dim"."dim")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14246 ("exp"."exp")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14247 ("gcd"."gcd")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14248 ("hom"."hom")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14249 ("inf"."inf")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14250 ("ker"."ker")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14251 ("lg"."lg")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14252 ("lim"."lim")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14253 ("liminf"."liminf")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14254 ("limsup"."limsup")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14255 ("ln"."ln")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14256 ("log"."log")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14257 ("max"."max")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14258 ("min"."min")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14259 ("Pr"."Pr")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14260 ("sec"."sec")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14261 ("sin"."sin")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14262 ("sinh"."sinh")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14263 ("sup"."sup")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14264 ("tan"."tan")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14265 ("tanh"."tanh")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14266 )
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14267 "Entities for TeX->HTML translation.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14268 Entries can be like (\"ent\"), in which case \"\\ent\" will be translated to
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14269 \"&ent;\". An entry can also be a dotted pair like (\"ent\".\"&other;\").
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14270 In that case, \"\\ent\" will be translated to \"&other;\".
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14271 The list contains HTML entities for Latin-1, Greek and other symbols.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14272 It is supplemented by a number of commonly used TeX macros with appropriate
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
14273 translations. There is currently no way for users to extend this.")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14274
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14275 (defun org-cleaned-string-for-export (string &rest parameters)
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14276 "Cleanup a buffer substring so that links can be created safely."
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14277 (interactive)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14278 (let* ((re-radio (and org-target-link-regexp
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
14279 (concat "\\([^<]\\)\\(" org-target-link-regexp "\\)")))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14280 (re-plain-link (concat "\\([^[<]\\)" org-plain-link-re))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14281 (re-angle-link (concat "\\([^[]\\)" org-angle-link-re))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14282 (re-archive (concat ":" org-archive-tag ":"))
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14283 rtn)
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14284 (save-excursion
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14285 (set-buffer (get-buffer-create " org-mode-tmp"))
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14286 (erase-buffer)
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14287 (insert string)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14288 (let ((org-inhibit-startup t)) (org-mode))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14289
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14290 ;; Get rid of archived trees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14291 (when (not (eq org-export-with-archived-trees t))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14292 (goto-char (point-min))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14293 (while (re-search-forward re-archive nil t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14294 (if (not (org-on-heading-p))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14295 (org-end-of-subtree t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14296 (beginning-of-line 1)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14297 (delete-region
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14298 (if org-export-with-archived-trees (1+ (point-at-eol)) (point))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14299 (org-end-of-subtree t)))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14300
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14301 ;; Find targets in comments and move them out of comments,
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14302 ;; but mark them as targets that should be invisible
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14303 (goto-char (point-min))
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14304 (while (re-search-forward "^#.*?\\(<<<?[^>\r\n]+>>>?\\).*" nil t)
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14305 (replace-match "\\1(INVISIBLE)"))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14306
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14307 ;; Remove comments
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14308 (goto-char (point-min))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14309 (while (re-search-forward "^#.*\n?" nil t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14310 (replace-match ""))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14311
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14312 ;; Find matches for radio targets and turn them into internal links
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14313 (goto-char (point-min))
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
14314 (when re-radio
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
14315 (while (re-search-forward re-radio nil t)
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
14316 (replace-match "\\1[[\\2]]")))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14317
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14318 ;; Find all links that contain a newline and put them into a single line
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14319 (goto-char (point-min))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14320 (while (re-search-forward "\\(\\(\\[\\|\\]\\)\\[[^]]*?\\)[ \t]*\n[ \t]*\\([^]]*\\]\\(\\[\\|\\]\\)\\)" nil t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14321 (replace-match "\\1 \\3")
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14322 (goto-char (match-beginning 0)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14323
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14324 ;; Convert LaTeX fragments to images
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14325 (when (memq :LaTeX-fragments parameters)
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
14326 (org-format-latex
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14327 (concat "ltxpng/" (file-name-sans-extension
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14328 (file-name-nondirectory
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14329 org-current-export-file)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14330 org-current-export-dir nil "Creating LaTeX image %s"))
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
14331 (message "Exporting...")
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14332
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14333 ;; Normalize links: Convert angle and plain links into bracket links
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14334 ;; Expand link abbreviations
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14335 (goto-char (point-min))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14336 (while (re-search-forward re-plain-link nil t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14337 (replace-match
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14338 (concat
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14339 (match-string 1) "[[" (match-string 2) ":" (match-string 3) "]]")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14340 t t))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14341 (goto-char (point-min))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14342 (while (re-search-forward re-angle-link nil t)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14343 (replace-match
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14344 (concat
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14345 (match-string 1) "[[" (match-string 2) ":" (match-string 3) "]]")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14346 t t))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14347 (goto-char (point-min))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14348 (while (re-search-forward org-bracket-link-regexp nil t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14349 (replace-match
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14350 (concat "[[" (save-match-data
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14351 (org-link-expand-abbrev (match-string 1)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14352 "]"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14353 (if (match-end 3)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14354 (match-string 2)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14355 (concat "[" (match-string 1) "]"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14356 "]")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14357 t t))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14358
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14359 ;; Find multiline emphasis and put them into single line
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14360 (when (memq :emph-multiline parameters)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14361 (goto-char (point-min))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14362 (while (re-search-forward org-emph-re nil t)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14363 (subst-char-in-region (match-beginning 0) (match-end 0) ?\n ?\ t)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14364 (goto-char (1- (match-end 0)))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14365
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14366 (setq rtn (buffer-string)))
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14367 (kill-buffer " org-mode-tmp")
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14368 rtn))
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14369
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14370 (defun org-solidify-link-text (s &optional alist)
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14371 "Take link text and make a safe target out of it."
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14372 (save-match-data
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14373 (let* ((rtn
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14374 (mapconcat
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14375 'identity
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14376 (org-split-string s "[ \t\r\n]+") "--"))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14377 (a (assoc rtn alist)))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14378 (or (cdr a) rtn))))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14379
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14380 (defun org-convert-to-odd-levels ()
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14381 "Convert an org-mode file with all levels allowed to one with odd levels.
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14382 This will leave level 1 alone, convert level 2 to level 3, level 3 to
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14383 level 5 etc."
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14384 (interactive)
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14385 (when (yes-or-no-p "Are you sure you want to globally change levels to odd? ")
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14386 (let ((org-odd-levels-only nil) n)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14387 (save-excursion
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14388 (goto-char (point-min))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14389 (while (re-search-forward "^\\*\\*+" nil t)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14390 (setq n (1- (length (match-string 0))))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14391 (while (>= (setq n (1- n)) 0)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14392 (org-demote))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14393 (end-of-line 1))))))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14394
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14395
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14396 (defun org-convert-to-oddeven-levels ()
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14397 "Convert an org-mode file with only odd levels to one with odd and even levels.
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14398 This promotes level 3 to level 2, level 5 to level 3 etc. If the file contains a
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14399 section with an even level, conversion would destroy the structure of the file. An error
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14400 is signaled in this case."
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14401 (interactive)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14402 (goto-char (point-min))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14403 ;; First check if there are no even levels
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14404 (when (re-search-forward "^\\(\\*\\*\\)+[^*]" nil t)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14405 (org-show-context t)
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14406 (error "Not all levels are odd in this file. Conversion not possible."))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14407 (when (yes-or-no-p "Are you sure you want to globally change levels to odd-even? ")
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14408 (let ((org-odd-levels-only nil) n)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14409 (save-excursion
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14410 (goto-char (point-min))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14411 (while (re-search-forward "^\\*\\*+" nil t)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14412 (setq n (/ (length (match-string 0)) 2))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14413 (while (>= (setq n (1- n)) 0)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14414 (org-promote))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14415 (end-of-line 1))))))
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14416
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14417 (defun org-tr-level (n)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14418 "Make N odd if required."
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14419 (if org-odd-levels-only (1+ (/ n 2)) n))
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14420
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
14421 (defvar org-last-level nil) ; dynamically scoped variable
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14422 (defvar org-ascii-current-indentation nil) ; For communication
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
14423
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14424 (defun org-export-as-ascii (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14425 "Export the outline as a pretty ASCII file.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14426 If there is an active region, export only the region.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14427 The prefix ARG specifies how many levels of the outline should become
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14428 underlined headlines. The default is 3."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14429 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14430 (setq-default org-todo-line-regexp org-todo-line-regexp)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14431 (let* ((opt-plist (org-combine-plists (org-default-export-plist)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14432 (org-infile-export-plist)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14433 (region
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14434 (buffer-substring
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14435 (if (org-region-active-p) (region-beginning) (point-min))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14436 (if (org-region-active-p) (region-end) (point-max))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14437 (lines (org-export-find-first-heading-line
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14438 (org-skip-comments
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14439 (org-split-string
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14440 (org-cleaned-string-for-export region)
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14441 "[\r\n]"))))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
14442 (org-ascii-current-indentation '(0 . 0))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14443 (org-startup-with-deadline-check nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14444 (level 0) line txt
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14445 (umax nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14446 (case-fold-search nil)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14447 (filename (concat (file-name-as-directory
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14448 (org-export-directory :ascii opt-plist))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14449 (file-name-sans-extension
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14450 (file-name-nondirectory buffer-file-name))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14451 ".txt"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14452 (buffer (find-file-noselect filename))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14453 (levels-open (make-vector org-level-max nil))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14454 (odd org-odd-levels-only)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14455 (date (format-time-string "%Y/%m/%d" (current-time)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14456 (time (format-time-string "%X" (org-current-time)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14457 (author (plist-get opt-plist :author))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14458 (title (or (plist-get opt-plist :title)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14459 (file-name-sans-extension
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14460 (file-name-nondirectory buffer-file-name))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14461 (email (plist-get opt-plist :email))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14462 (language (plist-get opt-plist :language))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14463 (quote-re0 (concat "^[ \t]*" org-quote-string "\\>"))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14464 (quote-re (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14465 (text nil)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14466 (todo nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14467 (lang-words nil))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14468
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
14469 (setq org-last-level 1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14470 (org-init-section-numbers)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14471
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14472 (find-file-noselect filename)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14473
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14474 (setq lang-words (or (assoc language org-export-language-setup)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14475 (assoc "en" org-export-language-setup)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14476 (if org-export-ascii-show-new-buffer
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14477 (switch-to-buffer-other-window buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14478 (set-buffer buffer))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14479 (erase-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14480 (fundamental-mode)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14481 ;; create local variables for all options, to make sure all called
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14482 ;; functions get the correct information
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14483 (mapcar (lambda (x)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14484 (set (make-local-variable (cdr x))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14485 (plist-get opt-plist (car x))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14486 org-export-plist-vars)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14487 (org-set-local 'org-odd-levels-only odd)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14488 (setq umax (if arg (prefix-numeric-value arg)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14489 org-export-headline-levels))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14490
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14491 ;; File header
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14492 (if title (org-insert-centered title ?=))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14493 (insert "\n")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14494 (if (or author email)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14495 (insert (concat (nth 1 lang-words) ": " (or author "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14496 (if email (concat " <" email ">") "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14497 "\n")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14498 (if (and date time)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14499 (insert (concat (nth 2 lang-words) ": " date " " time "\n")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14500 (if text (insert (concat (org-html-expand-for-ascii text) "\n\n")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14501
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14502 (insert "\n\n")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14503
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14504 (if org-export-with-toc
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14505 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14506 (insert (nth 3 lang-words) "\n"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14507 (make-string (length (nth 3 lang-words)) ?=) "\n")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14508 (mapcar '(lambda (line)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14509 (if (string-match org-todo-line-regexp
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14510 line)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14511 ;; This is a headline
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14512 (progn
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14513 (setq level (- (match-end 1) (match-beginning 1))
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14514 level (org-tr-level level)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14515 txt (match-string 3 line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14516 todo
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14517 (or (and org-export-mark-todo-in-toc
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14518 (match-beginning 2)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14519 (not (equal (match-string 2 line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14520 org-done-string)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14521 ; TODO, not DONE
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14522 (and org-export-mark-todo-in-toc
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14523 (= level umax)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14524 (org-search-todo-below
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14525 line lines level))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14526 (setq txt (org-html-expand-for-ascii txt))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14527
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14528 (if (and (memq org-export-with-tags '(not-in-toc nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14529 (string-match "[ \t]+:[a-zA-Z0-9_@:]+:[ \t]*$" txt))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14530 (setq txt (replace-match "" t t txt)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14531 (if (string-match quote-re0 txt)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14532 (setq txt (replace-match "" t t txt)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14533
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14534 (if org-export-with-section-numbers
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14535 (setq txt (concat (org-section-number level)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14536 " " txt)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14537 (if (<= level umax)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14538 (progn
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14539 (insert
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14540 (make-string (* (1- level) 4) ?\ )
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14541 (format (if todo "%s (*)\n" "%s\n") txt))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
14542 (setq org-last-level level))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14543 ))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14544 lines)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14545
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14546 (org-init-section-numbers)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14547 (while (setq line (pop lines))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14548 ;; Remove the quoted HTML tags.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14549 (setq line (org-html-expand-for-ascii line))
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14550 ;; Remove targets
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14551 (while (string-match "<<<?[^<>]*>>>?[ \t]*\n?" line)
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14552 (setq line (replace-match "" t t line)))
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14553 ;; Replace internal links
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14554 (while (string-match org-bracket-link-regexp line)
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14555 (setq line (replace-match
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14556 (if (match-end 3) "[\\3]" "[\\1]")
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14557 t nil line)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14558 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14559 ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14560 ;; a Headline
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14561 (setq level (org-tr-level (- (match-end 1) (match-beginning 1)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14562 txt (match-string 2 line))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14563 (org-ascii-level-start level txt umax lines))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14564 (t
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
14565 (insert (org-fix-indentation line org-ascii-current-indentation) "\n"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14566 (normal-mode)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14567 (save-buffer)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14568 ;; remove display and invisible chars
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14569 (let (beg end)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14570 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14571 (while (setq beg (next-single-property-change (point) 'display))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14572 (setq end (next-single-property-change beg 'display))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14573 (delete-region beg end)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14574 (goto-char beg)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14575 (insert "=>"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14576 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14577 (while (setq beg (next-single-property-change (point) 'org-cwidth))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14578 (setq end (next-single-property-change beg 'org-cwidth))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14579 (delete-region beg end)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14580 (goto-char beg)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14581 (goto-char (point-min))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14582
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14583 (defun org-search-todo-below (line lines level)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14584 "Search the subtree below LINE for any TODO entries."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14585 (let ((rest (cdr (memq line lines)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14586 (re org-todo-line-regexp)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14587 line lv todo)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14588 (catch 'exit
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14589 (while (setq line (pop rest))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14590 (if (string-match re line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14591 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14592 (setq lv (- (match-end 1) (match-beginning 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14593 todo (and (match-beginning 2)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14594 (not (equal (match-string 2 line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14595 org-done-string))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14596 ; TODO, not DONE
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14597 (if (<= lv level) (throw 'exit nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14598 (if todo (throw 'exit t))))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14599
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14600 (defun org-html-expand-for-ascii (line)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14601 "Handle quoted HTML for ASCII export."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14602 (if org-export-html-expand
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14603 (while (string-match "@<[^<>\n]*>" line)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14604 ;; We just remove the tags for now.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14605 (setq line (replace-match "" nil nil line))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14606 line)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14607
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14608 (defun org-insert-centered (s &optional underline)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14609 "Insert the string S centered and underline it with character UNDERLINE."
69482
a305f07816a9 (org-insert-centered): Use `string-width' to make
Carsten Dominik <dominik@science.uva.nl>
parents: 69454
diff changeset
14610 (let ((ind (max (/ (- 80 (string-width s)) 2) 0)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14611 (insert (make-string ind ?\ ) s "\n")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14612 (if underline
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14613 (insert (make-string ind ?\ )
69482
a305f07816a9 (org-insert-centered): Use `string-width' to make
Carsten Dominik <dominik@science.uva.nl>
parents: 69454
diff changeset
14614 (make-string (string-width s) underline)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14615 "\n"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14616
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14617 (defun org-ascii-level-start (level title umax &optional lines)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14618 "Insert a new level in ASCII export."
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14619 (let (char (n (- level umax 1)) (ind 0))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14620 (if (> level umax)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14621 (progn
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14622 (insert (make-string (* 2 n) ?\ )
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14623 (char-to-string (nth (% n (length org-export-ascii-bullets))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14624 org-export-ascii-bullets))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14625 " " title "\n")
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14626 ;; find the indentation of the next non-empty line
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14627 (catch 'stop
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14628 (while lines
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14629 (if (string-match "^\\*" (car lines)) (throw 'stop nil))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14630 (if (string-match "^\\([ \t]*\\)\\S-" (car lines))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
14631 (throw 'stop (setq ind (org-get-indentation (car lines)))))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14632 (pop lines)))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
14633 (setq org-ascii-current-indentation (cons (* 2 (1+ n)) ind)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14634 (if (or (not (equal (char-before) ?\n))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14635 (not (equal (char-before (1- (point))) ?\n)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14636 (insert "\n"))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14637 (setq char (nth (- umax level) (reverse org-export-ascii-underline)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14638 (unless org-export-with-tags
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14639 (if (string-match "[ \t]+\\(:[a-zA-Z0-9_@:]+:\\)[ \t]*$" title)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14640 (setq title (replace-match "" t t title))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14641 (if org-export-with-section-numbers
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14642 (setq title (concat (org-section-number level) " " title)))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14643 (insert title "\n" (make-string (string-width title) char) "\n")
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
14644 (setq org-ascii-current-indentation '(0 . 0)))))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
14645
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14646 (defun org-export-visible (type arg)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14647 "Create a copy of the visible part of the current buffer, and export it.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14648 The copy is created in a temporary buffer and removed after use.
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14649 TYPE is the final key (as a string) that also select the export command in
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14650 the `C-c C-e' export dispatcher.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14651 As a special case, if the you type SPC at the prompt, the temporary
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14652 org-mode file will not be removed but presented to you so that you can
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14653 continue to use it. The prefix arg ARG is passed through to the exporting
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14654 command."
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14655 (interactive
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14656 (list (progn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14657 (message "Export visible: [a]SCII [h]tml [b]rowse HTML [x]OXO [ ]keep buffer")
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14658 (read-char-exclusive))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14659 current-prefix-arg))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14660 (if (not (member type '(?a ?\C-a ?b ?\C-b ?h ?x ?\ )))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14661 (error "Invalid export key"))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14662 (let* ((binding (cdr (assoc type
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14663 '((?a . org-export-as-ascii)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14664 (?\C-a . org-export-as-ascii)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14665 (?b . org-export-as-html-and-open)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14666 (?\C-b . org-export-as-html-and-open)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14667 (?h . org-export-as-html)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14668 (?x . org-export-as-xoxo)))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14669 (keepp (equal type ?\ ))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14670 (file buffer-file-name)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14671 (buffer (get-buffer-create "*Org Export Visible*"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14672 s e)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14673 (with-current-buffer buffer (erase-buffer))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
14674 (save-excursion
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
14675 (setq s (goto-char (point-min)))
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
14676 (while (not (= (point) (point-max)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14677 (goto-char (org-find-invisible))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14678 (append-to-buffer buffer s (point))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14679 (setq s (goto-char (org-find-visible))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14680 (goto-char (point-min))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14681 (unless keepp
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14682 ;; Copy all comment lines to the end, to make sure #+ settings are
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14683 ;; still available for the second export step. Kind of a hack, but
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14684 ;; does do the trick.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14685 (if (looking-at "#[^\r\n]*")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14686 (append-to-buffer buffer (match-beginning 0) (1+ (match-end 0))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14687 (while (re-search-forward "[\n\r]#[^\n\r]*" nil t)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14688 (append-to-buffer buffer (1+ (match-beginning 0))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14689 (min (point-max) (1+ (match-end 0))))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14690 (set-buffer buffer)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14691 (let ((buffer-file-name file)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14692 (org-inhibit-startup t))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14693 (org-mode)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14694 (show-all)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14695 (unless keepp (funcall binding arg))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14696 (if (not keepp)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14697 (kill-buffer buffer)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14698 (switch-to-buffer-other-window buffer)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14699 (goto-char (point-min)))))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
14700
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
14701 (defun org-find-visible ()
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14702 (let ((s (point)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14703 (while (and (not (= (point-max) (setq s (next-overlay-change s))))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14704 (get-char-property s 'invisible)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14705 s))
61134
ac45ed541a16 * org.el (org-agenda-phases-of-moon, org-agenda-sunrise-sunset)
Carsten Dominik <dominik@science.uva.nl>
parents: 60918
diff changeset
14706 (defun org-find-invisible ()
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14707 (let ((s (point)))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14708 (while (and (not (= (point-max) (setq s (next-overlay-change s))))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14709 (not (get-char-property s 'invisible))))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14710 s))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
14711
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14712 ;; HTML
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14713
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14714 (defun org-get-current-options ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14715 "Return a string with current options as keyword options.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14716 Does include HTML export options as well as TODO and CATEGORY stuff."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14717 (format
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14718 "#+TITLE: %s
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14719 #+AUTHOR: %s
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14720 #+EMAIL: %s
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14721 #+LANGUAGE: %s
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14722 #+TEXT: Some descriptive text to be emitted. Several lines OK.
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14723 #+OPTIONS: H:%d num:%s toc:%s \\n:%s @:%s ::%s |:%s ^:%s *:%s TeX:%s LaTeX:%s
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14724 #+CATEGORY: %s
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14725 #+SEQ_TODO: %s
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14726 #+TYP_TODO: %s
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14727 #+STARTUP: %s %s %s %s %s %s
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14728 #+TAGS: %s
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
14729 #+ARCHIVE: %s
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14730 #+LINK: %s
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14731 "
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14732 (buffer-name) (user-full-name) user-mail-address org-export-default-language
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14733 org-export-headline-levels
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14734 org-export-with-section-numbers
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14735 org-export-with-toc
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14736 org-export-preserve-breaks
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14737 org-export-html-expand
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14738 org-export-with-fixed-width
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14739 org-export-with-tables
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14740 org-export-with-sub-superscripts
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14741 org-export-with-emphasize
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14742 org-export-with-TeX-macros
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14743 org-export-with-LaTeX-fragments
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
14744 (file-name-nondirectory buffer-file-name)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14745 (if (equal org-todo-interpretation 'sequence)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14746 (mapconcat 'identity org-todo-keywords " ")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14747 "TODO FEEDBACK VERIFY DONE")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14748 (if (equal org-todo-interpretation 'type)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14749 (mapconcat 'identity org-todo-keywords " ")
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
14750 "Me Jason Marie DONE")
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
14751 (cdr (assoc org-startup-folded
70010
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
14752 '((nil . "showall") (t . "overview") (content . "content"))))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
14753 (if org-startup-with-deadline-check "dlcheck" "nodlcheck")
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14754 (if org-odd-levels-only "odd" "oddeven")
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14755 (if org-hide-leading-stars "hidestars" "showstars")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14756 (if org-startup-align-all-tables "align" "noalign")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14757 (if org-log-done "logging" "nologging")
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14758 (or (mapconcat (lambda (x)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14759 (cond
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14760 ((equal '(:startgroup) x) "{")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14761 ((equal '(:endgroup) x) "}")
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14762 ((cdr x) (format "%s(%c)" (car x) (cdr x)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14763 (t (car x))))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14764 (or org-tag-alist (org-get-buffer-tags)) " ") "")
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
14765 org-archive-location
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14766 "org file:~/org/%s.org"
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
14767 ))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14768
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14769 (defun org-insert-export-options-template ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14770 "Insert into the buffer a template with information for exporting."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14771 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14772 (if (not (bolp)) (newline))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14773 (let ((s (org-get-current-options)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14774 (and (string-match "#\\+CATEGORY" s)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14775 (setq s (substring s 0 (match-beginning 0))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14776 (insert s)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14777
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14778 (defun org-toggle-fixed-width-section (arg)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14779 "Toggle the fixed-width export.
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14780 If there is no active region, the QUOTE keyword at the current headline is
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14781 inserted or removed. When present, it causes the text between this headline
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14782 and the next to be exported as fixed-width text, and unmodified.
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14783 If there is an active region, this command adds or removes a colon as the
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14784 first character of this line. If the first character of a line is a colon,
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14785 this line is also exported in fixed-width font."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14786 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14787 (let* ((cc 0)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14788 (regionp (org-region-active-p))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14789 (beg (if regionp (region-beginning) (point)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14790 (end (if regionp (region-end)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14791 (nlines (or arg (if (and beg end) (count-lines beg end) 1)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14792 (re "[ \t]*\\(:\\)")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14793 off)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14794 (if regionp
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14795 (save-excursion
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14796 (goto-char beg)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14797 (setq cc (current-column))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14798 (beginning-of-line 1)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14799 (setq off (looking-at re))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14800 (while (> nlines 0)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14801 (setq nlines (1- nlines))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14802 (beginning-of-line 1)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14803 (cond
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14804 (arg
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14805 (move-to-column cc t)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14806 (insert ":\n")
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14807 (forward-line -1))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14808 ((and off (looking-at re))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14809 (replace-match "" t t nil 1))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14810 ((not off) (move-to-column cc t) (insert ":")))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14811 (forward-line 1)))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14812 (save-excursion
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14813 (org-back-to-heading)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14814 (if (looking-at (concat outline-regexp
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14815 "\\( +\\<" org-quote-string "\\>\\)"))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14816 (replace-match "" t t nil 1)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14817 (if (looking-at outline-regexp)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14818 (progn
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14819 (goto-char (match-end 0))
65264
a95981ee377b (calc-embedded-close-formula, calc-embedded-open-formula,
Juanma Barranquero <lekktu@gmail.com>
parents: 65243
diff changeset
14820 (insert " " org-quote-string))))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14821
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14822 (defun org-export-as-html-and-open (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14823 "Export the outline as HTML and immediately open it with a browser.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14824 If there is an active region, export only the region.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14825 The prefix ARG specifies how many levels of the outline should become
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14826 headlines. The default is 3. Lower levels will become bulleted lists."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14827 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14828 (org-export-as-html arg 'hidden)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
14829 (org-open-file buffer-file-name))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14830
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14831 (defun org-export-as-html-batch ()
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
14832 "Call `org-export-as-html', may be used in batch processing as
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14833 emacs --batch
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14834 --load=$HOME/lib/emacs/org.el
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14835 --eval \"(setq org-export-headline-levels 2)\"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14836 --visit=MyFile --funcall org-export-as-html-batch"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14837 (org-export-as-html org-export-headline-levels 'hidden))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14838
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14839 (defun org-export-as-html (arg &optional hidden ext-plist)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14840 "Export the outline as a pretty HTML file.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14841 If there is an active region, export only the region.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14842 The prefix ARG specifies how many levels of the outline should become
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14843 headlines. The default is 3. Lower levels will become bulleted lists.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14844 When HIDDEN is non-nil, don't display the HTML buffer.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14845 EXT-PLIST is a property list with external parameters overriding
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14846 org-mode's default settings, but still inferior to file-local settings."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14847 (interactive "P")
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14848 (message "Exporting...")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14849 (setq-default org-todo-line-regexp org-todo-line-regexp)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14850 (setq-default org-deadline-line-regexp org-deadline-line-regexp)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14851 (setq-default org-done-string org-done-string)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14852 (let* ((opt-plist (org-combine-plists (org-default-export-plist)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14853 ext-plist
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14854 (org-infile-export-plist)))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14855
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14856 (style (plist-get opt-plist :style))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14857 (link-validate (plist-get opt-plist :link-validation-function))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14858 valid
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14859 (odd org-odd-levels-only)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14860 (region-p (org-region-active-p))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14861 (region
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14862 (buffer-substring
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14863 (if region-p (region-beginning) (point-min))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14864 (if region-p (region-end) (point-max))))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14865 ;; The following two are dynamically scoped into other
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14866 ;; routines below.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14867 (org-current-export-dir (org-export-directory :html opt-plist))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14868 (org-current-export-file buffer-file-name)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14869 (all_lines
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14870 (org-skip-comments (org-split-string
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14871 (org-cleaned-string-for-export
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
14872 region :emph-multiline
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14873 (if (plist-get opt-plist :LaTeX-fragments)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
14874 :LaTeX-fragments))
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
14875 "[\r\n]")))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14876 (lines (org-export-find-first-heading-line all_lines))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14877 (level 0) (line "") (origline "") txt todo
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14878 (umax nil)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14879 (filename (concat (file-name-as-directory
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14880 (org-export-directory :html opt-plist))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14881 (file-name-sans-extension
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14882 (file-name-nondirectory buffer-file-name))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14883 ".html"))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
14884 (current-dir (file-name-directory buffer-file-name))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14885 (buffer (find-file-noselect filename))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14886 (levels-open (make-vector org-level-max nil))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14887 (date (format-time-string "%Y/%m/%d" (current-time)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14888 (time (format-time-string "%X" (org-current-time)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14889 (author (plist-get opt-plist :author))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14890 (title (or (plist-get opt-plist :title)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14891 (file-name-sans-extension
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14892 (file-name-nondirectory buffer-file-name))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14893 (quote-re0 (concat "^[ \t]*" org-quote-string "\\>"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14894 (quote-re (concat "^\\(\\*+\\)\\([ \t]*" org-quote-string "\\>\\)"))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14895 (inquote nil)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14896 (infixed nil)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14897 (in-local-list nil)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14898 (local-list-num nil)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14899 (local-list-indent nil)
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
14900 (llt org-plain-list-ordered-item-terminator)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14901 (email (plist-get opt-plist :email))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14902 (language (plist-get opt-plist :language))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14903 (text (plist-get opt-plist :text))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14904 (lang-words nil)
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14905 (target-alist nil) tg
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14906 (head-count 0) cnt
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14907 (start 0)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14908 (coding-system (and (boundp 'buffer-file-coding-system)
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
14909 buffer-file-coding-system))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14910 (coding-system-for-write coding-system)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14911 (save-buffer-coding-system coding-system)
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
14912 (charset (and coding-system
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
14913 (fboundp 'coding-system-get)
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
14914 (coding-system-get coding-system 'mime-charset)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14915 table-open type
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14916 table-buffer table-orig-buffer
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14917 ind start-is-num starter
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14918 rpl path desc descp desc1 desc2 link
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14919 )
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14920 (message "Exporting...")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14921
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
14922 (setq org-last-level 1)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14923 (org-init-section-numbers)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14924
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14925 ;; Get the language-dependent settings
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14926 (setq lang-words (or (assoc language org-export-language-setup)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14927 (assoc "en" org-export-language-setup)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14928
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14929 ;; Switch to the output buffer
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14930 (if (or hidden (not org-export-html-show-new-buffer))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14931 (set-buffer buffer)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14932 (switch-to-buffer-other-window buffer))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14933 (erase-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14934 (fundamental-mode)
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14935 (let ((case-fold-search nil)
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
14936 (org-odd-levels-only odd))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14937 ;; create local variables for all options, to make sure all called
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14938 ;; functions get the correct information
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14939 (mapcar (lambda (x)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
14940 (set (make-local-variable (cdr x))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14941 (plist-get opt-plist (car x))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14942 org-export-plist-vars)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14943 (setq umax (if arg (prefix-numeric-value arg)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
14944 org-export-headline-levels))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14945
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14946 ;; File header
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14947 (insert (format
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14948 "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Strict//EN\"
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14949 \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\">
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14950 <html xmlns=\"http://www.w3.org/1999/xhtml\"
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14951 lang=\"%s\" xml:lang=\"%s\">
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14952 <head>
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14953 <title>%s</title>
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14954 <meta http-equiv=\"Content-Type\" content=\"text/html;charset=%s\"/>
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14955 <meta name=\"generator\" content=\"Org-mode\"/>
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14956 <meta name=\"generated\" content=\"%s %s\"/>
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14957 <meta name=\"author\" content=\"%s\"/>
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14958 %s
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14959 </head><body>
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14960 "
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14961 language language (org-html-expand title) (or charset "iso-8859-1")
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
14962 date time author style))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14963
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14964
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14965 (insert (or (plist-get opt-plist :preamble) ""))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14966
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14967 (when (plist-get opt-plist :auto-preamble)
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14968 (if title (insert (format org-export-html-title-format
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14969 (org-html-expand title))))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14970 (if text (insert "<p>\n" (org-html-expand text) "</p>")))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14971
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14972 (if org-export-with-toc
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14973 (progn
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14974 (insert (format "<h%d>%s</h%d>\n"
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14975 org-export-html-toplevel-hlevel
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14976 (nth 3 lang-words)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
14977 org-export-html-toplevel-hlevel))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
14978 (insert "<ul>\n<li>")
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14979 (setq lines
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14980 (mapcar '(lambda (line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14981 (if (string-match org-todo-line-regexp line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14982 ;; This is a headline
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14983 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14984 (setq level (- (match-end 1) (match-beginning 1))
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
14985 level (org-tr-level level)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14986 txt (save-match-data
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14987 (org-html-expand
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
14988 (org-export-cleanup-toc-line
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14989 (match-string 3 line))))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14990 todo
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14991 (or (and org-export-mark-todo-in-toc
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
14992 (match-beginning 2)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14993 (not (equal (match-string 2 line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14994 org-done-string)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14995 ; TODO, not DONE
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14996 (and org-export-mark-todo-in-toc
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
14997 (= level umax)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14998 (org-search-todo-below
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
14999 line lines level))))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
15000 (if (and (memq org-export-with-tags '(not-in-toc nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
15001 (string-match "[ \t]+:[a-zA-Z0-9_@:]+:[ \t]*$" txt))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
15002 (setq txt (replace-match "" t t txt)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
15003 (if (string-match quote-re0 txt)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
15004 (setq txt (replace-match "" t t txt)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15005 (if org-export-with-section-numbers
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15006 (setq txt (concat (org-section-number level)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15007 " " txt)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15008 (if (<= level umax)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15009 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15010 (setq head-count (+ head-count 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15011 (if (> level org-last-level)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15012 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15013 (setq cnt (- level org-last-level))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15014 (while (>= (setq cnt (1- cnt)) 0)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15015 (insert "\n<ul>\n<li>"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15016 (insert "\n")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15017 (if (< level org-last-level)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15018 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15019 (setq cnt (- org-last-level level))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15020 (while (>= (setq cnt (1- cnt)) 0)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15021 (insert "</li>\n</ul>"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15022 (insert "\n")))
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15023 ;; Check for targets
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15024 (while (string-match org-target-regexp line)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15025 (setq tg (match-string 1 line)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15026 line (replace-match
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15027 (concat "@<span class=\"target\">" tg "@</span> ")
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15028 t t line))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15029 (push (cons (org-solidify-link-text tg)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15030 (format "sec-%d" head-count))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15031 target-alist))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15032 (while (string-match "&lt;\\(&lt;\\)+\\|&gt;\\(&gt;\\)+" txt)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15033 (setq txt (replace-match "" t t txt)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15034 (insert
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15035 (format
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15036 (if todo
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15037 "</li>\n<li><a href=\"#sec-%d\"><span class=\"todo\">%s</span></a>"
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15038 "</li>\n<li><a href=\"#sec-%d\">%s</a>")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15039 head-count txt))
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15040
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15041 (setq org-last-level level))
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15042 )))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15043 line)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15044 lines))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15045 (while (> org-last-level 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15046 (setq org-last-level (1- org-last-level))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15047 (insert "</li>\n</ul>\n"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15048 ))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15049 (setq head-count 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15050 (org-init-section-numbers)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
15051
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15052 (while (setq line (pop lines) origline line)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15053 (catch 'nextline
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15054
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15055 ;; end of quote section?
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15056 (when (and inquote (string-match "^\\*+" line))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15057 (insert "</pre>\n")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15058 (setq inquote nil))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15059 ;; inside a quote section?
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15060 (when inquote
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15061 (insert (org-html-protect line) "\n")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15062 (throw 'nextline nil))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15063
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15064 ;; verbatim lines
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15065 (when (and org-export-with-fixed-width
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15066 (string-match "^[ \t]*:\\(.*\\)" line))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15067 (when (not infixed)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15068 (setq infixed t)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15069 (insert "<pre>\n"))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15070 (insert (org-html-protect (match-string 1 line)) "\n")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15071 (when (and lines
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15072 (not (string-match "^[ \t]*\\(:.*\\)"
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15073 (car lines))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15074 (setq infixed nil)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15075 (insert "</pre>\n"))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15076 (throw 'nextline nil))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
15077
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
15078
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
15079 ;; make targets to anchors
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15080 (while (string-match "<<<?\\([^<>]*\\)>>>?\\((INVISIBLE)\\)?[ \t]*\n?" line)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15081 (cond
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15082 ((match-end 2)
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15083 (setq line (replace-match
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15084 (concat "@<a name=\""
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15085 (org-solidify-link-text (match-string 1 line))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15086 "\">\\nbsp@</a>")
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15087 t t line)))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15088 ((and org-export-with-toc (equal (string-to-char line) ?*))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15089 (setq line (replace-match
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15090 (concat "@<span class=\"target\">" (match-string 1 line) "@</span> ")
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15091 ; (concat "@<i>" (match-string 1 line) "@</i> ")
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15092 t t line)))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15093 (t
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15094 (setq line (replace-match
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15095 (concat "@<a name=\""
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15096 (org-solidify-link-text (match-string 1 line))
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15097 "\" class=\"target\">" (match-string 1 line) "@</a> ")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15098 t t line)))))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
15099
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15100 (setq line (org-html-handle-time-stamps line))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15101
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15102 ;; replace "&" by "&amp;", "<" and ">" by "&lt;" and "&gt;"
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
15103 ;; handle @<..> HTML tags (replace "@&gt;..&lt;" by "<..>")
70953
971aad463b69 (org-next-item, org-previous-item): Emit more compact
Carsten Dominik <dominik@science.uva.nl>
parents: 70866
diff changeset
15104 ;; Also handle sub_superscripts and checkboxes
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
15105 (setq line (org-html-expand line))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
15106
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15107 ;; Format the links
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15108 (setq start 0)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15109 (while (string-match org-bracket-link-analytic-regexp line start)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15110 (setq start (match-beginning 0))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15111 (setq type (if (match-end 2) (match-string 2 line) "internal"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15112 (setq path (match-string 3 line))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15113 (setq desc1 (if (match-end 5) (match-string 5 line))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15114 desc2 (if (match-end 2) (concat type ":" path) path)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15115 descp (and desc1 (not (equal desc1 desc2)))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15116 desc (or desc1 desc2))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15117 ;; FIXME: do we need to unescape here somewhere?
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15118 (cond
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15119 ((equal type "internal")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15120 (setq rpl
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15121 (concat
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15122 "<a href=\"#"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15123 (org-solidify-link-text path target-alist)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15124 "\">" desc "</a>")))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15125 ((member type '("http" "https" "ftp" "mailto" "news"))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15126 ;; standard URL
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15127 (setq link (concat type ":" path))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15128 (setq rpl (concat "<a href=\"" link "\">" desc "</a>")))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15129 ((string= type "file")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15130 ;; FILE link
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15131 (let* ((filename path)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15132 (abs-p (file-name-absolute-p filename))
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15133 thefile file-is-image-p search)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15134 (save-match-data
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15135 (if (string-match "::\\(.*\\)" filename)
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15136 (setq search (match-string 1 filename)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15137 filename (replace-match "" t nil filename)))
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15138 (setq valid
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15139 (if (functionp link-validate)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15140 (funcall link-validate filename current-dir)
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
15141 t))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15142 (setq file-is-image-p
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15143 (string-match (org-image-file-name-regexp) filename))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15144 (setq thefile (if abs-p (expand-file-name filename) filename))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15145 (when (and org-export-html-link-org-files-as-html
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15146 (string-match "\\.org$" thefile))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15147 (setq thefile (concat (substring thefile 0
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15148 (match-beginning 0))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15149 ".html"))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15150 (if (and search
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15151 ;; make sure this is can be used as target search
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15152 (not (string-match "^[0-9]*$" search))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15153 (not (string-match "^\\*" search))
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15154 (not (string-match "^/.*/$" search)))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15155 (setq thefile (concat thefile "#"
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15156 (org-solidify-link-text
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15157 (org-link-unescape search)))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15158 (when (string-match "^file:" desc)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15159 (setq desc (replace-match "" t t desc))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15160 (if (string-match "\\.org$" desc)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15161 (setq desc (replace-match "" t t desc))))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15162 (setq rpl (if (and file-is-image-p
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15163 (or (eq t org-export-html-inline-images)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15164 (and org-export-html-inline-images
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15165 (not descp))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15166 (concat "<img src=\"" thefile "\"/>")
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15167 (concat "<a href=\"" thefile "\">" desc "</a>")))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15168 (if (not valid) (setq rpl desc))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15169 ((member type '("bbdb" "vm" "wl" "mhe" "rmail" "gnus" "shell" "info" "elisp"))
70064
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
15170 (setq rpl (concat "<i>&lt;" type ":"
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
15171 (save-match-data (org-link-unescape path))
28d6f65fa9e6 (org-insert-heading): Insert heading before current if at
Carsten Dominik <dominik@science.uva.nl>
parents: 70019
diff changeset
15172 "&gt;</i>"))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15173 (setq line (replace-match rpl t t line)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15174 start (+ start (length rpl))))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15175 ;; TODO items
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15176 (if (and (string-match org-todo-line-regexp line)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15177 (match-beginning 2))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15178 (if (equal (match-string 2 line) org-done-string)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15179 (setq line (replace-match
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15180 "<span class=\"done\">\\2</span>"
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15181 t nil line 2))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15182 (setq line (replace-match "<span class=\"todo\">\\2</span>"
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15183 t nil line 2))))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15184
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15185 (cond
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15186 ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15187 ;; This is a headline
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
15188 (setq level (org-tr-level (- (match-end 1) (match-beginning 1)))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15189 txt (match-string 2 line))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15190 (if (string-match quote-re0 txt)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15191 (setq txt (replace-match "" t t txt)))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15192 (if (<= level umax) (setq head-count (+ head-count 1)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15193 (when in-local-list
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15194 ;; Close any local lists before inserting a new header line
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15195 (while local-list-num
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15196 (org-close-li)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15197 (insert (if (car local-list-num) "</ol>\n" "</ul>"))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15198 (pop local-list-num))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15199 (setq local-list-indent nil
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15200 in-local-list nil))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15201 (org-html-level-start level txt umax
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15202 (and org-export-with-toc (<= level umax))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15203 head-count)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15204 ;; QUOTES
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15205 (when (string-match quote-re line)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15206 (insert "<pre>")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15207 (setq inquote t)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15208
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15209 ((and org-export-with-tables
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15210 (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" line))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15211 (if (not table-open)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15212 ;; New table starts
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15213 (setq table-open t table-buffer nil table-orig-buffer nil))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15214 ;; Accumulate lines
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15215 (setq table-buffer (cons line table-buffer)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15216 table-orig-buffer (cons origline table-orig-buffer))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15217 (when (or (not lines)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15218 (not (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)"
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15219 (car lines))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15220 (setq table-open nil
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15221 table-buffer (nreverse table-buffer)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15222 table-orig-buffer (nreverse table-orig-buffer))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15223 (org-close-par-maybe)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15224 (insert (org-format-table-html table-buffer table-orig-buffer))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15225 (t
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15226 ;; Normal lines
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15227 (when (string-match
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15228 (cond
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
15229 ((eq llt t) "^\\([ \t]*\\)\\(\\([-+*] \\)\\|\\([0-9]+[.)]\\) \\)?\\( *[^ \t\n\r]\\|[ \t]*$\\)")
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
15230 ((= llt ?.) "^\\([ \t]*\\)\\(\\([-+*] \\)\\|\\([0-9]+\\.\\) \\)?\\( *[^ \t\n\r]\\|[ \t]*$\\)")
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
15231 ((= llt ?\)) "^\\( \t]*\\)\\(\\([-+*] \\)\\|\\([0-9]+)\\) \\)?\\( *[^ \t\n\r]\\|[ \t]*$\\)")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15232 (t (error "Invalid value of `org-plain-list-ordered-item-terminator'")))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15233 line)
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15234 (setq ind (org-get-string-indentation line)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15235 start-is-num (match-beginning 4)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15236 starter (if (match-beginning 2)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15237 (substring (match-string 2 line) 0 -1))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15238 line (substring line (match-beginning 5)))
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
15239 (unless (string-match "[^ \t]" line)
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15240 ;; empty line. Pretend indentation is large.
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15241 (setq ind (1+ (or (car local-list-indent) 1))))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15242 (while (and in-local-list
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15243 (or (and (= ind (car local-list-indent))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15244 (not starter))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15245 (< ind (car local-list-indent))))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15246 (org-close-li)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15247 (insert (if (car local-list-num) "</ol>\n" "</ul>"))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15248 (pop local-list-num) (pop local-list-indent)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15249 (setq in-local-list local-list-indent))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15250 (cond
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15251 ((and starter
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15252 (or (not in-local-list)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15253 (> ind (car local-list-indent))))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15254 ;; Start new (level of ) list
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15255 (org-close-par-maybe)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15256 (insert (if start-is-num "<ol>\n<li>\n" "<ul>\n<li>\n"))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15257 (push start-is-num local-list-num)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15258 (push ind local-list-indent)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15259 (setq in-local-list t))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15260 (starter
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15261 ;; continue current list
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15262 (org-close-li)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15263 (insert "<li>\n")))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15264 (if (string-match "^[ \t]*\\[\\([X ]\\)\\]" line)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15265 (setq line
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15266 (replace-match
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15267 (if (equal (match-string 1 line) "X")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15268 "<b>[X]</b>"
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15269 "<b>[<span style=\"visibility:hidden;\">X</span>]</b>")
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15270 t t line))))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15271
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15272 ;; Empty lines start a new paragraph. If hand-formatted lists
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15273 ;; are not fully interpreted, lines starting with "-", "+", "*"
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15274 ;; also start a new paragraph.
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15275 (if (string-match "^ [-+*]-\\|^[ \t]*$" line) (org-open-par))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15276
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15277 ;; Check if the line break needs to be conserved
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15278 (cond
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15279 ((string-match "\\\\\\\\[ \t]*$" line)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15280 (setq line (replace-match "<br/>" t t line)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15281 (org-export-preserve-breaks
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15282 (setq line (concat line "<br/>"))))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15283
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15284 (insert line "\n")))))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15285
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15286 ;; Properly close all local lists and other lists
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15287 (when inquote (insert "</pre>\n"))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15288 (when in-local-list
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15289 ;; Close any local lists before inserting a new header line
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15290 (while local-list-num
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15291 (org-close-li)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15292 (insert (if (car local-list-num) "</ol>\n" "</ul>\n"))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15293 (pop local-list-num))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15294 (setq local-list-indent nil
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15295 in-local-list nil))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15296 (org-html-level-start 1 nil umax
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15297 (and org-export-with-toc (<= level umax))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15298 head-count)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15299
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15300 (when (plist-get opt-plist :auto-postamble)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15301 (when author
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15302 (insert "<p class=\"author\"> "
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15303 (nth 1 lang-words) ": " author "\n")
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15304 (when email
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15305 (insert "<a href=\"mailto:" email "\">&lt;"
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15306 email "&gt;</a>\n"))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15307 (insert "</p>\n"))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15308 (when (and date time)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15309 (insert "<p class=\"date\"> "
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15310 (nth 2 lang-words) ": "
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15311 date " " time "</p>\n")))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15312
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15313 (if org-export-html-with-timestamp
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15314 (insert org-export-html-html-helper-timestamp))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15315 (insert (or (plist-get opt-plist :postamble) ""))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15316 (insert "</body>\n</html>\n")
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15317 (normal-mode)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15318 ;; remove empty paragraphs and lists
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15319 (goto-char (point-min))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15320 (while (re-search-forward "<p>[ \r\n\t]*</p>" nil t)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15321 (replace-match ""))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15322 (goto-char (point-min))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15323 (while (re-search-forward "<li>[ \r\n\t]*</li>\n?" nil t)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15324 (replace-match ""))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15325 (save-buffer)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15326 (goto-char (point-min))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15327 (message "Exporting... done"))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15328
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15329
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15330 (defun org-format-table-html (lines olines)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15331 "Find out which HTML converter to use and return the HTML code."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15332 (if (string-match "^[ \t]*|" (car lines))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15333 ;; A normal org table
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15334 (org-format-org-table-html lines)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15335 ;; Table made by table.el - test for spanning
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15336 (let* ((hlines (delq nil (mapcar
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15337 (lambda (x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15338 (if (string-match "^[ \t]*\\+-" x) x
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15339 nil))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15340 lines)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15341 (first (car hlines))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15342 (ll (and (string-match "\\S-+" first)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15343 (match-string 0 first)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15344 (re (concat "^[ \t]*" (regexp-quote ll)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15345 (spanning (delq nil (mapcar (lambda (x) (not (string-match re x)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15346 hlines))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15347 (if (and (not spanning)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15348 (not org-export-prefer-native-exporter-for-tables))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15349 ;; We can use my own converter with HTML conversions
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15350 (org-format-table-table-html lines)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15351 ;; Need to use the code generator in table.el, with the original text.
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15352 (org-format-table-table-html-using-table-generate-source olines)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15353
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15354 (defun org-format-org-table-html (lines)
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
15355 "Format a table into HTML."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15356 (if (string-match "^[ \t]*|-" (car lines)) (setq lines (cdr lines)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15357 (setq lines (nreverse lines))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15358 (if (string-match "^[ \t]*|-" (car lines)) (setq lines (cdr lines)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15359 (setq lines (nreverse lines))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15360 (when org-export-table-remove-special-lines
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15361 ;; Check if the table has a marking column. If yes remove the
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15362 ;; column and the special lines
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15363 (let* ((special
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15364 (not
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15365 (memq nil
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15366 (mapcar
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15367 (lambda (x)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15368 (or (string-match "^[ \t]*|-" x)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15369 (string-match "^[ \t]*| *\\([#!$*_^ ]\\) *|" x)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15370 lines)))))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15371 (if special
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15372 (setq lines
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15373 (delq nil
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15374 (mapcar
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15375 (lambda (x)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15376 (if (string-match "^[ \t]*| *[!_^] *|" x)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15377 nil ; ignore this line
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15378 (and (or (string-match "^[ \t]*|-+\\+" x)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15379 (string-match "^[ \t]*|[^|]*|" x))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15380 (replace-match "|" t t x))))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
15381 lines))))))
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
15382
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15383 (let ((head (and org-export-highlight-first-table-line
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15384 (delq nil (mapcar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15385 (lambda (x) (string-match "^[ \t]*|-" x))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15386 (cdr lines)))))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15387 line fields html)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15388 (setq html (concat org-export-html-table-tag "\n"))
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
15389 (while (setq line (pop lines))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15390 (catch 'next-line
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15391 (if (string-match "^[ \t]*|-" line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15392 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15393 (setq head nil) ;; head ends here, first time around
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15394 ;; ignore this line
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15395 (throw 'next-line t)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15396 ;; Break the line into fields
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15397 (setq fields (org-split-string line "[ \t]*|[ \t]*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15398 (setq html (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15399 html
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15400 "<tr>"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15401 (mapconcat (lambda (x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15402 (if head
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15403 (concat "<th>" x "</th>")
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15404 (concat "<td>" x "</td>")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15405 fields "")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15406 "</tr>\n"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15407 (setq html (concat html "</table>\n"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15408 html))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15409
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15410 (defun org-fake-empty-table-line (line)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15411 "Replace everything except \"|\" with spaces."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15412 (let ((i (length line))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15413 (newstr (copy-sequence line)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15414 (while (> i 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15415 (setq i (1- i))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15416 (if (not (eq (aref newstr i) ?|))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15417 (aset newstr i ?\ )))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15418 newstr))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15419
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15420 (defun org-format-table-table-html (lines)
69121
39ec690b89d6 (org-xemacs-p, org-export-html-show-new-buffer, org-table-may-need-update,
Juanma Barranquero <lekktu@gmail.com>
parents: 69116
diff changeset
15421 "Format a table generated by table.el into HTML.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15422 This conversion does *not* use `table-generate-source' from table.el.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15423 This has the advantage that Org-mode's HTML conversions can be used.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15424 But it has the disadvantage, that no cell- or row-spanning is allowed."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15425 (let (line field-buffer
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15426 (head org-export-highlight-first-table-line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15427 fields html empty)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15428 (setq html (concat org-export-html-table-tag "\n"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15429 (while (setq line (pop lines))
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15430 (setq empty "&nbsp;")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15431 (catch 'next-line
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15432 (if (string-match "^[ \t]*\\+-" line)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15433 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15434 (if field-buffer
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15435 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15436 (setq html (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15437 html
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15438 "<tr>"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15439 (mapconcat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15440 (lambda (x)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15441 (if (equal x "") (setq x empty))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15442 (if head
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15443 (concat "<th>" x "</th>\n")
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
15444 (concat "<td>" x "</td>\n")))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15445 field-buffer "\n")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15446 "</tr>\n"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15447 (setq head nil)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15448 (setq field-buffer nil)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15449 ;; Ignore this line
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15450 (throw 'next-line t)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15451 ;; Break the line into fields and store the fields
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15452 (setq fields (org-split-string line "[ \t]*|[ \t]*"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15453 (if field-buffer
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15454 (setq field-buffer (mapcar
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15455 (lambda (x)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15456 (concat x "<br/>" (pop fields)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15457 field-buffer))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15458 (setq field-buffer fields))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15459 (setq html (concat html "</table>\n"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15460 html))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15461
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15462 (defun org-format-table-table-html-using-table-generate-source (lines)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15463 "Format a table into html, using `table-generate-source' from table.el.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15464 This has the advantage that cell- or row-spanning is allowed.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15465 But it has the disadvantage, that Org-mode's HTML conversions cannot be used."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15466 (require 'table)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
15467 (with-current-buffer (get-buffer-create " org-tmp1 ")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15468 (erase-buffer)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15469 (insert (mapconcat 'identity lines "\n"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15470 (goto-char (point-min))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15471 (if (not (re-search-forward "|[^+]" nil t))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15472 (error "Error processing table"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15473 (table-recognize-table)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
15474 (with-current-buffer (get-buffer-create " org-tmp2 ") (erase-buffer))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15475 (table-generate-source 'html " org-tmp2 ")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15476 (set-buffer " org-tmp2 ")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15477 (buffer-substring (point-min) (point-max))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15478
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15479 (defun org-html-handle-time-stamps (s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15480 "Format time stamps in string S, or remove them."
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15481 (catch 'exit
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15482 (let (r b)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15483 (while (string-match org-maybe-keyword-time-regexp s)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15484 (if (and (match-end 1) (equal (match-string 1 s) org-clock-string))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
15485 ;; never export CLOCK
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15486 (throw 'exit ""))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15487 (or b (setq b (substring s 0 (match-beginning 0))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15488 (if (not org-export-with-timestamps)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15489 (setq r (concat r (substring s 0 (match-beginning 0)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15490 s (substring s (match-end 0)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15491 (setq r (concat
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15492 r (substring s 0 (match-beginning 0))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15493 (if (match-end 1)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15494 (format "@<span class=\"timestamp-kwd\">%s @</span>"
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15495 (match-string 1 s)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15496 (format " @<span class=\"timestamp\">%s@</span>"
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15497 (substring (match-string 3 s) 1 -1)))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15498 s (substring s (match-end 0)))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15499 ;; Line break if line started and ended with time stamp stuff
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15500 (if (not r)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15501 s
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15502 (setq r (concat r s))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15503 (unless (string-match "\\S-" (concat b s))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15504 (setq r (concat r "@<br/>")))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
15505 r))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15506
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15507 (defun org-html-protect (s)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15508 ;; convert & to &amp;, < to &lt; and > to &gt;
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15509 (let ((start 0))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15510 (while (string-match "&" s start)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15511 (setq s (replace-match "&amp;" t t s)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15512 start (1+ (match-beginning 0))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15513 (while (string-match "<" s)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15514 (setq s (replace-match "&lt;" t t s)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15515 (while (string-match ">" s)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15516 (setq s (replace-match "&gt;" t t s))))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15517 s)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15518
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
15519 (defun org-export-cleanup-toc-line (s)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15520 "Remove tags and time staps from lines going into the toc."
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15521 (if (string-match " +:[a-zA-Z0-9_@:]+: *$" s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15522 (setq s (replace-match "" t t s)))
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
15523 (when org-export-remove-timestamps-from-toc
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
15524 (while (string-match org-maybe-keyword-time-regexp s)
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
15525 (setq s (replace-match "" t t s))))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15526 s)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15527
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15528 (defun org-html-expand (string)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15529 "Prepare STRING for HTML export. Applies all active conversions.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15530 If there are links in the string, don't modify these."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15531 (let* (m s l res)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15532 (while (setq m (string-match org-bracket-link-regexp string))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15533 (setq s (substring string 0 m)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15534 l (match-string 0 string)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15535 string (substring string (match-end 0)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15536 (push (org-html-do-expand s) res)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15537 (push l res))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15538 (push (org-html-do-expand string) res)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15539 (apply 'concat (nreverse res))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15540
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15541 (defun org-html-do-expand (s)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15542 "Apply all active conversions to translate special ASCII to HTML."
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15543 (setq s (org-html-protect s))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15544 (if org-export-html-expand
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15545 (while (string-match "@&lt;\\([^&]*\\)&gt;" s)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15546 (setq s (replace-match "<\\1>" t nil s))))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15547 (if org-export-with-emphasize
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15548 (setq s (org-export-html-convert-emphasize s)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15549 (if org-export-with-sub-superscripts
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15550 (setq s (org-export-html-convert-sub-super s)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15551 (if org-export-with-TeX-macros
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15552 (let ((start 0) wd ass)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15553 (while (setq start (string-match "\\\\\\([a-zA-Z]+\\)" s start))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15554 (setq wd (match-string 1 s))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15555 (if (setq ass (assoc wd org-html-entities))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15556 (setq s (replace-match (or (cdr ass)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15557 (concat "&" (car ass) ";"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15558 t t s))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15559 (setq start (+ start (length wd)))))))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15560 s)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15561
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15562 (defun org-create-multibrace-regexp (left right n)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15563 "Create a regular expression which will match a balanced sexp.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15564 Opening delimiter is LEFT, and closing delimiter is RIGHT, both given
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15565 as single character strings.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15566 The regexp returned will match the entire expression including the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15567 delimiters. It will also define a single group which contains the
62076
4f2150e05f24 (org-get-entries-from-diary): Remove unused vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 61924
diff changeset
15568 match except for the outermost delimiters. The maximum depth of
4f2150e05f24 (org-get-entries-from-diary): Remove unused vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 61924
diff changeset
15569 stacked delimiters is N. Escaping delimiters is not possible."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15570 (let* ((nothing (concat "[^" "\\" left "\\" right "]*?"))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15571 (or "\\|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15572 (re nothing)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15573 (next (concat "\\(?:" nothing left nothing right "\\)+" nothing)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15574 (while (> n 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15575 (setq n (1- n)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15576 re (concat re or next)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15577 next (concat "\\(?:" nothing left next right "\\)+" nothing)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15578 (concat left "\\(" re "\\)" right)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15579
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15580 (defvar org-match-substring-regexp
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15581 (concat
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15582 "\\([^\\]\\)\\([_^]\\)\\("
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15583 "\\(" (org-create-multibrace-regexp "{" "}" org-match-sexp-depth) "\\)"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15584 "\\|"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15585 "\\(" (org-create-multibrace-regexp "(" ")" org-match-sexp-depth) "\\)"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15586 "\\|"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15587 "\\(\\(?:\\*\\|[-+]?[^-+*!@#$%^_ \t\r\n,:\"?<>~;./{}=()]+\\)\\)\\)")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15588 "The regular expression matching a sub- or superscript.")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15589
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15590 (defun org-export-html-convert-sub-super (string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15591 "Convert sub- and superscripts in STRING to HTML."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15592 (let (key c)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15593 (while (string-match org-match-substring-regexp string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15594 (setq key (if (string= (match-string 2 string) "_") "sub" "sup"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15595 (setq c (or (match-string 8 string)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15596 (match-string 6 string)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15597 (match-string 5 string)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15598 (setq string (replace-match
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15599 (concat (match-string 1 string)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15600 "<" key ">" c "</" key ">")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15601 t t string)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15602 (while (string-match "\\\\\\([_^]\\)" string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15603 (setq string (replace-match (match-string 1 string) t t string))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15604 string)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15605
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15606 (defun org-export-html-convert-emphasize (string)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15607 "Apply emphasis."
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15608 (while (string-match org-emph-re string)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15609 (setq string (replace-match (concat "\\1" (nth 2 (assoc (match-string 3 string) org-emphasis-alist)) "\\4" (nth 3 (assoc (match-string 3 string) org-emphasis-alist)) "\\5") t nil string)))
70132
f8b9335f0cad * org.el (org-deadline-announce): Face removed.
Carsten Dominik <dominik@science.uva.nl>
parents: 70064
diff changeset
15610 string)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15611
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15612 (defvar org-par-open nil)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15613 (defun org-open-par ()
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15614 "Insert <p>, but first close previous paragraph if any."
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15615 (org-close-par-maybe)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15616 (insert "\n<p>")
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15617 (setq org-par-open t))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15618 (defun org-close-par-maybe ()
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15619 "Close paragraph if there is one open."
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15620 (when org-par-open
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15621 (insert "</p>")
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15622 (setq org-par-open nil)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15623 (defun org-close-li ()
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15624 "Close <li> if necessary."
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15625 (org-close-par-maybe)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15626 (insert "</li>\n"))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15627 ; (when (save-excursion
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15628 ; (re-search-backward "</?\\(ul\\|ol\\|li\\|[hH][0-9]\\)>" nil t))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15629 ; (if (member (match-string 0) '("</ul>" "</ol>" "<li>"))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15630 ; (insert "</li>"))))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15631
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15632 (defun org-html-level-start (level title umax with-toc head-count)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15633 "Insert a new level in HTML export.
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15634 When TITLE is nil, just close all open levels."
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15635 (org-close-par-maybe)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15636 (let ((l (1+ (max level umax))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15637 (while (<= l org-level-max)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15638 (if (aref levels-open (1- l))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15639 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15640 (org-html-level-close l)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15641 (aset levels-open (1- l) nil)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15642 (setq l (1+ l)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15643 (when title
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15644 ;; If title is nil, this means this function is called to close
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15645 ;; all levels, so the rest is done only if title is given
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15646 (when (string-match "\\(:[a-zA-Z0-9_@:]+:\\)[ \t]*$" title)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15647 (setq title (replace-match
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15648 (if org-export-with-tags
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15649 (save-match-data
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15650 (concat
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15651 "&nbsp;&nbsp;&nbsp;<span class=\"tag\">"
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15652 (mapconcat 'identity (org-split-string
71244
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15653 (match-string 1 title) ":")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15654 "&nbsp;")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15655 "</span>"))
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15656 "")
11ad1dbc7d45 (org-archive-subtree): Use end-of-subtree as insertion
Carsten Dominik <dominik@science.uva.nl>
parents: 71096
diff changeset
15657 t t title)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15658 (if (> level umax)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15659 (progn
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15660 (if (aref levels-open (1- level))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15661 (progn
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15662 (org-close-li)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15663 (insert "<li>" title "<br/>\n"))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15664 (aset levels-open (1- level) t)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15665 (org-close-par-maybe)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15666 (insert "<ul>\n<li>" title "<br/>\n")))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15667 (if org-export-with-section-numbers
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15668 (setq title (concat (org-section-number level) " " title)))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
15669 (setq level (+ level org-export-html-toplevel-hlevel -1))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15670 (if with-toc
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15671 (insert (format "\n<h%d><a name=\"sec-%d\">%s</a></h%d>\n"
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15672 level head-count title level))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15673 (insert (format "\n<h%d>%s</h%d>\n" level title level)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15674 (org-open-par)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15675
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
15676 (defun org-html-level-close (&rest args)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15677 "Terminate one level in HTML export."
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15678 (org-close-li)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15679 (insert "</ul>"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15680
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15681 ;; Variable holding the vector with section numbers
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15682 (defvar org-section-numbers (make-vector org-level-max 0))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15683
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15684 (defun org-init-section-numbers ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15685 "Initialize the vector for the section numbers."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15686 (let* ((level -1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15687 (numbers (nreverse (org-split-string "" "\\.")))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15688 (depth (1- (length org-section-numbers)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15689 (i depth) number-string)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15690 (while (>= i 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15691 (if (> i level)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15692 (aset org-section-numbers i 0)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15693 (setq number-string (or (car numbers) "0"))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15694 (if (string-match "\\`[A-Z]\\'" number-string)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15695 (aset org-section-numbers i
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15696 (- (string-to-char number-string) ?A -1))
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
15697 (aset org-section-numbers i (string-to-number number-string)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15698 (pop numbers))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15699 (setq i (1- i)))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15700
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15701 (defun org-section-number (&optional level)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15702 "Return a string with the current section number.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15703 When LEVEL is non-nil, increase section numbers on that level."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15704 (let* ((depth (1- (length org-section-numbers))) idx n (string ""))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15705 (when level
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15706 (when (> level -1)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15707 (aset org-section-numbers
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15708 level (1+ (aref org-section-numbers level))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15709 (setq idx (1+ level))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15710 (while (<= idx depth)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15711 (if (not (= idx 1))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15712 (aset org-section-numbers idx 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15713 (setq idx (1+ idx))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15714 (setq idx 0)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15715 (while (<= idx depth)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15716 (setq n (aref org-section-numbers idx))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15717 (setq string (concat string (if (not (string= string "")) "." "")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
15718 (int-to-string n)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15719 (setq idx (1+ idx)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15720 (save-match-data
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15721 (if (string-match "\\`\\([@0]\\.\\)+" string)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15722 (setq string (replace-match "" t nil string)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15723 (if (string-match "\\(\\.0\\)+\\'" string)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
15724 (setq string (replace-match "" t nil string))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15725 string))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15726
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15727
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15728 ;;;###autoload
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15729 (defun org-export-icalendar-this-file ()
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15730 "Export current file as an iCalendar file.
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15731 The iCalendar file will be located in the same directory as the Org-mode
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15732 file, but with extension `.ics'."
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15733 (interactive)
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
15734 (org-export-icalendar nil buffer-file-name))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15735
70010
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15736 (defun org-export-as-xoxo-insert-into (buffer &rest output)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15737 (with-current-buffer buffer
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15738 (apply 'insert output)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
15739 (put 'org-export-as-xoxo-insert-into 'lisp-indent-function 1)
70010
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15740
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15741 (defun org-export-as-xoxo (&optional buffer)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15742 "Export the org buffer as XOXO.
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15743 The XOXO buffer is named *xoxo-<source buffer name>*"
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15744 (interactive (list (current-buffer)))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15745 ;; A quickie abstraction
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15746
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15747 ;; Output everything as XOXO
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15748 (with-current-buffer (get-buffer buffer)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15749 (goto-char (point-min)) ;; CD: beginning-of-buffer is not allowed.
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15750 (let* ((opt-plist (org-combine-plists (org-default-export-plist)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15751 (org-infile-export-plist)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15752 (filename (concat (file-name-as-directory
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15753 (org-export-directory :xoxo opt-plist))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15754 (file-name-sans-extension
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15755 (file-name-nondirectory buffer-file-name))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15756 ".html"))
70010
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15757 (out (find-file-noselect filename))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15758 (last-level 1)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15759 (hanging-li nil))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15760 ;; Check the output buffer is empty.
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15761 (with-current-buffer out (erase-buffer))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15762 ;; Kick off the output
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15763 (org-export-as-xoxo-insert-into out "<ol class='xoxo'>\n")
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15764 (while (re-search-forward "^\\(\\*+\\) \\(.+\\)" (point-max) 't)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15765 (let* ((hd (match-string-no-properties 1))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15766 (level (length hd))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15767 (text (concat
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15768 (match-string-no-properties 2)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15769 (save-excursion
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15770 (goto-char (match-end 0))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15771 (let ((str ""))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15772 (catch 'loop
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15773 (while 't
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15774 (forward-line)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15775 (if (looking-at "^[ \t]\\(.*\\)")
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15776 (setq str (concat str (match-string-no-properties 1)))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15777 (throw 'loop str)))))))))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15778
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15779 ;; Handle level rendering
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15780 (cond
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15781 ((> level last-level)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15782 (org-export-as-xoxo-insert-into out "\n<ol>\n"))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15783
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15784 ((< level last-level)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15785 (dotimes (- (- last-level level) 1)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15786 (if hanging-li
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15787 (org-export-as-xoxo-insert-into out "</li>\n"))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15788 (org-export-as-xoxo-insert-into out "</ol>\n"))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15789 (when hanging-li
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15790 (org-export-as-xoxo-insert-into out "</li>\n")
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15791 (setq hanging-li nil)))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15792
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15793 ((equal level last-level)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15794 (if hanging-li
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15795 (org-export-as-xoxo-insert-into out "</li>\n")))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15796 )
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15797
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15798 (setq last-level level)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15799
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15800 ;; And output the new li
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15801 (setq hanging-li 't)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15802 (if (equal ?+ (elt text 0))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15803 (org-export-as-xoxo-insert-into out "<li class='" (substring text 1) "'>")
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15804 (org-export-as-xoxo-insert-into out "<li>" text))))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15805
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15806 ;; Finally finish off the ol
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15807 (dotimes (- last-level 1)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15808 (if hanging-li
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15809 (org-export-as-xoxo-insert-into out "</li>\n"))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15810 (org-export-as-xoxo-insert-into out "</ol>\n"))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15811
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15812 ;; Finish the buffer off and clean it up.
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15813 (switch-to-buffer-other-window out)
70162
1f7b0f5ff852 (org-export-as-xoxo): Fix call to `indent-region'.
Carsten Dominik <dominik@science.uva.nl>
parents: 70161
diff changeset
15814 (indent-region (point-min) (point-max) nil)
70010
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15815 (save-buffer)
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15816 (goto-char (point-min))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15817 )))
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
15818
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15819 ;;;###autoload
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15820 (defun org-export-icalendar-all-agenda-files ()
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15821 "Export all files in `org-agenda-files' to iCalendar .ics files.
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15822 Each iCalendar file will be located in the same directory as the Org-mode
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15823 file, but with extension `.ics'."
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15824 (interactive)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15825 (apply 'org-export-icalendar nil (org-agenda-files t)))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15826
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15827 ;;;###autoload
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15828 (defun org-export-icalendar-combine-agenda-files ()
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15829 "Export all files in `org-agenda-files' to a single combined iCalendar file.
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15830 The file is stored under the name `org-combined-agenda-icalendar-file'."
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15831 (interactive)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
15832 (apply 'org-export-icalendar t (org-agenda-files t)))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15833
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15834 (defun org-export-icalendar (combine &rest files)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15835 "Create iCalendar files for all elements of FILES.
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15836 If COMBINE is non-nil, combine all calendar entries into a single large
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15837 file and store it under the name `org-combined-agenda-icalendar-file'."
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15838 (save-excursion
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15839 (let* ((dir (org-export-directory
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15840 :ical (list :publishing-directory
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15841 org-export-publishing-directory)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15842 file ical-file ical-buffer category started org-agenda-new-buffers)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15843
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15844 (when combine
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15845 (setq ical-file
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15846 (if (file-name-absolute-p org-combined-agenda-icalendar-file)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15847 org-combined-agenda-icalendar-file
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15848 (expand-file-name org-combined-agenda-icalendar-file dir))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15849 ical-buffer (org-get-agenda-file-buffer ical-file))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15850 (set-buffer ical-buffer) (erase-buffer))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15851 (while (setq file (pop files))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15852 (catch 'nextfile
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15853 (org-check-agenda-file file)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15854 (set-buffer (org-get-agenda-file-buffer file))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15855 (unless combine
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15856 (setq ical-file (concat (file-name-as-directory dir)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
15857 (file-name-sans-extension
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15858 (file-name-nondirectory buffer-file-name))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15859 ".ics"))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15860 (setq ical-buffer (org-get-agenda-file-buffer ical-file))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
15861 (with-current-buffer ical-buffer (erase-buffer)))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15862 (setq category (or org-category
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15863 (file-name-sans-extension
69319
7aecee7bf0d9 Move defvars out of eval-when-compile. Use
Carsten Dominik <dominik@science.uva.nl>
parents: 69240
diff changeset
15864 (file-name-nondirectory buffer-file-name))))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15865 (if (symbolp category) (setq category (symbol-name category)))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15866 (let ((standard-output ical-buffer))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15867 (if combine
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15868 (and (not started) (setq started t)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15869 (org-start-icalendar-file org-icalendar-combined-name))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15870 (org-start-icalendar-file category))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15871 (org-print-icalendar-entries combine category)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15872 (when (or (and combine (not files)) (not combine))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15873 (org-finish-icalendar-file)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15874 (set-buffer ical-buffer)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15875 (save-buffer)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15876 (run-hooks 'org-after-save-iCalendar-file-hook)))))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15877 (org-release-buffers org-agenda-new-buffers))))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15878
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15879 (defvar org-after-save-iCalendar-file-hook nil
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15880 "Hook run after an iCalendar file has been saved.
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15881 The iCalendar buffer is still current when this hook is run.
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15882 A good way to use this is to tell a desktop calenndar application to re-read
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15883 the iCalendar file.")
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15884
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15885 (defun org-print-icalendar-entries (&optional combine category)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15886 "Print iCalendar entries for the current Org-mode file to `standard-output'.
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15887 When COMBINE is non nil, add the category to each line."
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15888 (let ((re2 (concat "--?-?\\(" org-ts-regexp "\\)"))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15889 (dts (org-ical-ts-to-string
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15890 (format-time-string (cdr org-time-stamp-formats) (current-time))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15891 "DTSTART"))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
15892 hd ts ts2 state (inc t) pos scheduledp deadlinep tmp pri)
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15893 (save-excursion
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15894 (goto-char (point-min))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15895 (while (re-search-forward org-ts-regexp nil t)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15896 (setq pos (match-beginning 0)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15897 ts (match-string 0)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15898 inc t
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15899 hd (org-get-heading))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15900 (if (looking-at re2)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15901 (progn
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15902 (goto-char (match-end 0))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15903 (setq ts2 (match-string 1) inc nil))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15904 (setq ts2 ts
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15905 tmp (buffer-substring (max (point-min)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15906 (- pos org-ds-keyword-length))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15907 pos)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15908 deadlinep (string-match org-deadline-regexp tmp)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15909 scheduledp (string-match org-scheduled-regexp tmp)
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
15910 ;; donep (org-entry-is-done-p)
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
15911 ))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15912 (if (or (string-match org-tr-regexp hd)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15913 (string-match org-ts-regexp hd))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
15914 (setq hd (replace-match "" t t hd)))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15915 (if combine
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15916 (setq hd (concat hd " (category " category ")")))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15917 (if deadlinep (setq hd (concat "DL: " hd " This is a deadline")))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15918 (if scheduledp (setq hd (concat "S: " hd " Scheduled for this date")))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15919 (princ (format "BEGIN:VEVENT
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15920 %s
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15921 %s
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15922 SUMMARY:%s
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15923 END:VEVENT\n"
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15924 (org-ical-ts-to-string ts "DTSTART")
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15925 (org-ical-ts-to-string ts2 "DTEND" inc)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15926 hd)))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15927 (when org-icalendar-include-todo
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15928 (goto-char (point-min))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15929 (while (re-search-forward org-todo-line-regexp nil t)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15930 (setq state (match-string 1))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15931 (unless (equal state org-done-string)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15932 (setq hd (match-string 3))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15933 (if (string-match org-priority-regexp hd)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15934 (setq pri (string-to-char (match-string 2 hd))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15935 hd (concat (substring hd 0 (match-beginning 1))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15936 (substring hd (- (match-end 1)))))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15937 (setq pri org-default-priority))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15938 (setq pri (floor (1+ (* 8. (/ (float (- org-lowest-priority pri))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15939 (- org-lowest-priority ?A))))))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15940
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15941 (princ (format "BEGIN:VTODO
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15942 %s
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15943 SUMMARY:%s
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15944 SEQUENCE:1
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15945 PRIORITY:%d
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15946 END:VTODO\n"
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15947 dts hd pri))))))))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15948
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15949 (defun org-start-icalendar-file (name)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15950 "Start an iCalendar file by inserting the header."
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15951 (let ((user user-full-name)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15952 (name (or name "unknown"))
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
15953 (timezone (cadr (current-time-zone))))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15954 (princ
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15955 (format "BEGIN:VCALENDAR
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15956 VERSION:2.0
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15957 X-WR-CALNAME:%s
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15958 PRODID:-//%s//Emacs with Org-mode//EN
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
15959 X-WR-TIMEZONE:%s
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15960 CALSCALE:GREGORIAN\n" name user timezone))))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15961
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15962 (defun org-finish-icalendar-file ()
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15963 "Finish an iCalendar file by inserting the END statement."
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15964 (princ "END:VCALENDAR\n"))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15965
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15966 (defun org-ical-ts-to-string (s keyword &optional inc)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15967 "Take a time string S and convert it to iCalendar format.
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15968 KEYWORD is added in front, to make a complete line like DTSTART....
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15969 When INC is non-nil, increase the hour by two (if time string contains
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15970 a time), or the day by one (if it does not contain a time)."
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15971 (let ((t1 (org-parse-time-string s 'nodefault))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15972 t2 fmt have-time time)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15973 (if (and (car t1) (nth 1 t1) (nth 2 t1))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15974 (setq t2 t1 have-time t)
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15975 (setq t2 (org-parse-time-string s)))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15976 (let ((s (car t2)) (mi (nth 1 t2)) (h (nth 2 t2))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15977 (d (nth 3 t2)) (m (nth 4 t2)) (y (nth 5 t2)))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15978 (when inc
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15979 (if have-time (setq h (+ 2 h)) (setq d (1+ d))))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15980 (setq time (encode-time s mi h d m y)))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15981 (setq fmt (if have-time ":%Y%m%dT%H%M%S" ";VALUE=DATE:%Y%m%d"))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15982 (concat keyword (format-time-string fmt time))))
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
15983
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15984 ;;; LaTeX stuff
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15985
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15986 (defvar org-cdlatex-mode-map (make-sparse-keymap)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15987 "Keymap for the minor `org-cdlatex-mode'.")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15988
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15989 (define-key org-cdlatex-mode-map "_" 'org-cdlatex-underscore-caret)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15990 (define-key org-cdlatex-mode-map "^" 'org-cdlatex-underscore-caret)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15991 (define-key org-cdlatex-mode-map "`" 'cdlatex-math-symbol)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15992 (define-key org-cdlatex-mode-map "'" 'org-cdlatex-math-modify)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15993 (define-key org-cdlatex-mode-map "\C-c{" 'cdlatex-environment)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15994
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15995 (defvar org-cdlatex-texmathp-advice-is-done nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15996 "Flag remembering if we have applied the advice to texmathp already.")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15997
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
15998 (define-minor-mode org-cdlatex-mode
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
15999 "Toggle the minor `org-cdlatex-mode'.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16000 This mode supports entering LaTeX environment and math in LaTeX fragments
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16001 in Org-mode.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16002 \\{org-cdlatex-mode-map}"
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16003 nil " OCDL" nil
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16004 (when org-cdlatex-mode (require 'cdlatex))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16005 (unless org-cdlatex-texmathp-advice-is-done
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16006 (setq org-cdlatex-texmathp-advice-is-done t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16007 (defadvice texmathp (around org-math-always-on activate)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16008 "Always return t in org-mode buffers.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16009 This is because we want to insert math symbols without dollars even outside
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16010 the LaTeX math segments. If Orgmode thinks that point is actually inside
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16011 en embedded LaTeX fragement, let texmathp do its job.
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16012 \\[org-cdlatex-mode-map]"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16013 (interactive)
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16014 (let (p)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16015 (cond
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
16016 ((not (org-mode-p)) ad-do-it)
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16017 ((eq this-command 'cdlatex-math-symbol)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16018 (setq ad-return-value t
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16019 texmathp-why '("cdlatex-math-symbol in org-mode" . 0)))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16020 (t
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16021 (let ((p (org-inside-LaTeX-fragment-p)))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16022 (if (and p (member (car p) (plist-get org-format-latex-options :matchers)))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16023 (setq ad-return-value t
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16024 texmathp-why '("Org-mode embedded math" . 0))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16025 (if p ad-do-it)))))))))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16026
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16027 (defun turn-on-org-cdlatex ()
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16028 "Unconditionally turn on `org-cdlatex-mode'."
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16029 (org-cdlatex-mode 1))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16030
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16031 (defun org-inside-LaTeX-fragment-p ()
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16032 "Test if point is inside a LaTeX fragment.
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16033 I.e. after a \\begin, \\(, \\[, $, or $$, without the corresponding closing
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16034 sequence appearing also before point.
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16035 Even though the matchers for math are configurable, this function assumes
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16036 that \\begin, \\(, \\[, and $$ are always used. Only the single dollar
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16037 delimiters are skipped when they have been removed by customization.
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16038 The return value is nil, or a cons cell with the delimiter and
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16039 and the position of this delimiter.
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16040
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16041 This function does a reasonably good job, but can locally be fooled by
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16042 for example currency specifications. For example it will assume being in
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16043 inline math after \"$22.34\". The LaTeX fragment formatter will only format
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16044 fragments that are properly closed, but during editing, we have to live
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16045 with the uncertainty caused by missing closing delimiters. This function
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16046 looks only before point, not after."
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16047 (catch 'exit
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16048 (let ((pos (point))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16049 (dodollar (member "$" (plist-get org-format-latex-options :matchers)))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16050 (lim (progn
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16051 (re-search-backward (concat "^\\(" paragraph-start "\\)") nil t)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16052 (point)))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16053 dd-on str (start 0) m re)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16054 (goto-char pos)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16055 (when dodollar
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16056 (setq str (concat (buffer-substring lim (point)) "\000 X$.")
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16057 re (nth 1 (assoc "$" org-latex-regexps)))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16058 (while (string-match re str start)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16059 (cond
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16060 ((= (match-end 0) (length str))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16061 (throw 'exit (cons "$" (+ lim (match-beginning 0)))))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16062 ((= (match-end 0) (- (length str) 5))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16063 (throw 'exit nil))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16064 (t (setq start (match-end 0))))))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16065 (when (setq m (re-search-backward "\\(\\\\begin{[^}]*}\\|\\\\(\\|\\\\\\[\\)\\|\\(\\\\end{[^}]*}\\|\\\\)\\|\\\\\\]\\)\\|\\(\\$\\$\\)" lim t))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16066 (goto-char pos)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16067 (and (match-beginning 1) (throw 'exit (cons (match-string 1) m)))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16068 (and (match-beginning 2) (throw 'exit nil))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16069 ;; count $$
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16070 (while (re-search-backward "\\$\\$" lim t)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16071 (setq dd-on (not dd-on)))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16072 (goto-char pos)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16073 (if dd-on (cons "$$" m))))))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16074
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16075
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16076 (defun org-try-cdlatex-tab ()
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16077 "Check if it makes sense to execute `cdlatex-tab', and do it if yes.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16078 It makes sense to do so if `org-cdlatex-mode' is active and if the cursor is
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16079 - inside a LaTeX fragment, or
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16080 - after the first word in a line, where an abbreviation expansion could
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16081 insert a LaTeX environment."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16082 (when org-cdlatex-mode
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16083 (cond
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16084 ((save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16085 (skip-chars-backward "a-zA-Z0-9*")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16086 (skip-chars-backward " \t")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16087 (bolp))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16088 (cdlatex-tab) t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16089 ((org-inside-LaTeX-fragment-p)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16090 (cdlatex-tab) t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16091 (t nil))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16092
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16093 (defun org-cdlatex-underscore-caret (&optional arg)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16094 "Execute `cdlatex-sub-superscript' in LaTeX fragments.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16095 Revert to the normal definition outside of these fragments."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16096 (interactive "P")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16097 (if (org-inside-LaTeX-fragment-p)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16098 (call-interactively 'cdlatex-sub-superscript)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16099 (let (org-cdlatex-mode)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16100 (call-interactively (key-binding (vector last-input-event))))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16101
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16102 (defun org-cdlatex-math-modify (&optional arg)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16103 "Execute `cdlatex-math-modify' in LaTeX fragments.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16104 Revert to the normal definition outside of these fragments."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16105 (interactive "P")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16106 (if (org-inside-LaTeX-fragment-p)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16107 (call-interactively 'cdlatex-math-modify)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16108 (let (org-cdlatex-mode)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16109 (call-interactively (key-binding (vector last-input-event))))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16110
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16111 (defvar org-latex-fragment-image-overlays nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16112 "List of overlays carrying the images of latex fragments.")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16113 (make-variable-buffer-local 'org-latex-fragment-image-overlays)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16114
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16115 (defun org-remove-latex-fragment-image-overlays ()
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16116 "Remove all overlays with LaTeX fragment images in current buffer."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16117 (mapc 'org-delete-overlay org-latex-fragment-image-overlays)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16118 (setq org-latex-fragment-image-overlays nil))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16119
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16120 (defun org-preview-latex-fragment (&optional subtree)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16121 "Preview the LaTeX fragment at point, or all locally or globally.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16122 If the cursor is in a LaTeX fragment, create the image and overlay
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16123 it over the source code. If there is no fragment at point, display
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16124 all fragments in the current text, from one headline to the next. With
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
16125 prefix SUBTREE, display all fragments in the current subtree. With a
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16126 double prefix `C-u C-u', or when the cursor is before the first headline,
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16127 display all fragments in the buffer.
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16128 The images can be removed again with \\[org-ctrl-c-ctrl-c]."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16129 (interactive "P")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16130 (org-remove-latex-fragment-image-overlays)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16131 (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16132 (save-restriction
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16133 (let (beg end at msg)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16134 (cond
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16135 ((or (equal subtree '(16))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16136 (not (save-excursion
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16137 (re-search-backward (concat "^" outline-regexp) nil t))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16138 (setq beg (point-min) end (point-max)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16139 msg "Creating images for buffer...%s"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16140 ((equal subtree '(4))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16141 (org-back-to-heading)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16142 (setq beg (point) end (org-end-of-subtree t)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16143 msg "Creating images for subtree...%s"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16144 (t
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16145 (if (setq at (org-inside-LaTeX-fragment-p))
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16146 (goto-char (max (point-min) (- (cdr at) 2)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16147 (org-back-to-heading))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16148 (setq beg (point) end (progn (outline-next-heading) (point))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16149 msg (if at "Creating image...%s"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16150 "Creating images for entry...%s"))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16151 (message msg "")
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16152 (narrow-to-region beg end)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16153 (org-format-latex
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16154 (concat "ltxpng/" (file-name-sans-extension
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16155 (file-name-nondirectory
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16156 buffer-file-name)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16157 default-directory 'overlays msg at)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16158 (message msg "done. Use `C-c C-c' to remove images.")))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16159
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16160 (defvar org-latex-regexps
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16161 '(("begin" "^[ \t]*\\(\\\\begin{\\([a-zA-Z0-9\\*]+\\)[^\000]+?\\\\end{\\2}\\)" 1 t)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16162 ;; ("$" "\\([ (]\\|^\\)\\(\\(\\([$]\\)\\([^ \r\n,.$].*?\\(\n.*?\\)\\{0,5\\}[^ \r\n,.$]\\)\\4\\)\\)\\([ .,?;:'\")]\\|$\\)" 2 nil)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16163 ;; \000 in the following regex is needed for org-inside-LaTeX-fragment-p
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16164 ("$" "\\([^$]\\)\\(\\(\\$\\([^ \r\n,;.$][^$\n\r]*?\\(\n[^$\n\r]*?\\)\\{0,2\\}[^ \r\n,.$]\\)\\$\\)\\)\\([ .,?;:'\")\000]\\|$\\)" 2 nil)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16165 ("\\(" "\\\\([^\000]*?\\\\)" 0 nil)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16166 ("\\[" "\\\\\\[[^\000]*?\\\\\\]" 0 t)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16167 ("$$" "\\$\\$[^\000]*?\\$\\$" 0 t))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16168 "Regular expressions for matching embedded LaTeX.")
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16169
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16170 (defun org-format-latex (prefix &optional dir overlays msg at)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16171 "Replace LaTeX fragments with links to an image, and produce images."
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16172 (if (and overlays (fboundp 'clear-image-cache)) (clear-image-cache))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16173 (let* ((prefixnodir (file-name-nondirectory prefix))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16174 (absprefix (expand-file-name prefix dir))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16175 (todir (file-name-directory absprefix))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16176 (opt org-format-latex-options)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16177 (matchers (plist-get opt :matchers))
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16178 (re-list org-latex-regexps)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16179 (cnt 0) txt link beg end re e oldfiles
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16180 m n block linkfile movefile ov)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16181 ;; Make sure the directory exists
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16182 (or (file-directory-p todir) (make-directory todir))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16183 ;; Check if there are old images files with this prefix, and remove them
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16184 (setq oldfiles (directory-files
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16185 todir 'full
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16186 (concat (regexp-quote prefixnodir) "_[0-9]+\\.png$")))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16187 (while oldfiles (delete-file (pop oldfiles)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16188 ;; Check the different regular expressions
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16189 (while (setq e (pop re-list))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16190 (setq m (car e) re (nth 1 e) n (nth 2 e)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16191 block (if (nth 3 e) "\n\n" ""))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16192 (when (member m matchers)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16193 (goto-char (point-min))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16194 (while (re-search-forward re nil t)
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
16195 (when (or (not at) (equal (cdr at) (match-beginning n)))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16196 (setq txt (match-string n)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16197 beg (match-beginning n) end (match-end n)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16198 cnt (1+ cnt)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16199 linkfile (format "%s_%04d.png" prefix cnt)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16200 movefile (format "%s_%04d.png" absprefix cnt)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16201 link (concat block "[[file:" linkfile "]]" block))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16202 (if msg (message msg cnt))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16203 (goto-char beg)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16204 (org-create-formula-image
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16205 txt movefile opt)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16206 (if overlays
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16207 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16208 (setq ov (org-make-overlay beg end))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16209 (if (featurep 'xemacs)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16210 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16211 (org-overlay-put ov 'invisible t)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16212 (org-overlay-put
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
16213 ov 'end-glyph
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16214 (make-glyph (vector 'png :file movefile))))
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
16215 (org-overlay-put
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
16216 ov 'display
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16217 (list 'image :type 'png :file movefile :ascent 'center)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16218 (push ov org-latex-fragment-image-overlays)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16219 (goto-char end))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16220 (delete-region beg end)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16221 (insert link))))))))
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
16222
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16223 ;; This function borrows from Ganesh Swami's latex2png.el
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16224 (defun org-create-formula-image (string tofile options)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16225 (let* ((tmpdir (if (featurep 'xemacs)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16226 (temp-directory)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16227 temporary-file-directory))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16228 (texfilebase (make-temp-name
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16229 (expand-file-name "orgtex" tmpdir)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16230
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16231 ;(texfilebase (make-temp-file "orgtex"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16232 ; (dummy (delete-file texfilebase))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16233 (texfile (concat texfilebase ".tex"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16234 (dvifile (concat texfilebase ".dvi"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16235 (pngfile (concat texfilebase ".png"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16236 (scale (number-to-string (* 1000 (or (plist-get options :scale) 1.0))))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16237 (fg (or (plist-get options :foreground) "Black"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16238 (bg (or (plist-get options :background) "Transparent")))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16239 (with-temp-file texfile
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16240 (insert "\\documentclass{article}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16241 \\usepackage{fullpage}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16242 \\usepackage{amssymb}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16243 \\usepackage[usenames]{color}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16244 \\usepackage{amsmath}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16245 \\usepackage{latexsym}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16246 \\usepackage[mathscr]{eucal}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16247 \\pagestyle{empty}
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16248 \\begin{document}\n" string "\n\\end{document}\n"))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16249 (let ((dir default-directory))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16250 (condition-case nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16251 (progn
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16252 (cd tmpdir)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16253 (call-process "latex" nil nil nil texfile))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16254 (error nil))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16255 (cd dir))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16256 (if (not (file-exists-p dvifile))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16257 (progn (message "Failed to create dvi file from %s" texfile) nil)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16258 (call-process "dvipng" nil nil nil
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16259 "-E" "-fg" fg "-bg" bg
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16260 "-x" scale "-y" scale "-T" "tight"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16261 "-o" pngfile
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16262 dvifile)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16263 (if (not (file-exists-p pngfile))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16264 (progn (message "Failed to create png file from %s" texfile) nil)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16265 ;; Use the requested file name and clean up
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16266 (copy-file pngfile tofile 'replace)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16267 (loop for e in '(".dvi" ".tex" ".aux" ".log" ".png") do
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16268 (delete-file (concat texfilebase e)))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16269 pngfile))))
66262
c3855d669e33 * textmodes/org.el (org-combined-agenda-icalendar-file)
Carsten Dominik <dominik@science.uva.nl>
parents: 66224
diff changeset
16270
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16271 ;;; Key bindings
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16272
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16273 ;; - Bindings in Org-mode map are currently
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16274 ;; 0123456789abcdefghijklmnopqrstuvwxyz!?@#$%^&-+*/=()_{}[]:;"|,.<>~`'\t the alphabet
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
16275 ;; abcd fgh j lmnopqrstuvwxyz!? #$ ^ -+*/= [] ; |,.<>~ '\t necessary bindings
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16276 ;; e (?) useful from outline-mode
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16277 ;; i k @ expendable from outline-mode
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
16278 ;; 0123456789 % & ()_{} " ` free
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16279
65964
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
16280 ;; Make `C-c C-x' a prefix key
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
16281 (define-key org-mode-map "\C-c\C-x" (make-sparse-keymap))
4a5b33d70e6f (org-mode-map): Explicit definition of `C-c C-x' as a
Carsten Dominik <dominik@science.uva.nl>
parents: 65705
diff changeset
16282
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16283 ;; TAB key with modifiers
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16284 (define-key org-mode-map "\C-i" 'org-cycle)
69482
a305f07816a9 (org-insert-centered): Use `string-width' to make
Carsten Dominik <dominik@science.uva.nl>
parents: 69454
diff changeset
16285 (define-key org-mode-map [(tab)] 'org-cycle)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16286 (define-key org-mode-map [(control tab)] 'org-force-cycle-archived)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16287 (define-key org-mode-map [(meta tab)] 'org-complete)
74784
eacca73d1bee (org-mode-map): Bind org-complete also to M-\t.
Carsten Dominik <dominik@science.uva.nl>
parents: 74727
diff changeset
16288 (define-key org-mode-map "\M-\t" 'org-complete)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16289 ;; The following line is necessary under Suse GNU/Linux
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16290 (unless (featurep 'xemacs)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16291 (define-key org-mode-map [S-iso-lefttab] 'org-shifttab))
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16292 (define-key org-mode-map [(shift tab)] 'org-shifttab)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16293
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16294 (define-key org-mode-map (org-key 'S-return) 'org-table-copy-down)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16295 (define-key org-mode-map [(meta shift return)] 'org-insert-todo-heading)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16296 (define-key org-mode-map [(meta return)] 'org-meta-return)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16297
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16298 ;; Cursor keys with modifiers
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16299 (define-key org-mode-map [(meta left)] 'org-metaleft)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16300 (define-key org-mode-map [(meta right)] 'org-metaright)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16301 (define-key org-mode-map [(meta up)] 'org-metaup)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16302 (define-key org-mode-map [(meta down)] 'org-metadown)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16303
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16304 (define-key org-mode-map [(meta shift left)] 'org-shiftmetaleft)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16305 (define-key org-mode-map [(meta shift right)] 'org-shiftmetaright)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16306 (define-key org-mode-map [(meta shift up)] 'org-shiftmetaup)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16307 (define-key org-mode-map [(meta shift down)] 'org-shiftmetadown)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16308
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16309 (define-key org-mode-map (org-key 'S-up) 'org-shiftup)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16310 (define-key org-mode-map (org-key 'S-down) 'org-shiftdown)
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16311 (define-key org-mode-map (org-key 'S-left) 'org-shiftleft)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16312 (define-key org-mode-map (org-key 'S-right) 'org-shiftright)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16313
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16314 ;; Extra keys for tty access. We only set them when really needed
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16315 ;; because otherwise the menus don't show the simple keys
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16316
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16317 (when (or (featurep 'xemacs) ;; because XEmacs supports multi-device stuff
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16318 (not window-system))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16319 (define-key org-mode-map "\M-\C-i" 'org-complete)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16320 (define-key org-mode-map "\C-c\C-xc" 'org-table-copy-down)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16321 (define-key org-mode-map "\C-c\C-xM" 'org-insert-todo-heading)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16322 (define-key org-mode-map "\C-c\C-xm" 'org-meta-return)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16323 (define-key org-mode-map [?\e (return)] 'org-meta-return)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16324 (define-key org-mode-map [?\e (left)] 'org-metaleft)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16325 (define-key org-mode-map "\C-c\C-xl" 'org-metaleft)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16326 (define-key org-mode-map [?\e (right)] 'org-metaright)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16327 (define-key org-mode-map "\C-c\C-xr" 'org-metaright)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16328 (define-key org-mode-map [?\e (up)] 'org-metaup)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16329 (define-key org-mode-map "\C-c\C-xu" 'org-metaup)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16330 (define-key org-mode-map [?\e (down)] 'org-metadown)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16331 (define-key org-mode-map "\C-c\C-xd" 'org-metadown)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16332 (define-key org-mode-map "\C-c\C-xL" 'org-shiftmetaleft)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16333 (define-key org-mode-map "\C-c\C-xR" 'org-shiftmetaright)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16334 (define-key org-mode-map "\C-c\C-xU" 'org-shiftmetaup)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16335 (define-key org-mode-map "\C-c\C-xD" 'org-shiftmetadown)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16336 (define-key org-mode-map [?\C-c ?\C-x (up)] 'org-shiftup)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16337 (define-key org-mode-map [?\C-c ?\C-x (down)] 'org-shiftdown)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16338 (define-key org-mode-map [?\C-c ?\C-x (left)] 'org-shiftleft)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16339 (define-key org-mode-map [?\C-c ?\C-x (right)] 'org-shiftright))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16340
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16341 ;; All the other keys
70161
b9e09a4a2168 (org-mode-map): Catch conflict with old allout.el.
Carsten Dominik <dominik@science.uva.nl>
parents: 70136
diff changeset
16342
b9e09a4a2168 (org-mode-map): Catch conflict with old allout.el.
Carsten Dominik <dominik@science.uva.nl>
parents: 70136
diff changeset
16343 (define-key org-mode-map "\C-c\C-a" 'show-all) ; in case allout messed up.
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16344 (define-key org-mode-map "\C-c\C-r" 'org-reveal)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
16345 (define-key org-mode-map "\C-xns" 'org-narrow-to-subtree)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
16346 (define-key org-mode-map "\C-c$" 'org-archive-subtree)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16347 (define-key org-mode-map "\C-c\C-x\C-a" 'org-toggle-archive-tag)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16348 (define-key org-mode-map "\C-c\C-j" 'org-goto)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16349 (define-key org-mode-map "\C-c\C-t" 'org-todo)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16350 (define-key org-mode-map "\C-c\C-s" 'org-schedule)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16351 (define-key org-mode-map "\C-c\C-d" 'org-deadline)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16352 (define-key org-mode-map "\C-c;" 'org-toggle-comment)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16353 (define-key org-mode-map "\C-c\C-v" 'org-show-todo-tree)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16354 (define-key org-mode-map "\C-c\C-w" 'org-check-deadlines)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16355 (define-key org-mode-map "\C-c/" 'org-occur) ; Minor-mode reserved
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
16356 (define-key org-mode-map "\C-c\\" 'org-tags-sparse-tree) ; Minor-mode res.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16357 (define-key org-mode-map "\C-c\C-m" 'org-insert-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16358 (define-key org-mode-map "\M-\C-m" 'org-insert-heading)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16359 (define-key org-mode-map "\C-c\C-l" 'org-insert-link)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16360 (define-key org-mode-map "\C-c\C-o" 'org-open-at-point)
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
16361 (define-key org-mode-map "\C-c%" 'org-mark-ring-push)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
16362 (define-key org-mode-map "\C-c&" 'org-mark-ring-goto)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16363 (define-key org-mode-map "\C-c\C-z" 'org-time-stamp) ; Alternative binding
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16364 (define-key org-mode-map "\C-c." 'org-time-stamp) ; Minor-mode reserved
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16365 (define-key org-mode-map "\C-c!" 'org-time-stamp-inactive) ; Minor-mode r.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16366 (define-key org-mode-map "\C-c," 'org-priority) ; Minor-mode reserved
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16367 (define-key org-mode-map "\C-c\C-y" 'org-evaluate-time-range)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16368 (define-key org-mode-map "\C-c>" 'org-goto-calendar)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16369 (define-key org-mode-map "\C-c<" 'org-date-from-calendar)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
16370 (define-key org-mode-map [(control ?,)] 'org-cycle-agenda-files)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
16371 (define-key org-mode-map "\C-c[" 'org-agenda-file-to-front)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16372 (define-key org-mode-map "\C-c]" 'org-remove-file)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16373 (define-key org-mode-map "\C-c-" 'org-table-insert-hline)
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
16374 (define-key org-mode-map "\C-c^" 'org-table-sort-lines)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16375 (define-key org-mode-map "\C-c\C-c" 'org-ctrl-c-ctrl-c)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16376 (define-key org-mode-map "\C-c#" 'org-update-checkbox-count)
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
16377 (define-key org-mode-map "\C-m" 'org-return)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16378 (define-key org-mode-map "\C-c?" 'org-table-current-column)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16379 (define-key org-mode-map "\C-c " 'org-table-blank-field)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16380 (define-key org-mode-map "\C-c+" 'org-table-sum)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16381 (define-key org-mode-map "\C-c=" 'org-table-eval-formula)
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
16382 (define-key org-mode-map "\C-c'" 'org-table-edit-formulas)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16383 (define-key org-mode-map "\C-c`" 'org-table-edit-field)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16384 (define-key org-mode-map "\C-c|" 'org-table-create-or-convert-from-region)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16385 (define-key org-mode-map "\C-c*" 'org-table-recalculate)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16386 (define-key org-mode-map [(control ?#)] 'org-table-rotate-recalc-marks)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16387 (define-key org-mode-map "\C-c~" 'org-table-create-with-table.el)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16388 (define-key org-mode-map "\C-c\C-q" 'org-table-wrap-region)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16389 (define-key org-mode-map "\C-c\C-e" 'org-export)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16390 (define-key org-mode-map "\C-c:" 'org-toggle-fixed-width-section)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16391
69224
e80276821f75 (org-export-as-html): Fixed bugs in HTML
Carsten Dominik <dominik@science.uva.nl>
parents: 69121
diff changeset
16392 (define-key org-mode-map "\C-c\C-x\C-k" 'org-cut-special)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16393 (define-key org-mode-map "\C-c\C-x\C-w" 'org-cut-special)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16394 (define-key org-mode-map "\C-c\C-x\M-w" 'org-copy-special)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16395 (define-key org-mode-map "\C-c\C-x\C-y" 'org-paste-special)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16396
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16397 (define-key org-mode-map "\C-c\C-x\C-t" 'org-toggle-time-stamp-overlays)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16398 (define-key org-mode-map "\C-c\C-x\C-i" 'org-clock-in)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16399 (define-key org-mode-map "\C-c\C-x\C-o" 'org-clock-out)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16400 (define-key org-mode-map "\C-c\C-x\C-x" 'org-clock-cancel)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16401 (define-key org-mode-map "\C-c\C-x\C-d" 'org-clock-display)
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
16402 (define-key org-mode-map "\C-c\C-x\C-r" 'org-clock-report)
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
16403 (define-key org-mode-map "\C-c\C-x\C-u" 'org-dblock-update)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16404 (define-key org-mode-map "\C-c\C-x\C-l" 'org-preview-latex-fragment)
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
16405 (define-key org-mode-map "\C-c\C-x\C-b" 'org-toggle-checkbox)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16406
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16407 (when (featurep 'xemacs)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16408 (define-key org-mode-map 'button3 'popup-mode-menu))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16409
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16410 (defsubst org-table-p () (org-at-table-p))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16411
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16412 (defun org-self-insert-command (N)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16413 "Like `self-insert-command', use overwrite-mode for whitespace in tables.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16414 If the cursor is in a table looking at whitespace, the whitespace is
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16415 overwritten, and the table is not marked as requiring realignment."
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16416 (interactive "p")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16417 (if (and (org-table-p)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16418 (progn
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16419 ;; check if we blank the field, and if that triggers align
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16420 (and org-table-auto-blank-field
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16421 (member last-command
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16422 '(org-cycle org-return org-shifttab org-ctrl-c-ctrl-c))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16423 (if (or (equal (char-after) ?\ ) (looking-at "[^|\n]* |"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16424 ;; got extra space, this field does not determine column width
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16425 (let (org-table-may-need-update) (org-table-blank-field))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16426 ;; no extra space, this field may determine column width
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16427 (org-table-blank-field)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16428 t)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16429 (eq N 1)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16430 (looking-at "[^|\n]* |"))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16431 (let (org-table-may-need-update)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16432 (goto-char (1- (match-end 0)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16433 (delete-backward-char 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16434 (goto-char (match-beginning 0))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16435 (self-insert-command N))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16436 (setq org-table-may-need-update t)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16437 (self-insert-command N)))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16438
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16439 (defun org-delete-backward-char (N)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16440 "Like `delete-backward-char', insert whitespace at field end in tables.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16441 When deleting backwards, in tables this function will insert whitespace in
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16442 front of the next \"|\" separator, to keep the table aligned. The table will
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16443 still be marked for re-alignment if the field did fill the entire column,
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16444 because, in this case the deletion might narrow the column."
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16445 (interactive "p")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16446 (if (and (org-table-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16447 (eq N 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16448 (string-match "|" (buffer-substring (point-at-bol) (point)))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16449 (looking-at ".*?|"))
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16450 (let ((pos (point))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16451 (noalign (looking-at "[^|\n\r]* |"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16452 (c org-table-may-need-update))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16453 (backward-delete-char N)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16454 (skip-chars-forward "^|")
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16455 (insert " ")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16456 (goto-char (1- pos))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16457 ;; noalign: if there were two spaces at the end, this field
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16458 ;; does not determine the width of the column.
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16459 (if noalign (setq org-table-may-need-update c)))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16460 (backward-delete-char N)))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16461
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16462 (defun org-delete-char (N)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16463 "Like `delete-char', but insert whitespace at field end in tables.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16464 When deleting characters, in tables this function will insert whitespace in
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16465 front of the next \"|\" separator, to keep the table aligned. The table will
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16466 still be marked for re-alignment if the field did fill the entire column,
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16467 because, in this case the deletion might narrow the column."
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16468 (interactive "p")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16469 (if (and (org-table-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16470 (not (bolp))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16471 (not (= (char-after) ?|))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16472 (eq N 1))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16473 (if (looking-at ".*?|")
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16474 (let ((pos (point))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16475 (noalign (looking-at "[^|\n\r]* |"))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16476 (c org-table-may-need-update))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16477 (replace-match (concat
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16478 (substring (match-string 0) 1 -1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16479 " |"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16480 (goto-char pos)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16481 ;; noalign: if there were two spaces at the end, this field
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16482 ;; does not determine the width of the column.
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16483 (if noalign (setq org-table-may-need-update c)))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16484 (delete-char N))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16485 (delete-char N)))
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16486
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16487 ;; Make `delete-selection-mode' work with org-mode and orgtbl-mode
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16488 (put 'org-self-insert-command 'delete-selection t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16489 (put 'orgtbl-self-insert-command 'delete-selection t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16490 (put 'org-delete-char 'delete-selection 'supersede)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16491 (put 'org-delete-backward-char 'delete-selection 'supersede)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16492
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16493 ;; How to do this: Measure non-white length of current string
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16494 ;; If equal to column width, we should realign.
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16495
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16496 (defun org-remap (map &rest commands)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16497 "In MAP, remap the functions given in COMMANDS.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16498 COMMANDS is a list of alternating OLDDEF NEWDEF command names."
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16499 (let (new old)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16500 (while commands
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16501 (setq old (pop commands) new (pop commands))
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16502 (if (fboundp 'command-remapping)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16503 (define-key map (vector 'remap old) new)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16504 (substitute-key-definition old new map global-map)))))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
16505
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16506 (when (eq org-enable-table-editor 'optimized)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16507 ;; If the user wants maximum table support, we need to hijack
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16508 ;; some standard editing functions
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16509 (org-remap org-mode-map
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16510 'self-insert-command 'org-self-insert-command
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16511 'delete-char 'org-delete-char
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16512 'delete-backward-char 'org-delete-backward-char)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16513 (define-key org-mode-map "|" 'org-force-self-insert))
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16514
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16515 (defun org-shiftcursor-error ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16516 "Throw an error because Shift-Cursor command was applied in wrong context."
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16517 (error "This command is active in special context like tables, headlines or timestamps"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16518
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16519 (defun org-shifttab (&optional arg)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16520 "Global visibility cycling or move to previous table field.
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16521 Calls `org-cycle' with argument t, or `org-table-previous-field', depending
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16522 on context.
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16523 See the individual commands for more information."
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16524 (interactive "P")
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16525 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16526 ((org-at-table-p) (call-interactively 'org-table-previous-field))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16527 (t (call-interactively 'org-global-cycle))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16528
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16529 (defun org-shiftmetaleft ()
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16530 "Promote subtree or delete table column.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16531 Calls `org-promote-subtree' or `org-table-delete-column', depending on context.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16532 See the individual commands for more information."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16533 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16534 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16535 ((org-at-table-p) (call-interactively 'org-table-delete-column))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16536 ((org-on-heading-p) (call-interactively 'org-promote-subtree))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16537 ((org-at-item-p) (call-interactively 'org-outdent-item))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16538 (t (org-shiftcursor-error))))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16539
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16540 (defun org-shiftmetaright ()
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16541 "Demote subtree or insert table column.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16542 Calls `org-demote-subtree' or `org-table-insert-column', depending on context.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16543 See the individual commands for more information."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16544 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16545 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16546 ((org-at-table-p) (call-interactively 'org-table-insert-column))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16547 ((org-on-heading-p) (call-interactively 'org-demote-subtree))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16548 ((org-at-item-p) (call-interactively 'org-indent-item))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16549 (t (org-shiftcursor-error))))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16550
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16551 (defun org-shiftmetaup (&optional arg)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16552 "Move subtree up or kill table row.
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16553 Calls `org-move-subtree-up' or `org-table-kill-row' or
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16554 `org-move-item-up' depending on context. See the individual commands
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16555 for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16556 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16557 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16558 ((org-at-table-p) (call-interactively 'org-table-kill-row))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16559 ((org-on-heading-p) (call-interactively 'org-move-subtree-up))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16560 ((org-at-item-p) (call-interactively 'org-move-item-up))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16561 (t (org-shiftcursor-error))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16562 (defun org-shiftmetadown (&optional arg)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16563 "Move subtree down or insert table row.
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16564 Calls `org-move-subtree-down' or `org-table-insert-row' or
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16565 `org-move-item-down', depending on context. See the individual
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16566 commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16567 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16568 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16569 ((org-at-table-p) (call-interactively 'org-table-insert-row))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16570 ((org-on-heading-p) (call-interactively 'org-move-subtree-down))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16571 ((org-at-item-p) (call-interactively 'org-move-item-down))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16572 (t (org-shiftcursor-error))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16573
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16574 (defun org-metaleft (&optional arg)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16575 "Promote heading or move table column to left.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16576 Calls `org-do-promote' or `org-table-move-column', depending on context.
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16577 With no specific context, calls the Emacs default `backward-word'.
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16578 See the individual commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16579 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16580 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16581 ((org-at-table-p) (org-call-with-arg 'org-table-move-column 'left))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16582 ((or (org-on-heading-p) (org-region-active-p))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16583 (call-interactively 'org-do-promote))
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
16584 ((org-at-item-p) (call-interactively 'org-outdent-item))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16585 (t (call-interactively 'backward-word))))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16586
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16587 (defun org-metaright (&optional arg)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16588 "Demote subtree or move table column to right.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16589 Calls `org-do-demote' or `org-table-move-column', depending on context.
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16590 With no specific context, calls the Emacs default `forward-word'.
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16591 See the individual commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16592 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16593 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16594 ((org-at-table-p) (call-interactively 'org-table-move-column))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16595 ((or (org-on-heading-p) (org-region-active-p))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16596 (call-interactively 'org-do-demote))
73966
3e367f69c68c (org-metaleft): Call `org-outdent-item' on bullets.
Carsten Dominik <dominik@science.uva.nl>
parents: 73916
diff changeset
16597 ((org-at-item-p) (call-interactively 'org-indent-item))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16598 (t (call-interactively 'forward-word))))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16599
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16600 (defun org-metaup (&optional arg)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16601 "Move subtree up or move table row up.
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16602 Calls `org-move-subtree-up' or `org-table-move-row' or
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16603 `org-move-item-up', depending on context. See the individual commands
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16604 for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16605 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16606 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16607 ((org-at-table-p) (org-call-with-arg 'org-table-move-row 'up))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16608 ((org-on-heading-p) (call-interactively 'org-move-subtree-up))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16609 ((org-at-item-p) (call-interactively 'org-move-item-up))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16610 (t (org-shiftcursor-error))))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16611
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16612 (defun org-metadown (&optional arg)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16613 "Move subtree down or move table row down.
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16614 Calls `org-move-subtree-down' or `org-table-move-row' or
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16615 `org-move-item-down', depending on context. See the individual
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16616 commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16617 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16618 (cond
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16619 ((org-at-table-p) (call-interactively 'org-table-move-row))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16620 ((org-on-heading-p) (call-interactively 'org-move-subtree-down))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16621 ((org-at-item-p) (call-interactively 'org-move-item-down))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16622 (t (org-shiftcursor-error))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16623
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16624 (defun org-shiftup (&optional arg)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16625 "Increase item in timestamp or increase priority of current headline.
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16626 Calls `org-timestamp-up' or `org-priority-up', depending on context.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16627 See the individual commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16628 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16629 (cond
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
16630 ((org-at-timestamp-p t) (call-interactively 'org-timestamp-up))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16631 ((org-on-heading-p) (call-interactively 'org-priority-up))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16632 ((org-at-item-p) (call-interactively 'org-previous-item))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16633 (t (call-interactively 'org-beginning-of-item) (beginning-of-line 1))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16634
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16635 (defun org-shiftdown (&optional arg)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16636 "Decrease item in timestamp or decrease priority of current headline.
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16637 Calls `org-timestamp-down' or `org-priority-down', depending on context.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16638 See the individual commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16639 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16640 (cond
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
16641 ((org-at-timestamp-p t) (call-interactively 'org-timestamp-down))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16642 ((org-on-heading-p) (call-interactively 'org-priority-down))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16643 (t (call-interactively 'org-next-item))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16644
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16645 (defun org-shiftright ()
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16646 "Next TODO keyword or timestamp one day later, depending on context."
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16647 (interactive)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16648 (cond
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
16649 ((org-at-timestamp-p t) (call-interactively 'org-timestamp-up-day))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16650 ((org-on-heading-p) (org-call-with-arg 'org-todo 'right))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16651 (t (org-shiftcursor-error))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16652
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16653 (defun org-shiftleft ()
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16654 "Previous TODO keyword or timestamp one day earlier, depending on context."
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16655 (interactive)
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16656 (cond
71524
d408779d0af3 (org-prepare-agenda-buffers): Use `invisible-OK' argument
Carsten Dominik <dominik@science.uva.nl>
parents: 71506
diff changeset
16657 ((org-at-timestamp-p t) (call-interactively 'org-timestamp-down-day))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16658 ((org-on-heading-p) (org-call-with-arg 'org-todo 'left))
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16659 (t (org-shiftcursor-error))))
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16660
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16661 (defun org-copy-special ()
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16662 "Copy region in table or copy current subtree.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16663 Calls `org-table-copy' or `org-copy-subtree', depending on context.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16664 See the individual commands for more information."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16665 (interactive)
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
16666 (call-interactively
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16667 (if (org-at-table-p) 'org-table-copy-region 'org-copy-subtree)))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16668
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16669 (defun org-cut-special ()
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16670 "Cut region in table or cut current subtree.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16671 Calls `org-table-copy' or `org-cut-subtree', depending on context.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16672 See the individual commands for more information."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16673 (interactive)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16674 (call-interactively
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16675 (if (org-at-table-p) 'org-table-cut-region 'org-cut-subtree)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16676
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16677 (defun org-paste-special (arg)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16678 "Paste rectangular region into table, or past subtree relative to level.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16679 Calls `org-table-paste-rectangle' or `org-paste-subtree', depending on context.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16680 See the individual commands for more information."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16681 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16682 (if (org-at-table-p)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16683 (org-table-paste-rectangle)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16684 (org-paste-subtree arg)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16685
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16686 (defun org-ctrl-c-ctrl-c (&optional arg)
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16687 "Set tags in headline, or update according to changed information at point.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16688
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16689 This command does many different things, depending on context:
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16690
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16691 - If the cursor is in a headline, prompt for tags and insert them
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16692 into the current line, aligned to `org-tags-column'. When called
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16693 with prefix arg, realign all tags in the current buffer.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16694
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16695 - If the cursor is in one of the special #+KEYWORD lines, this
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16696 triggers scanning the buffer for these lines and updating the
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16697 information.
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16698
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16699 - If the cursor is inside a table, realign the table. This command
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16700 works even if the automatic table editor has been turned off.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16701
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16702 - If the cursor is on a #+TBLFM line, re-apply the formulas to
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16703 the entire table.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16704
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16705 - If the cursor is inside a table created by the table.el package,
70010
c49248393916 (org-set-regexps-and-options, org-get-current-options):
Carsten Dominik <dominik@science.uva.nl>
parents: 70009
diff changeset
16706 activate that table.
69997
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16707
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16708 - If the current buffer is a remember buffer, close note and file it.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16709 with a prefix argument, file it without further interaction to the default
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16710 location.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16711
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16712 - If the cursor is on a <<<target>>>, update radio targets and corresponding
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16713 links in this buffer.
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16714
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16715 - If the cursor is on a numbered item in a plain list, renumber the
8a4e2269dd99 (org-ctrl-c-ctrl-c): Improved documentation string.
Carsten Dominik <dominik@science.uva.nl>
parents: 69931
diff changeset
16716 ordered list."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16717 (interactive "P")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16718 (let ((org-enable-table-editor t))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16719 (cond
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16720 ((or org-clock-overlays
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16721 org-occur-highlights
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16722 org-latex-fragment-image-overlays)
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16723 (org-remove-clock-overlays)
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16724 (org-remove-occur-highlights)
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16725 (org-remove-latex-fragment-image-overlays)
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16726 (message "Temporary highlights/overlays removed from current buffer"))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16727 ((and (local-variable-p 'org-finish-function (current-buffer))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16728 (fboundp org-finish-function))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16729 (funcall org-finish-function))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16730 ((org-on-target-p) (call-interactively 'org-update-radio-target-regexp))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16731 ((org-on-heading-p) (call-interactively 'org-set-tags))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16732 ((org-at-table.el-p)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16733 (require 'table)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16734 (beginning-of-line 1)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16735 (re-search-forward "|" (save-excursion (end-of-line 2) (point)))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16736 (call-interactively 'table-recognize-table))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16737 ((org-at-table-p)
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16738 (org-table-maybe-eval-formula)
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16739 (if arg
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16740 (call-interactively 'org-table-recalculate)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16741 (org-table-maybe-recalculate-line))
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16742 (call-interactively 'org-table-align))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16743 ((org-at-item-checkbox-p)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16744 (call-interactively 'org-toggle-checkbox))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16745 ((org-at-item-p)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16746 (call-interactively 'org-renumber-ordered-list))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16747 ((save-excursion (beginning-of-line 1) (looking-at "#\\+\\([A-Z]+\\)"))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16748 (cond
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16749 ((equal (match-string 1) "TBLFM")
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16750 ;; Recalculate the table before this line
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16751 (save-excursion
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16752 (beginning-of-line 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16753 (skip-chars-backward " \r\n\t")
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16754 (if (org-at-table-p)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16755 (org-call-with-arg 'org-table-recalculate t))))
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16756 (t
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16757 (call-interactively 'org-mode-restart))))
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
16758 (t (error "C-c C-c can do nothing useful at this location.")))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16759
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16760 (defun org-mode-restart ()
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16761 "Restart Org-mode, to scan again for special lines.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16762 Also updates the keyword regular expressions."
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16763 (interactive)
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16764 (let ((org-inhibit-startup t)) (org-mode))
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16765 (message "Org-mode restarted to refresh keyword and special line setup"))
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16766
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16767 (defun org-return ()
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16768 "Goto next table row or insert a newline.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16769 Calls `org-table-next-row' or `newline', depending on context.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16770 See the individual commands for more information."
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
16771 (interactive)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16772 (cond
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16773 ((org-at-table-p)
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16774 (org-table-justify-field-maybe)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16775 (call-interactively 'org-table-next-row))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16776 (t (newline))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16777
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16778 (defun org-meta-return (&optional arg)
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16779 "Insert a new heading or wrap a region in a table.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16780 Calls `org-insert-heading' or `org-table-wrap-region', depending on context.
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16781 See the individual commands for more information."
59539
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16782 (interactive "P")
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16783 (cond
998101ef8562 2005-01-14 Carsten Dominik <dominik@science.uva.nl>
Carsten Dominik <dominik@science.uva.nl>
parents: 58841
diff changeset
16784 ((org-at-table-p)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16785 (call-interactively 'org-table-wrap-region))
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
16786 (t (call-interactively 'org-insert-heading))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16787
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16788 ;;; Menu entries
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16789
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16790 ;; Define the Org-mode menus
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16791 (easy-menu-define org-tbl-menu org-mode-map "Tbl menu"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16792 '("Tbl"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16793 ["Align" org-ctrl-c-ctrl-c (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16794 ["Next Field" org-cycle (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16795 ["Previous Field" org-shifttab (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16796 ["Next Row" org-return (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16797 "--"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16798 ["Blank Field" org-table-blank-field (org-at-table-p)]
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16799 ["Edit Field" org-table-edit-field (org-at-table-p)]
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16800 ["Copy Field from Above" org-table-copy-down (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16801 "--"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16802 ("Column"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16803 ["Move Column Left" org-metaleft (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16804 ["Move Column Right" org-metaright (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16805 ["Delete Column" org-shiftmetaleft (org-at-table-p)]
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16806 ["Insert Column" org-shiftmetaright (org-at-table-p)]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16807 "--"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16808 ["Enable Narrowing" (setq org-table-limit-column-width (not org-table-limit-column-width)) :active (org-at-table-p) :selected org-table-limit-column-width :style toggle])
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16809 ("Row"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16810 ["Move Row Up" org-metaup (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16811 ["Move Row Down" org-metadown (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16812 ["Delete Row" org-shiftmetaup (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16813 ["Insert Row" org-shiftmetadown (org-at-table-p)]
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
16814 ["Sort lines in region" org-table-sort-lines (org-at-table-p)]
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16815 "--"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16816 ["Insert Hline" org-table-insert-hline (org-at-table-p)])
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16817 ("Rectangle"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16818 ["Copy Rectangle" org-copy-special (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16819 ["Cut Rectangle" org-cut-special (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16820 ["Paste Rectangle" org-paste-special (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16821 ["Fill Rectangle" org-table-wrap-region (org-at-table-p)])
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16822 "--"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16823 ("Calculate"
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
16824 ["Set Column Formula" org-table-eval-formula (org-at-table-p)]
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
16825 ["Set Named Field Formula" (org-table-eval-formula '(4)) :active (org-at-table-p) :keys "C-u C-c ="]
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
16826 ["Edit Formulas" org-table-edit-formulas (org-at-table-p)]
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
16827 "--"
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16828 ["Recalculate line" org-table-recalculate (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16829 ["Recalculate all" (lambda () (interactive) (org-table-recalculate '(4))) :active (org-at-table-p) :keys "C-u C-c *"]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16830 ["Toggle Recalculate Mark" org-table-rotate-recalc-marks (org-at-table-p)]
64515
3f75dfc753c0 (org-table-column-names, org-table-column-name-regexp)
Carsten Dominik <dominik@science.uva.nl>
parents: 64084
diff changeset
16831 "--"
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
16832 ["Sum Column/Rectangle" org-table-sum
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16833 (or (org-at-table-p) (org-region-active-p))]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16834 ["Which Column?" org-table-current-column (org-at-table-p)])
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16835 ["Debug Formulas"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16836 (setq org-table-formula-debug (not org-table-formula-debug))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16837 :style toggle :selected org-table-formula-debug]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16838 "--"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16839 ["Create" org-table-create (and (not (org-at-table-p))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
16840 org-enable-table-editor)]
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16841 ["Convert Region" org-table-convert-region (not (org-at-table-p 'any))]
63832
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16842 ["Import from File" org-table-import (not (org-at-table-p))]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16843 ["Export to File" org-table-export (org-at-table-p)]
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16844 "--"
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16845 ["Create/Convert from/to table.el" org-table-create-with-table.el t]))
d367f23e6db1 (orgtbl-setup): New function, for delayed
Carsten Dominik <dominik@science.uva.nl>
parents: 63431
diff changeset
16846
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16847 (easy-menu-define org-org-menu org-mode-map "Org menu"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16848 '("Org"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16849 ("Show/Hide"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16850 ["Cycle Visibility" org-cycle (or (bobp) (outline-on-heading-p))]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16851 ["Cycle Global Visibility" org-shifttab (not (org-at-table-p))]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16852 ["Sparse Tree" org-occur t]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16853 ["Reveal Context" org-reveal t]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16854 ["Show All" show-all t])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16855 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16856 ["New Heading" org-insert-heading t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16857 ("Navigate Headings"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16858 ["Up" outline-up-heading t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16859 ["Next" outline-next-visible-heading t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16860 ["Previous" outline-previous-visible-heading t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16861 ["Next Same Level" outline-forward-same-level t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16862 ["Previous Same Level" outline-backward-same-level t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16863 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16864 ["Jump" org-goto t])
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16865 ("Edit Structure"
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16866 ["Move Subtree Up" org-shiftmetaup (not (org-at-table-p))]
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16867 ["Move Subtree Down" org-shiftmetadown (not (org-at-table-p))]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16868 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16869 ["Copy Subtree" org-copy-special (not (org-at-table-p))]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16870 ["Cut Subtree" org-cut-special (not (org-at-table-p))]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16871 ["Paste Subtree" org-paste-special (not (org-at-table-p))]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16872 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16873 ["Promote Heading" org-metaleft (not (org-at-table-p))]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16874 ["Promote Subtree" org-shiftmetaleft (not (org-at-table-p))]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16875 ["Demote Heading" org-metaright (not (org-at-table-p))]
63359
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
16876 ["Demote Subtree" org-shiftmetaright (not (org-at-table-p))]
add99bfc904a (org-CUA-compatible): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 63225
diff changeset
16877 "--"
69454
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
16878 ["Convert to odd levels" org-convert-to-odd-levels t]
d60237bf3ccc (org-link-search): Avoid self-matching of links, allow
Carsten Dominik <dominik@science.uva.nl>
parents: 69319
diff changeset
16879 ["Convert to odd/even levels" org-convert-to-oddeven-levels t])
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16880 ("Archive"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16881 ["Toggle ARCHIVE tag" org-toggle-archive-tag t]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16882 ["Check and Tag Children" (org-toggle-archive-tag (4))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16883 :active t :keys "C-u C-c C-x C-a"]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16884 ["Sparse trees open ARCHIVE trees"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16885 (setq org-sparse-tree-open-archived-trees
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16886 (not org-sparse-tree-open-archived-trees))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16887 :style toggle :selected org-sparse-tree-open-archived-trees]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16888 ["Cycling opens ARCHIVE trees"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16889 (setq org-cycle-open-archived-trees (not org-cycle-open-archived-trees))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16890 :style toggle :selected org-cycle-open-archived-trees]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16891 ["Agenda includes ARCHIVE trees"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16892 (setq org-agenda-skip-archived-trees (not org-agenda-skip-archived-trees))
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16893 :style toggle :selected (not org-agenda-skip-archived-trees)]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16894 "--"
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16895 ["Move Subtree to Archive" org-archive-subtree t]
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
16896 ["Check and Move Children" (org-archive-subtree '(4))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16897 :active t :keys "C-u C-c $"])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16898 "--"
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16899 ("TODO Lists"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16900 ["TODO/DONE/-" org-todo t]
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
16901 ("Select keyword"
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
16902 ["Next keyword" org-shiftright (org-on-heading-p)]
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
16903 ["Previous keyword" org-shiftleft (org-on-heading-p)]
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
16904 ["Complete Keyword" org-complete (assq :todo-keyword (org-context))])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16905 ["Show TODO Tree" org-show-todo-tree t]
67342
5790642c4a89 (org-occur-highlights): New variable.
Carsten Dominik <dominik@science.uva.nl>
parents: 67105
diff changeset
16906 ["Global TODO list" org-todo-list t]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16907 "--"
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16908 ["Set Priority" org-priority t]
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16909 ["Priority Up" org-shiftup t]
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16910 ["Priority Down" org-shiftdown t]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16911 "--"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16912 ; ["Insert Checkbox" org-insert-todo-heading (org-in-item-p)]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16913 ; ["Toggle Checkbox" org-ctrl-c-ctrl-c (org-at-item-checkbox-p)]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16914 ; ["Insert [n/m] cookie" (progn (insert "[/]") (org-update-checkbox-count))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16915 ; (or (org-on-heading-p) (org-at-item-p))]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16916 ; ["Insert [%] cookie" (progn (insert "[%]") (org-update-checkbox-count))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16917 ; (or (org-on-heading-p) (org-at-item-p))]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16918 ; ["Update Statistics" org-update-checkbox-count t]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16919 )
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16920 ("Dates and Scheduling"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16921 ["Timestamp" org-time-stamp t]
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16922 ["Timestamp (inactive)" org-time-stamp-inactive t]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16923 ("Change Date"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16924 ["1 Day Later" org-shiftright t]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16925 ["1 Day Earlier" org-shiftleft t]
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16926 ["1 ... Later" org-shiftup t]
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16927 ["1 ... Earlier" org-shiftdown t])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16928 ["Compute Time Range" org-evaluate-time-range t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16929 ["Schedule Item" org-schedule t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16930 ["Deadline" org-deadline t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16931 "--"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16932 ["Custom time format" org-toggle-time-stamp-overlays
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16933 :style radio :selected org-display-custom-times]
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16934 "--"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16935 ["Goto Calendar" org-goto-calendar t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16936 ["Date from Calendar" org-date-from-calendar t])
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16937 ("Logging work"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16938 ["Clock in" org-clock-in t]
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16939 ["Clock out" org-clock-out t]
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16940 ["Clock cancel" org-clock-cancel t]
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16941 ["Display times" org-clock-display t]
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
16942 ["Create clock table" org-clock-report t]
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16943 "--"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16944 ["Record DONE time"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16945 (progn (setq org-log-done (not org-log-done))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16946 (message "Switching to %s will %s record a timestamp"
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16947 org-done-string
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16948 (if org-log-done "automatically" "not")))
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16949 :style toggle :selected org-log-done])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16950 "--"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16951 ["Agenda Command..." org-agenda t]
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
16952 ("File List for Agenda")
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
16953 ("Special views current file"
67612
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
16954 ["TODO Tree" org-show-todo-tree t]
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
16955 ["Check Deadlines" org-check-deadlines t]
58d7532b2ef1 (org-tags-match-list-sublevels): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67535
diff changeset
16956 ["Timeline" org-timeline t]
67692
f30b7a47672e (org-agenda-custom-commands): New option.
Carsten Dominik <dominik@science.uva.nl>
parents: 67612
diff changeset
16957 ["Tags Tree" org-tags-sparse-tree t])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16958 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16959 ("Hyperlinks"
61560
a54fc673c31c (org-agenda-date-prompt): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 61312
diff changeset
16960 ["Store Link (Global)" org-store-link t]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16961 ["Insert Link" org-insert-link t]
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16962 ["Follow Link" org-open-at-point t]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16963 "--"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16964 ["Descriptive Links"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16965 (progn (org-add-to-invisibility-spec '(org-link)) (org-restart-font-lock))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16966 :style radio :selected (member '(org-link) buffer-invisibility-spec)]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16967 ["Literal Links"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16968 (progn
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16969 (org-remove-from-invisibility-spec '(org-link)) (org-restart-font-lock))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16970 :style radio :selected (not (member '(org-link) buffer-invisibility-spec))]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16971 "--"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16972 ["Upgrade all <link> to [[link][desc]]" org-upgrade-old-links
71310
0d8984127630 (org-agenda-mode-map): Add bindings for clocking
Carsten Dominik <dominik@science.uva.nl>
parents: 71244
diff changeset
16973 (save-excursion (goto-char (point-min))
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16974 (re-search-forward "<[a-z]+:" nil t))])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16975 "--"
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
16976 ["Export/Publish..." org-export t]
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16977 ("LaTeX"
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
16978 ["Org CDLaTeX mode" org-cdlatex-mode :style toggle
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16979 :selected org-cdlatex-mode]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16980 ["Insert Environment" cdlatex-environment (fboundp 'cdlatex-environment)]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16981 ["Insert math symbol" cdlatex-math-symbol (fboundp 'cdlatex-math-symbol)]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16982 ["Modify math symbol" org-cdlatex-math-modify
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16983 (org-inside-LaTeX-fragment-p)]
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16984 ["Export LaTeX fragments as images"
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
16985 (setq org-export-with-LaTeX-fragments (not org-export-with-LaTeX-fragments))
71449
525b50d438b5 (org-cdlatex-mode-map)
Carsten Dominik <dominik@science.uva.nl>
parents: 71384
diff changeset
16986 :style toggle :selected org-export-with-LaTeX-fragments])
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16987 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16988 ("Documentation"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16989 ["Show Version" org-version t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16990 ["Info Documentation" org-info t])
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16991 ("Customize"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16992 ["Browse Org Group" org-customize t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16993 "--"
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
16994 ["Expand This Menu" org-create-customize-menu
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16995 (fboundp 'customize-menu-create)])
65654
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16996 "--"
4a2301f2a9bb * textmodes/org.el (org-mode-map, orgtbl-mode-map): Move
Carsten Dominik <dominik@science.uva.nl>
parents: 65638
diff changeset
16997 ["Refresh setup" org-mode-restart t]
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16998 ))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16999
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17000 (defun org-info (&optional node)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17001 "Read documentation for Org-mode in the info system.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17002 With optional NODE, go directly to that node."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17003 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17004 (require 'info)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17005 (Info-goto-node (format "(org)%s" (or node ""))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17006
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17007 (defun org-install-agenda-files-menu ()
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17008 (let ((bl (buffer-list)))
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17009 (save-excursion
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17010 (while bl
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17011 (set-buffer (pop bl))
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
17012 (if (org-mode-p) (setq bl nil)))
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
17013 (when (org-mode-p)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17014 (easy-menu-change
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17015 '("Org") "File List for Agenda"
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17016 (append
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17017 (list
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17018 ["Edit File List" (org-edit-agenda-file-list) t]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17019 ["Add/Move Current File to Front of List" org-agenda-file-to-front t]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17020 ["Remove Current File from List" org-remove-file t]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17021 ["Cycle through agenda files" org-cycle-agenda-files t]
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17022 "--")
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17023 (mapcar 'org-file-menu-entry (org-agenda-files t))))))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17024
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17025 ;;; Documentation
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17026
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17027 (defun org-customize ()
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17028 "Call the customize function with org as argument."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17029 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17030 (customize-browse 'org))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17031
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17032 (defun org-create-customize-menu ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17033 "Create a full customization menu for Org-mode, insert it into the menu."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17034 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17035 (if (fboundp 'customize-menu-create)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17036 (progn
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17037 (easy-menu-change
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17038 '("Org") "Customize"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17039 `(["Browse Org group" org-customize t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17040 "--"
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17041 ,(customize-menu-create 'org)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17042 ["Set" Custom-set t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17043 ["Save" Custom-save t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17044 ["Reset to Current" Custom-reset-current t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17045 ["Reset to Saved" Custom-reset-saved t]
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17046 ["Reset to Standard Settings" Custom-reset-standard t]))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17047 (message "\"Org\"-menu now contains full customization menu"))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17048 (error "Cannot expand menu (outdated version of cus-edit.el)")))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17049
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17050 ;;; Miscellaneous stuff
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17051
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17052 (defun org-context ()
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17053 "Return a list of contexts of the current cursor position.
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17054 If several contexts apply, all are returned.
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17055 Each context entry is a list with a symbol naming the context, and
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17056 two positions indicating start and end of the context. Possible
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17057 contexts are:
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17058
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17059 :headline anywhere in a headline
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17060 :headline-stars on the leading stars in a headline
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17061 :todo-keyword on a TODO keyword (including DONE) in a headline
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17062 :tags on the TAGS in a headline
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17063 :priority on the priority cookie in a headline
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17064 :item on the first line of a plain list item
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17065 :item-bullet on the bullet/number of a plain list item
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17066 :checkbox on the checkbox in a plain list item
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17067 :table in an org-mode table
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17068 :table-special on a special filed in a table
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17069 :table-table in a table.el table
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17070 :link on a hyperline
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17071 :keyword on a keyword: SCHEDULED, DEADLINE, CLOSE,COMMENT, QUOTE.
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17072 :target on a <<target>>
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17073 :radio-target on a <<<radio-target>>>
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17074 :latex-fragment on a LaTeX fragment
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17075 :latex-preview on a LaTeX fragment with overlayed preview image
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17076
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17077 This function expects the position to be visible because it uses font-lock
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17078 faces as a help to recognize the following contexts: :table-special, :link,
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17079 and :keyword."
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17080 (let* ((f (get-text-property (point) 'face))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17081 (faces (if (listp f) f (list f)))
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17082 (p (point)) clist o)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17083 ;; First the large context
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17084 (cond
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17085 ((org-on-heading-p)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17086 (push (list :headline (point-at-bol) (point-at-eol)) clist)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17087 (when (progn
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17088 (beginning-of-line 1)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17089 (looking-at org-todo-line-tags-regexp))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17090 (push (org-point-in-group p 1 :headline-stars) clist)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17091 (push (org-point-in-group p 2 :todo-keyword) clist)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17092 (push (org-point-in-group p 4 :tags) clist))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17093 (goto-char p)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17094 (skip-chars-backward "^[\n\r \t") (or (eobp) (backward-char 1))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17095 (if (looking-at "\\[#[A-Z]\\]")
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17096 (push (org-point-in-group p 0 :priority) clist)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17097
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17098 ((org-at-item-p)
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17099 (push (org-point-in-group p 2 :item-bullet) clist)
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17100 (push (list :item (point-at-bol)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17101 (save-excursion (org-end-of-item) (point)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17102 clist)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17103 (and (org-at-item-checkbox-p)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17104 (push (org-point-in-group p 0 :checkbox) clist)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17105
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17106 ((org-at-table-p)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17107 (push (list :table (org-table-begin) (org-table-end)) clist)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17108 (if (memq 'org-formula faces)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17109 (push (list :table-special
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17110 (previous-single-property-change p 'face)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17111 (next-single-property-change p 'face)) clist)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17112 ((org-at-table-p 'any)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17113 (push (list :table-table) clist)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17114 (goto-char p)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17115
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17116 ;; Now the small context
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17117 (cond
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17118 ((org-at-timestamp-p)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17119 (push (org-point-in-group p 0 :timestamp) clist))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17120 ((memq 'org-link faces)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17121 (push (list :link
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17122 (previous-single-property-change p 'face)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17123 (next-single-property-change p 'face)) clist))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17124 ((memq 'org-special-keyword faces)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17125 (push (list :keyword
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17126 (previous-single-property-change p 'face)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17127 (next-single-property-change p 'face)) clist))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17128 ((org-on-target-p)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17129 (push (org-point-in-group p 0 :target) clist)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17130 (goto-char (1- (match-beginning 0)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17131 (if (looking-at org-radio-target-regexp)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17132 (push (org-point-in-group p 0 :radio-target) clist))
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17133 (goto-char p))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17134 ((setq o (car (delq nil
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
17135 (mapcar
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17136 (lambda (x)
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17137 (if (memq x org-latex-fragment-image-overlays) x))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17138 (org-overlays-at (point))))))
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
17139 (push (list :latex-fragment
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17140 (org-overlay-start o) (org-overlay-end o)) clist)
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
17141 (push (list :latex-preview
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17142 (org-overlay-start o) (org-overlay-end o)) clist))
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17143 ((org-inside-LaTeX-fragment-p)
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17144 ;; FIXME: positions wrong.
71506
727524ec34f8 (org-context): New contexts :item-bullet,
Carsten Dominik <dominik@science.uva.nl>
parents: 71449
diff changeset
17145 (push (list :latex-fragment (point) (point)) clist)))
71096
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17146
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17147 (setq clist (nreverse (delq nil clist)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17148 clist))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17149
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17150 (defun org-point-in-group (point group &optional context)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17151 "Check if POINT is in match-group GROUP.
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17152 If CONTEXT is non-nil, return a list with CONTEXT and the boundaries of the
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17153 match. If the match group does ot exist or point is not inside it,
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17154 return nil."
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17155 (and (match-beginning group)
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17156 (>= point (match-beginning group))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17157 (<= point (match-end group))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17158 (if context
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17159 (list context (match-beginning group) (match-end group))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17160 t)))
d26859871d39 (org-agenda-highlight-todo): Make sure regexp
Carsten Dominik <dominik@science.uva.nl>
parents: 70953
diff changeset
17161
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17162 (defun org-move-line-down (arg)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17163 "Move the current line down. With prefix argument, move it past ARG lines."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17164 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17165 (let ((col (current-column))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17166 beg end pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17167 (beginning-of-line 1) (setq beg (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17168 (beginning-of-line 2) (setq end (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17169 (beginning-of-line (+ 1 arg))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17170 (setq pos (move-marker (make-marker) (point)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17171 (insert (delete-and-extract-region beg end))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17172 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17173 (move-to-column col)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17174
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17175 (defun org-move-line-up (arg)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17176 "Move the current line up. With prefix argument, move it past ARG lines."
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17177 (interactive "p")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17178 (let ((col (current-column))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17179 beg end pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17180 (beginning-of-line 1) (setq beg (point))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17181 (beginning-of-line 2) (setq end (point))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17182 (beginning-of-line (- arg))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17183 (setq pos (move-marker (make-marker) (point)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17184 (insert (delete-and-extract-region beg end))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17185 (goto-char pos)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17186 (move-to-column col)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17187
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17188 ;; Paragraph filling stuff.
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17189 ;; We want this to be just right, so use the full arsenal.
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17190
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17191 (defun org-set-autofill-regexps ()
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17192 (interactive)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17193 ;; In the paragraph separator we include headlines, because filling
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17194 ;; text in a line directly attached to a headline would otherwise
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17195 ;; fill the headline as well.
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17196 (org-set-local 'comment-start-skip "^#+[ \t]*")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17197 (org-set-local 'paragraph-separate "\f\\|\\*\\|[ ]*$\\|[ \t]*[:|]")
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17198 ;; The paragraph starter includes hand-formatted lists.
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17199 (org-set-local 'paragraph-start
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17200 "\f\\|[ ]*$\\|\\([*\f]+\\)\\|[ \t]*\\([-+*][ \t]+\\|[0-9]+[.)][ \t]+\\)\\|[ \t]*[:|]")
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17201 ;; Inhibit auto-fill for headers, tables and fixed-width lines.
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17202 ;; But only if the user has not turned off tables or fixed-width regions
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17203 (org-set-local
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17204 'auto-fill-inhibit-regexp
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17205 (concat "\\*\\|#"
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17206 "\\|[ \t]*" org-keyword-time-regexp
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17207 (if (or org-enable-table-editor org-enable-fixed-width-editor)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17208 (concat
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17209 "\\|[ \t]*["
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17210 (if org-enable-table-editor "|" "")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17211 (if org-enable-fixed-width-editor ":" "")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17212 "]"))))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17213 ;; We use our own fill-paragraph function, to make sure that tables
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17214 ;; and fixed-width regions are not wrapped. That function will pass
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17215 ;; through to `fill-paragraph' when appropriate.
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17216 (org-set-local 'fill-paragraph-function 'org-fill-paragraph)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17217 ; Adaptive filling: To get full control, first make sure that
70018
513397bbb13c *** empty log message ***
Carsten Dominik <dominik@science.uva.nl>
parents: 70017
diff changeset
17218 ;; `adaptive-fill-regexp' never matches. Then install our own matcher.
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17219 (org-set-local 'adaptive-fill-regexp "\000")
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17220 (org-set-local 'adaptive-fill-function
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17221 'org-adaptive-fill-function))
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17222
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17223 (defun org-fill-paragraph (&optional justify)
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17224 "Re-align a table, pass through to fill-paragraph if no table."
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17225 (let ((table-p (org-at-table-p))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17226 (table.el-p (org-at-table.el-p)))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17227 (cond ((equal (char-after (point-at-bol)) ?*) t) ; skip headlines
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17228 (table.el-p t) ; skip table.el tables
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17229 (table-p (org-table-align) t) ; align org-mode tables
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17230 (t nil)))) ; call paragraph-fill
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17231
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17232 ;; For reference, this is the default value of adaptive-fill-regexp
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17233 ;; "[ \t]*\\([-|#;>*]+[ \t]*\\|(?[0-9]+[.)][ \t]*\\)*"
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17234
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17235 (defun org-adaptive-fill-function ()
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17236 "Return a fill prefix for org-mode files.
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17237 In particular, this makes sure hanging paragraphs for hand-formatted lists
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17238 work correctly."
67105
7286e01feef0 (org-export-plain-list-max-depth): Renamed from
Carsten Dominik <dominik@science.uva.nl>
parents: 66987
diff changeset
17239 (if (looking-at " *\\([-*+] \\|[0-9]+[.)] \\)?")
66987
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17240 (make-string (- (match-end 0) (match-beginning 0)) ?\ )))
4da59b0dd54b (org-table-sort-lines): New command.
Carsten Dominik <dominik@science.uva.nl>
parents: 66741
diff changeset
17241
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17242 ;; Functions needed for Emacs/XEmacs region compatibility
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17243
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17244 (defun org-add-hook (hook function &optional append local)
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17245 "Add-hook, compatible with both Emacsen."
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17246 (if (and local (featurep 'xemacs))
69116
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
17247 (add-local-hook hook function append)
79fc120cc4c1 (org-cleaned-string-for-export, org-solidify-link-text):
Carsten Dominik <dominik@science.uva.nl>
parents: 69088
diff changeset
17248 (add-hook hook function append local)))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17249
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17250 (defun org-region-active-p ()
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17251 "Is `transient-mark-mode' on and the region active?
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17252 Works on both Emacs and XEmacs."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17253 (if org-ignore-region
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17254 nil
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17255 (if (featurep 'xemacs)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17256 (and zmacs-regions (region-active-p))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17257 (and transient-mark-mode mark-active))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17258
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17259 (defun org-add-to-invisibility-spec (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17260 "Add elements to `buffer-invisibility-spec'.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17261 See documentation for `buffer-invisibility-spec' for the kind of elements
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17262 that can be added."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17263 (cond
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17264 ((fboundp 'add-to-invisibility-spec)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17265 (add-to-invisibility-spec arg))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17266 ((or (null buffer-invisibility-spec) (eq buffer-invisibility-spec t))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17267 (setq buffer-invisibility-spec (list arg)))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17268 (t
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17269 (setq buffer-invisibility-spec
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17270 (cons arg buffer-invisibility-spec)))))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17271
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17272 (defun org-remove-from-invisibility-spec (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17273 "Remove elements from `buffer-invisibility-spec'."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17274 (if (fboundp 'remove-from-invisibility-spec)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17275 (remove-from-invisibility-spec arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17276 (if (consp buffer-invisibility-spec)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17277 (setq buffer-invisibility-spec
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17278 (delete arg buffer-invisibility-spec)))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17279
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17280 (defun org-in-invisibility-spec-p (arg)
68478
61b78b1445bf (org-allow-space-in-links, org-closed-string, org-quote-string,
Juanma Barranquero <lekktu@gmail.com>
parents: 68294
diff changeset
17281 "Is ARG a member of `buffer-invisibility-spec'?"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17282 (if (consp buffer-invisibility-spec)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17283 (member arg buffer-invisibility-spec)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17284 nil))
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17285
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17286 (defun org-image-file-name-regexp ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17287 "Return regexp matching the file names of images."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17288 (if (fboundp 'image-file-name-regexp)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17289 (image-file-name-regexp)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17290 (let ((image-file-name-extensions
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17291 '("png" "jpeg" "jpg" "gif" "tiff" "tif"
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17292 "xbm" "xpm" "pbm" "pgm" "ppm")))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17293 (concat "\\."
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17294 (regexp-opt (nconc (mapcar 'upcase
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17295 image-file-name-extensions)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17296 image-file-name-extensions)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17297 t)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17298 "\\'"))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17299
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17300 ;; Functions extending outline functionality
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17301
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17302 ;; C-a should go to the beginning of a *visible* line, also in the
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17303 ;; new outline.el. I guess this should be patched into Emacs?
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17304 (defun org-beginning-of-line ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17305 "Go to the beginning of the current line. If that is invisible, continue
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17306 to a visible line beginning. This makes the function of C-a more intuitive."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17307 (interactive)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17308 (beginning-of-line 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17309 (if (bobp)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17310 nil
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17311 (backward-char 1)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17312 (if (org-invisible-p)
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17313 (while (and (not (bobp)) (org-invisible-p))
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17314 (backward-char 1)
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17315 (beginning-of-line 1))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17316 (forward-char 1))))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17317
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17318 (define-key org-mode-map "\C-a" 'org-beginning-of-line)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17319
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17320 (defun org-invisible-p ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17321 "Check if point is at a character currently not visible."
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17322 ;; Early versions of noutline don't have `outline-invisible-p'.
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17323 (if (fboundp 'outline-invisible-p)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17324 (outline-invisible-p)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17325 (get-char-property (point) 'invisible)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17326
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17327 (defun org-invisible-p2 ()
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17328 "Check if point is at a character currently not visible."
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17329 (save-excursion
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17330 (if (and (eolp) (not (bobp))) (backward-char 1))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17331 ;; Early versions of noutline don't have `outline-invisible-p'.
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17332 (if (fboundp 'outline-invisible-p)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17333 (outline-invisible-p)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17334 (get-char-property (point) 'invisible))))
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17335
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17336 (defalias 'org-back-to-heading 'outline-back-to-heading)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17337 (defalias 'org-on-heading-p 'outline-on-heading-p)
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17338
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17339 (defun org-on-target-p ()
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17340 (let ((pos (point)))
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17341 (save-excursion
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17342 (skip-chars-forward "<")
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17343 (and (re-search-backward "<<" nil t)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17344 (or (looking-at org-radio-target-regexp)
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17345 (looking-at org-target-regexp))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17346 (<= (match-beginning 0) pos)
69931
9544ae02c58d (org-export-plain-list-max-depth)
Carsten Dominik <dominik@science.uva.nl>
parents: 69685
diff changeset
17347 (>= (1+ (match-end 0)) pos)))))
69088
1e05f30609d3 (org-mark-ring-previous, org-mark-ring-set): New
Carsten Dominik <dominik@science.uva.nl>
parents: 68648
diff changeset
17348
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17349 (defun org-up-heading-all (arg)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17350 "Move to the heading line of which the present line is a subheading.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17351 This function considers both visible and invisible heading lines.
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17352 With argument, move up ARG levels."
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17353 (if (fboundp 'outline-up-heading-all)
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17354 (outline-up-heading-all arg) ; emacs 21 version of outline.el
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17355 (outline-up-heading arg t))) ; emacs 22 version of outline.el
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17356
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17357 (defun org-goto-sibling (&optional previous)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17358 "Goto the next sibling, even if it is invisible.
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17359 When PREVIOUS is set, go to the previous sibling instead. Returns t
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17360 when a sibling was found. When none is found, return nil and don't
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17361 move point."
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17362 (let ((fun (if previous 're-search-backward 're-search-forward))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17363 (pos (point))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17364 (re (concat "^" outline-regexp))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17365 level l)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17366 (org-back-to-heading t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17367 (setq level (funcall outline-level))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17368 (catch 'exit
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17369 (or previous (forward-char 1))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17370 (while (funcall fun re nil t)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17371 (setq l (funcall outline-level))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17372 (when (< l level) (goto-char pos) (throw 'exit nil))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17373 (when (= l level) (goto-char (match-beginning 0)) (throw 'exit t)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17374 (goto-char pos)
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17375 nil)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17376
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17377 (defun org-show-hidden-entry ()
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17378 "Show an entry where even the heading is hidden."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17379 (save-excursion
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17380 (org-show-entry)))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17381
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17382 (defun org-flag-heading (flag &optional entry)
62076
4f2150e05f24 (org-get-entries-from-diary): Remove unused vars.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 61924
diff changeset
17383 "Flag the current heading. FLAG non-nil means make invisible.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17384 When ENTRY is non-nil, show the entire entry."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17385 (save-excursion
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17386 (org-back-to-heading t)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17387 ;; Check if we should show the entire entry
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17388 (if entry
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17389 (progn
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17390 (org-show-entry)
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
17391 (save-excursion
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
17392 (and (outline-next-heading)
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
17393 (org-flag-heading nil))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17394 (outline-flag-region (max 1 (1- (point)))
64080
d5372215b17d Leading space replaced by TABS.
Carsten Dominik <dominik@science.uva.nl>
parents: 64078
diff changeset
17395 (save-excursion (outline-end-of-heading) (point))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17396 flag))))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17397
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17398 (defun org-end-of-subtree (&optional invisible-OK)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17399 ;; This is an exact copy of the original function, but it uses
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17400 ;; `org-back-to-heading', to make it work also in invisible
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17401 ;; trees. And is uses an invisible-OK argument.
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17402 ;; Under Emacs this is not needed, but the old outline.el needs this fix.
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17403 (org-back-to-heading invisible-OK)
68245
1a47b5a03b4a Move defvars out of eval-when-compile. Move code
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68175
diff changeset
17404 (let ((first t)
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17405 (level (funcall outline-level)))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17406 (while (and (not (eobp))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17407 (or first (> (funcall outline-level) level)))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17408 (setq first nil)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17409 (outline-next-heading))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17410 (if (memq (preceding-char) '(?\n ?\^M))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17411 (progn
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17412 ;; Go to end of line before heading
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17413 (forward-char -1)
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17414 (if (memq (preceding-char) '(?\n ?\^M))
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17415 ;; leave blank line before heading
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
17416 (forward-char -1)))))
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
17417 (point))
68031
f556787bf755 (org-end-of-subtree): New function.
Carsten Dominik <dominik@science.uva.nl>
parents: 67692
diff changeset
17418
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17419 (defun org-show-subtree ()
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17420 "Show everything after this heading at deeper levels."
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
17421 (outline-flag-region
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
17422 (point)
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17423 (save-excursion
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17424 (outline-end-of-subtree) (outline-next-heading) (point))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17425 nil))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17426
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17427 (defun org-show-entry ()
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17428 "Show the body directly following this heading.
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17429 Show the heading too, if it is currently invisible."
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17430 (interactive)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17431 (save-excursion
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17432 (org-back-to-heading t)
63902
0b526dc24ccb (org-agenda-start-on-weekday, org-calendar-to-agenda-key,
Juanma Barranquero <lekktu@gmail.com>
parents: 63832
diff changeset
17433 (outline-flag-region
70866
7d0efe895341 (org-open-at-point): Use renamed variable
Carsten Dominik <dominik@science.uva.nl>
parents: 70585
diff changeset
17434 (max 1 (1- (point)))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17435 (save-excursion
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17436 (re-search-forward (concat "[\r\n]\\(" outline-regexp "\\)") nil 'move)
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17437 (or (match-beginning 1) (point-max)))
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17438 nil)))
61924
d29accb0274a Many small changes to keep the byte compiler happy. Furthermore:
Carsten Dominik <dominik@science.uva.nl>
parents: 61582
diff changeset
17439
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17440 (defun org-make-options-regexp (kwds)
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17441 "Make a regular expression for keyword lines."
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17442 (concat
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17443 "^"
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17444 "#?[ \t]*\\+\\("
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17445 (mapconcat 'regexp-quote kwds "\\|")
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17446 "\\):[ \t]*"
72398
1c9c6dd0b6d3 (org-clock-special-range, org-clock-update-time-maybe):
Carsten Dominik <dominik@science.uva.nl>
parents: 71652
diff changeset
17447 "\\(.+\\)"))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17448
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17449 ;; Make `bookmark-jump' show the jump location if it was hidden.
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17450 (eval-after-load "bookmark"
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17451 '(if (boundp 'bookmark-after-jump-hook)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17452 ;; We can use the hook
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17453 (add-hook 'bookmark-after-jump-hook 'org-bookmark-jump-unhide)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17454 ;; Hook not available, use advice
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17455 (defadvice bookmark-jump (after org-make-visible activate)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17456 "Make the position visible."
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17457 (org-bookmark-jump-unhide))))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17458
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17459 (defun org-bookmark-jump-unhide ()
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17460 "Unhide the current position, to show the bookmark location."
71563
fca8faa8f94c (org-mode): Removed no invalid settings for calc embedded
Carsten Dominik <dominik@science.uva.nl>
parents: 71524
diff changeset
17461 (and (org-mode-p)
65243
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17462 (or (org-invisible-p)
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17463 (save-excursion (goto-char (max (point-min) (1- (point))))
d0087dcb8981 (org-special-keyword): New face.
Carsten Dominik <dominik@science.uva.nl>
parents: 64751
diff changeset
17464 (org-invisible-p)))
73872
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17465 (org-show-context 'bookmark-jump)))
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17466
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17467 ;; Make session.el ignore our circular variable
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17468 (eval-after-load "session"
c08ce87ec1be (org-scan-tags): Make the search case-sensitive.
Carsten Dominik <dominik@science.uva.nl>
parents: 73730
diff changeset
17469 '(add-to-list 'session-globals-exclude 'org-mark-ring))
58792
265139cbc47c New file.
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17470
71384
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
17471 ;;; Experimental code
9853142939b3 Require noutline, also on XEmacs.
Carsten Dominik <dominik@science.uva.nl>
parents: 71310
diff changeset
17472
68245
1a47b5a03b4a Move defvars out of eval-when-compile. Move code
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68175
diff changeset
17473 ;;; Finish up
73730
b4a91f7c761c (org-file-apps, org-emphasis-regexp-components, org-emphasis-alist):
Juanma Barranquero <lekktu@gmail.com>
parents: 73653
diff changeset
17474
68245
1a47b5a03b4a Move defvars out of eval-when-compile. Move code
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68175
diff changeset
17475 (provide 'org)
1a47b5a03b4a Move defvars out of eval-when-compile. Move code
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68175
diff changeset
17476
1a47b5a03b4a Move defvars out of eval-when-compile. Move code
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68175
diff changeset
17477 (run-hooks 'org-load-hook)
1a47b5a03b4a Move defvars out of eval-when-compile. Move code
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68175
diff changeset
17478
1a47b5a03b4a Move defvars out of eval-when-compile. Move code
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68175
diff changeset
17479 ;; arch-tag: e77da1a7-acc7-4336-b19e-efa25af3f9fd
1a47b5a03b4a Move defvars out of eval-when-compile. Move code
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 68175
diff changeset
17480 ;;; org.el ends here